001 package net.minecraft.network.packet; 002 003 import java.io.DataInputStream; 004 import java.io.DataOutputStream; 005 import java.io.IOException; 006 import net.minecraft.entity.Entity; 007 import net.minecraft.util.MathHelper; 008 009 public class Packet34EntityTeleport extends Packet 010 { 011 /** ID of the entity. */ 012 public int entityId; 013 014 /** X position of the entity. */ 015 public int xPosition; 016 017 /** Y position of the entity. */ 018 public int yPosition; 019 020 /** Z position of the entity. */ 021 public int zPosition; 022 023 /** Yaw of the entity. */ 024 public byte yaw; 025 026 /** Pitch of the entity. */ 027 public byte pitch; 028 029 public Packet34EntityTeleport() {} 030 031 public Packet34EntityTeleport(Entity par1Entity) 032 { 033 this.entityId = par1Entity.entityId; 034 this.xPosition = MathHelper.floor_double(par1Entity.posX * 32.0D); 035 this.yPosition = MathHelper.floor_double(par1Entity.posY * 32.0D); 036 this.zPosition = MathHelper.floor_double(par1Entity.posZ * 32.0D); 037 this.yaw = (byte)((int)(par1Entity.rotationYaw * 256.0F / 360.0F)); 038 this.pitch = (byte)((int)(par1Entity.rotationPitch * 256.0F / 360.0F)); 039 } 040 041 public Packet34EntityTeleport(int par1, int par2, int par3, int par4, byte par5, byte par6) 042 { 043 this.entityId = par1; 044 this.xPosition = par2; 045 this.yPosition = par3; 046 this.zPosition = par4; 047 this.yaw = par5; 048 this.pitch = par6; 049 } 050 051 /** 052 * Abstract. Reads the raw packet data from the data stream. 053 */ 054 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 055 { 056 this.entityId = par1DataInputStream.readInt(); 057 this.xPosition = par1DataInputStream.readInt(); 058 this.yPosition = par1DataInputStream.readInt(); 059 this.zPosition = par1DataInputStream.readInt(); 060 this.yaw = (byte)par1DataInputStream.read(); 061 this.pitch = (byte)par1DataInputStream.read(); 062 } 063 064 /** 065 * Abstract. Writes the raw packet data to the data stream. 066 */ 067 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 068 { 069 par1DataOutputStream.writeInt(this.entityId); 070 par1DataOutputStream.writeInt(this.xPosition); 071 par1DataOutputStream.writeInt(this.yPosition); 072 par1DataOutputStream.writeInt(this.zPosition); 073 par1DataOutputStream.write(this.yaw); 074 par1DataOutputStream.write(this.pitch); 075 } 076 077 /** 078 * Passes this Packet on to the NetHandler for processing. 079 */ 080 public void processPacket(NetHandler par1NetHandler) 081 { 082 par1NetHandler.handleEntityTeleport(this); 083 } 084 085 /** 086 * Abstract. Return the size of the packet (not counting the header). 087 */ 088 public int getPacketSize() 089 { 090 return 34; 091 } 092 093 /** 094 * only false for the abstract Packet class, all real packets return true 095 */ 096 public boolean isRealPacket() 097 { 098 return true; 099 } 100 101 /** 102 * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet 103 * class 104 */ 105 public boolean containsSameEntityIDAs(Packet par1Packet) 106 { 107 Packet34EntityTeleport var2 = (Packet34EntityTeleport)par1Packet; 108 return var2.entityId == this.entityId; 109 } 110 }