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.nbt.NBTTagCompound;
007    
008    public class Packet132TileEntityData extends Packet
009    {
010        /** The X position of the tile entity to update. */
011        public int xPosition;
012    
013        /** The Y position of the tile entity to update. */
014        public int yPosition;
015    
016        /** The Z position of the tile entity to update. */
017        public int zPosition;
018    
019        /** The type of update to perform on the tile entity. */
020        public int actionType;
021    
022        /** Custom parameter 1 passed to the tile entity on update. */
023        public NBTTagCompound customParam1;
024    
025        public Packet132TileEntityData()
026        {
027            this.isChunkDataPacket = true;
028        }
029    
030        public Packet132TileEntityData(int par1, int par2, int par3, int par4, NBTTagCompound par5NBTTagCompound)
031        {
032            this.isChunkDataPacket = true;
033            this.xPosition = par1;
034            this.yPosition = par2;
035            this.zPosition = par3;
036            this.actionType = par4;
037            this.customParam1 = par5NBTTagCompound;
038        }
039    
040        /**
041         * Abstract. Reads the raw packet data from the data stream.
042         */
043        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
044        {
045            this.xPosition = par1DataInputStream.readInt();
046            this.yPosition = par1DataInputStream.readShort();
047            this.zPosition = par1DataInputStream.readInt();
048            this.actionType = par1DataInputStream.readByte();
049            this.customParam1 = readNBTTagCompound(par1DataInputStream);
050        }
051    
052        /**
053         * Abstract. Writes the raw packet data to the data stream.
054         */
055        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
056        {
057            par1DataOutputStream.writeInt(this.xPosition);
058            par1DataOutputStream.writeShort(this.yPosition);
059            par1DataOutputStream.writeInt(this.zPosition);
060            par1DataOutputStream.writeByte((byte)this.actionType);
061            writeNBTTagCompound(this.customParam1, par1DataOutputStream);
062        }
063    
064        /**
065         * Passes this Packet on to the NetHandler for processing.
066         */
067        public void processPacket(NetHandler par1NetHandler)
068        {
069            par1NetHandler.handleTileEntityData(this);
070        }
071    
072        /**
073         * Abstract. Return the size of the packet (not counting the header).
074         */
075        public int getPacketSize()
076        {
077            return 25;
078        }
079    }