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 }