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.item.EntityXPOrb;
007    import net.minecraft.util.MathHelper;
008    
009    public class Packet26EntityExpOrb extends Packet
010    {
011        /** Entity ID for the XP Orb */
012        public int entityId;
013        public int posX;
014        public int posY;
015        public int posZ;
016    
017        /** The Orbs Experience points value. */
018        public int xpValue;
019    
020        public Packet26EntityExpOrb() {}
021    
022        public Packet26EntityExpOrb(EntityXPOrb par1EntityXPOrb)
023        {
024            this.entityId = par1EntityXPOrb.entityId;
025            this.posX = MathHelper.floor_double(par1EntityXPOrb.posX * 32.0D);
026            this.posY = MathHelper.floor_double(par1EntityXPOrb.posY * 32.0D);
027            this.posZ = MathHelper.floor_double(par1EntityXPOrb.posZ * 32.0D);
028            this.xpValue = par1EntityXPOrb.getXpValue();
029        }
030    
031        /**
032         * Abstract. Reads the raw packet data from the data stream.
033         */
034        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
035        {
036            this.entityId = par1DataInputStream.readInt();
037            this.posX = par1DataInputStream.readInt();
038            this.posY = par1DataInputStream.readInt();
039            this.posZ = par1DataInputStream.readInt();
040            this.xpValue = par1DataInputStream.readShort();
041        }
042    
043        /**
044         * Abstract. Writes the raw packet data to the data stream.
045         */
046        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
047        {
048            par1DataOutputStream.writeInt(this.entityId);
049            par1DataOutputStream.writeInt(this.posX);
050            par1DataOutputStream.writeInt(this.posY);
051            par1DataOutputStream.writeInt(this.posZ);
052            par1DataOutputStream.writeShort(this.xpValue);
053        }
054    
055        /**
056         * Passes this Packet on to the NetHandler for processing.
057         */
058        public void processPacket(NetHandler par1NetHandler)
059        {
060            par1NetHandler.handleEntityExpOrb(this);
061        }
062    
063        /**
064         * Abstract. Return the size of the packet (not counting the header).
065         */
066        public int getPacketSize()
067        {
068            return 18;
069        }
070    }