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 }