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    }