001    package net.minecraft.network.packet;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.io.DataInputStream;
006    import java.io.DataOutputStream;
007    import java.io.IOException;
008    
009    public class Packet55BlockDestroy extends Packet
010    {
011        /** Entity breaking the block */
012        private int entityId;
013    
014        /** X posiiton of the block */
015        private int posX;
016    
017        /** Y position of the block */
018        private int posY;
019    
020        /** Z position of the block */
021        private int posZ;
022    
023        /** How far destroyed this block is */
024        private int destroyedStage;
025    
026        public Packet55BlockDestroy() {}
027    
028        public Packet55BlockDestroy(int par1, int par2, int par3, int par4, int par5)
029        {
030            this.entityId = par1;
031            this.posX = par2;
032            this.posY = par3;
033            this.posZ = par4;
034            this.destroyedStage = par5;
035        }
036    
037        /**
038         * Abstract. Reads the raw packet data from the data stream.
039         */
040        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
041        {
042            this.entityId = par1DataInputStream.readInt();
043            this.posX = par1DataInputStream.readInt();
044            this.posY = par1DataInputStream.readInt();
045            this.posZ = par1DataInputStream.readInt();
046            this.destroyedStage = par1DataInputStream.read();
047        }
048    
049        /**
050         * Abstract. Writes the raw packet data to the data stream.
051         */
052        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
053        {
054            par1DataOutputStream.writeInt(this.entityId);
055            par1DataOutputStream.writeInt(this.posX);
056            par1DataOutputStream.writeInt(this.posY);
057            par1DataOutputStream.writeInt(this.posZ);
058            par1DataOutputStream.write(this.destroyedStage);
059        }
060    
061        /**
062         * Passes this Packet on to the NetHandler for processing.
063         */
064        public void processPacket(NetHandler par1NetHandler)
065        {
066            par1NetHandler.handleBlockDestroy(this);
067        }
068    
069        /**
070         * Abstract. Return the size of the packet (not counting the header).
071         */
072        public int getPacketSize()
073        {
074            return 13;
075        }
076    
077        @SideOnly(Side.CLIENT)
078    
079        /**
080         * Gets the ID of the entity breaking the block
081         */
082        public int getEntityId()
083        {
084            return this.entityId;
085        }
086    
087        @SideOnly(Side.CLIENT)
088    
089        /**
090         * Gets the X position of the block
091         */
092        public int getPosX()
093        {
094            return this.posX;
095        }
096    
097        @SideOnly(Side.CLIENT)
098    
099        /**
100         * Gets the Y position of the block
101         */
102        public int getPosY()
103        {
104            return this.posY;
105        }
106    
107        @SideOnly(Side.CLIENT)
108    
109        /**
110         * Gets the Z position of the block
111         */
112        public int getPosZ()
113        {
114            return this.posZ;
115        }
116    
117        @SideOnly(Side.CLIENT)
118    
119        /**
120         * Gets how far destroyed this block is
121         */
122        public int getDestroyedStage()
123        {
124            return this.destroyedStage;
125        }
126    
127        /**
128         * only false for the abstract Packet class, all real packets return true
129         */
130        public boolean isRealPacket()
131        {
132            return true;
133        }
134    
135        /**
136         * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet
137         * class
138         */
139        public boolean containsSameEntityIDAs(Packet par1Packet)
140        {
141            Packet55BlockDestroy var2 = (Packet55BlockDestroy)par1Packet;
142            return var2.entityId == this.entityId;
143        }
144    }