@Override public boolean itemUsedOnBlock( EntityPlayer player, DataDrivenBlock block, DataDrivenItemBlock item, ItemStack stack, World world, int x, int y, int z, ForgeDirection face, float hitX, float hitY, float hitZ) { if (item.field_150939_a != block) return false; int metadata = world.getBlockMetadata(x - face.offsetX, y - face.offsetY, z - face.offsetZ); ForgeDirection actualTopFace = block.reverseTransformBlockFacing(metadata, ForgeDirection.UP); if (face == actualTopFace) { int newMetadata = (block.getSubBlockMask() & metadata); Block newBlock = (Block) Block.blockRegistry.getObject(targetBlock); world.setBlock(x, y - face.offsetY, z, newBlock, newMetadata, 3); return true; } return false; }
@Override public boolean transformShouldPlaceBlock( EntityPlayer player, DataDrivenBlock block, DataDrivenItemBlock item, ItemStack stack, World world, int x, int y, int z, ForgeDirection face, float hitX, float hitY, float hitZ, boolean shouldPlaceBlock) { if (item.field_150939_a != block) return shouldPlaceBlock; int metadata = world.getBlockMetadata(x - face.offsetX, y - face.offsetY, z - face.offsetZ); ForgeDirection actualTopFace = block.reverseTransformBlockFacing(metadata, ForgeDirection.UP); if (face == actualTopFace) return false; return shouldPlaceBlock; }