    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    }