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.world.World;
007
008 public class Packet53BlockChange extends Packet
009 {
010 /** Block X position. */
011 public int xPosition;
012
013 /** Block Y position. */
014 public int yPosition;
015
016 /** Block Z position. */
017 public int zPosition;
018
019 /** The new block type for the block. */
020 public int type;
021
022 /** Metadata of the block. */
023 public int metadata;
024
025 public Packet53BlockChange()
026 {
027 this.isChunkDataPacket = true;
028 }
029
030 public Packet53BlockChange(int par1, int par2, int par3, World par4World)
031 {
032 this.isChunkDataPacket = true;
033 this.xPosition = par1;
034 this.yPosition = par2;
035 this.zPosition = par3;
036 this.type = par4World.getBlockId(par1, par2, par3);
037 this.metadata = par4World.getBlockMetadata(par1, par2, par3);
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.read();
047 this.zPosition = par1DataInputStream.readInt();
048 this.type = par1DataInputStream.readShort();
049 this.metadata = par1DataInputStream.read();
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.write(this.yPosition);
059 par1DataOutputStream.writeInt(this.zPosition);
060 par1DataOutputStream.writeShort(this.type);
061 par1DataOutputStream.write(this.metadata);
062 }
063
064 /**
065 * Passes this Packet on to the NetHandler for processing.
066 */
067 public void processPacket(NetHandler par1NetHandler)
068 {
069 par1NetHandler.handleBlockChange(this);
070 }
071
072 /**
073 * Abstract. Return the size of the packet (not counting the header).
074 */
075 public int getPacketSize()
076 {
077 return 11;
078 }
079 }