use of net.minecraft.block.BlockSlab.EnumBlockHalf in project MorePlanets by SteveKunG.
the class ItemBlockSlabMP method onItemUse.
@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
ItemStack itemStack = player.getHeldItem(hand);
if (this.block instanceof ISlabBlock) {
ISlabBlock singleSlab = (ISlabBlock) this.block;
if (itemStack.getCount() != 0 && player.canPlayerEdit(pos.offset(facing), facing, itemStack)) {
Object object = singleSlab.getHalf().getTypeForItem(itemStack);
IBlockState state = world.getBlockState(pos);
if (state.getBlock() == singleSlab.getHalf()) {
IProperty iproperty = singleSlab.getHalf().getVariantProperty();
Comparable comparable = state.getValue(iproperty);
EnumBlockHalf enumblockhalf = state.getValue(BlockSlab.HALF);
if ((facing == EnumFacing.UP && enumblockhalf == EnumBlockHalf.BOTTOM || facing == EnumFacing.DOWN && enumblockhalf == BlockSlab.EnumBlockHalf.TOP) && comparable == object) {
IBlockState state1 = singleSlab.getDouble().getDefaultState().withProperty(iproperty, comparable);
AxisAlignedBB axisalignedbb = state1.getCollisionBoundingBox(world, pos);
if (axisalignedbb != Block.NULL_AABB && world.checkNoEntityCollision(axisalignedbb.offset(pos)) && world.setBlockState(pos, state1, 11)) {
SoundType sound = singleSlab.getDouble().getSoundType(state1, world, pos, player);
world.playSound(player, pos, sound.getPlaceSound(), SoundCategory.BLOCKS, (sound.getVolume() + 1.0F) / 2.0F, sound.getPitch() * 0.8F);
itemStack.shrink(1);
}
return EnumActionResult.SUCCESS;
}
}
return this.tryPlace(player, itemStack, world, pos.offset(facing), object, singleSlab.getHalf(), singleSlab.getDouble()) ? EnumActionResult.SUCCESS : super.onItemUse(player, world, pos, hand, facing, hitX, hitY, hitZ);
}
} else {
return EnumActionResult.FAIL;
}
return EnumActionResult.FAIL;
}
Aggregations