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 Packet21PickupSpawn extends Packet
008 {
009 /** Unique entity ID. */
010 public int entityId;
011
012 /** The item X position. */
013 public int xPosition;
014
015 /** The item Y position. */
016 public int yPosition;
017
018 /** The item Z position. */
019 public int zPosition;
020
021 /** The item rotation. */
022 public byte rotation;
023
024 /** The item pitch. */
025 public byte pitch;
026
027 /** The item roll. */
028 public byte roll;
029 public int itemID;
030
031 /** The number of items. */
032 public int count;
033
034 /** The health of the item. */
035 public int itemDamage;
036
037 public Packet21PickupSpawn() {}
038
039 public Packet21PickupSpawn(EntityItem par1EntityItem)
040 {
041 this.entityId = par1EntityItem.entityId;
042 this.itemID = par1EntityItem.item.itemID;
043 this.count = par1EntityItem.item.stackSize;
044 this.itemDamage = par1EntityItem.item.getItemDamage();
045 this.xPosition = MathHelper.floor_double(par1EntityItem.posX * 32.0D);
046 this.yPosition = MathHelper.floor_double(par1EntityItem.posY * 32.0D);
047 this.zPosition = MathHelper.floor_double(par1EntityItem.posZ * 32.0D);
048 this.rotation = (byte)((int)(par1EntityItem.motionX * 128.0D));
049 this.pitch = (byte)((int)(par1EntityItem.motionY * 128.0D));
050 this.roll = (byte)((int)(par1EntityItem.motionZ * 128.0D));
051 }
052
053 /**
054 * Abstract. Reads the raw packet data from the data stream.
055 */
056 public void readPacketData(DataInputStream par1DataInputStream) throws IOException
057 {
058 this.entityId = par1DataInputStream.readInt();
059 this.itemID = par1DataInputStream.readShort();
060 this.count = par1DataInputStream.readByte();
061 this.itemDamage = par1DataInputStream.readShort();
062 this.xPosition = par1DataInputStream.readInt();
063 this.yPosition = par1DataInputStream.readInt();
064 this.zPosition = par1DataInputStream.readInt();
065 this.rotation = par1DataInputStream.readByte();
066 this.pitch = par1DataInputStream.readByte();
067 this.roll = par1DataInputStream.readByte();
068 }
069
070 /**
071 * Abstract. Writes the raw packet data to the data stream.
072 */
073 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
074 {
075 par1DataOutputStream.writeInt(this.entityId);
076 par1DataOutputStream.writeShort(this.itemID);
077 par1DataOutputStream.writeByte(this.count);
078 par1DataOutputStream.writeShort(this.itemDamage);
079 par1DataOutputStream.writeInt(this.xPosition);
080 par1DataOutputStream.writeInt(this.yPosition);
081 par1DataOutputStream.writeInt(this.zPosition);
082 par1DataOutputStream.writeByte(this.rotation);
083 par1DataOutputStream.writeByte(this.pitch);
084 par1DataOutputStream.writeByte(this.roll);
085 }
086
087 /**
088 * Passes this Packet on to the NetHandler for processing.
089 */
090 public void processPacket(NetHandler par1NetHandler)
091 {
092 par1NetHandler.handlePickupSpawn(this);
093 }
094
095 /**
096 * Abstract. Return the size of the packet (not counting the header).
097 */
098 public int getPacketSize()
099 {
100 return 24;
101 }
102 }