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 }