package net.minecraft.network.play.client; import java.io.IOException; import net.minecraft.item.ItemStack; import net.minecraft.network.INetHandler; import net.minecraft.network.Packet; import net.minecraft.network.PacketBuffer; import net.minecraft.network.play.INetHandlerPlayServer; import net.minecraft.util.BlockPos; public class C08PacketPlayerBlockPlacement implements Packet { private static final BlockPos field_179726_a = new BlockPos(-1, -1, -1); private BlockPos field_179725_b; private int placedBlockDirection; private ItemStack stack; private float facingX; private float facingY; private float facingZ; private static final String __OBFID = "CL_00001371"; public C08PacketPlayerBlockPlacement() {} public C08PacketPlayerBlockPlacement(ItemStack p_i45930_1_) { this(field_179726_a, 255, p_i45930_1_, 0.0F, 0.0F, 0.0F); } public C08PacketPlayerBlockPlacement(BlockPos p_i45931_1_, int p_i45931_2_, ItemStack p_i45931_3_, float p_i45931_4_, float p_i45931_5_, float p_i45931_6_) { this.field_179725_b = p_i45931_1_; this.placedBlockDirection = p_i45931_2_; this.stack = p_i45931_3_ != null ? p_i45931_3_.copy() : null; this.facingX = p_i45931_4_; this.facingY = p_i45931_5_; this.facingZ = p_i45931_6_; } /** * Reads the raw packet data from the data stream. */ public void readPacketData(PacketBuffer data) throws IOException { this.field_179725_b = data.readBlockPos(); this.placedBlockDirection = data.readUnsignedByte(); this.stack = data.readItemStackFromBuffer(); this.facingX = (float)data.readUnsignedByte() / 16.0F; this.facingY = (float)data.readUnsignedByte() / 16.0F; this.facingZ = (float)data.readUnsignedByte() / 16.0F; } /** * Writes the raw packet data to the data stream. */ public void writePacketData(PacketBuffer data) throws IOException { data.writeBlockPos(this.field_179725_b); data.writeByte(this.placedBlockDirection); data.writeItemStackToBuffer(this.stack); data.writeByte((int)(this.facingX * 16.0F)); data.writeByte((int)(this.facingY * 16.0F)); data.writeByte((int)(this.facingZ * 16.0F)); } public void func_180769_a(INetHandlerPlayServer p_180769_1_) { p_180769_1_.processPlayerBlockPlacement(this); } public BlockPos func_179724_a() { return this.field_179725_b; } public int getPlacedBlockDirection() { return this.placedBlockDirection; } public ItemStack getStack() { return this.stack; } /** * Returns the offset from xPosition where the actual click took place. */ public float getPlacedBlockOffsetX() { return this.facingX; } /** * Returns the offset from yPosition where the actual click took place. */ public float getPlacedBlockOffsetY() { return this.facingY; } /** * Returns the offset from zPosition where the actual click took place. */ public float getPlacedBlockOffsetZ() { return this.facingZ; } /** * Passes this Packet on to the NetHandler for processing. */ public void processPacket(INetHandler handler) { this.func_180769_a((INetHandlerPlayServer)handler); } }