001 package net.minecraft.src;
002
003 import java.io.DataInputStream;
004 import java.io.DataOutputStream;
005 import java.io.IOException;
006 import java.util.List;
007
008 public class Packet104WindowItems extends Packet
009 {
010 /**
011 * The id of window which items are being sent for. 0 for player inventory.
012 */
013 public int windowId;
014
015 /** Stack of items */
016 public ItemStack[] itemStack;
017
018 public Packet104WindowItems() {}
019
020 public Packet104WindowItems(int par1, List par2List)
021 {
022 this.windowId = par1;
023 this.itemStack = new ItemStack[par2List.size()];
024
025 for (int var3 = 0; var3 < this.itemStack.length; ++var3)
026 {
027 ItemStack var4 = (ItemStack)par2List.get(var3);
028 this.itemStack[var3] = var4 == null ? null : var4.copy();
029 }
030 }
031
032 /**
033 * Abstract. Reads the raw packet data from the data stream.
034 */
035 public void readPacketData(DataInputStream par1DataInputStream) throws IOException
036 {
037 this.windowId = par1DataInputStream.readByte();
038 short var2 = par1DataInputStream.readShort();
039 this.itemStack = new ItemStack[var2];
040
041 for (int var3 = 0; var3 < var2; ++var3)
042 {
043 this.itemStack[var3] = readItemStack(par1DataInputStream);
044 }
045 }
046
047 /**
048 * Abstract. Writes the raw packet data to the data stream.
049 */
050 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
051 {
052 par1DataOutputStream.writeByte(this.windowId);
053 par1DataOutputStream.writeShort(this.itemStack.length);
054 ItemStack[] var2 = this.itemStack;
055 int var3 = var2.length;
056
057 for (int var4 = 0; var4 < var3; ++var4)
058 {
059 ItemStack var5 = var2[var4];
060 writeItemStack(var5, par1DataOutputStream);
061 }
062 }
063
064 /**
065 * Passes this Packet on to the NetHandler for processing.
066 */
067 public void processPacket(NetHandler par1NetHandler)
068 {
069 par1NetHandler.handleWindowItems(this);
070 }
071
072 /**
073 * Abstract. Return the size of the packet (not counting the header).
074 */
075 public int getPacketSize()
076 {
077 return 3 + this.itemStack.length * 5;
078 }
079 }