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