package net.minecraft.item; import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; public class ItemDoor extends Item { private Block field_179236_a; private static final String __OBFID = "CL_00000020"; public ItemDoor(Block p_i45788_1_) { this.field_179236_a = p_i45788_1_; this.setCreativeTab(CreativeTabs.tabRedstone); } /** * Called when a Block is right-clicked with this Item * * @param pos The block being right-clicked * @param side The side being right-clicked */ public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) { if (side != EnumFacing.UP) { return false; } else { IBlockState var9 = worldIn.getBlockState(pos); Block var10 = var9.getBlock(); if (!var10.isReplaceable(worldIn, pos)) { pos = pos.offset(side); } if (!playerIn.func_175151_a(pos, side, stack)) { return false; } else if (!this.field_179236_a.canPlaceBlockAt(worldIn, pos)) { return false; } else { func_179235_a(worldIn, pos, EnumFacing.fromAngle((double)playerIn.rotationYaw), this.field_179236_a); --stack.stackSize; return true; } } } public static void func_179235_a(World worldIn, BlockPos p_179235_1_, EnumFacing p_179235_2_, Block p_179235_3_) { BlockPos var4 = p_179235_1_.offset(p_179235_2_.rotateY()); BlockPos var5 = p_179235_1_.offset(p_179235_2_.rotateYCCW()); int var6 = (worldIn.getBlockState(var5).getBlock().isNormalCube() ? 1 : 0) + (worldIn.getBlockState(var5.offsetUp()).getBlock().isNormalCube() ? 1 : 0); int var7 = (worldIn.getBlockState(var4).getBlock().isNormalCube() ? 1 : 0) + (worldIn.getBlockState(var4.offsetUp()).getBlock().isNormalCube() ? 1 : 0); boolean var8 = worldIn.getBlockState(var5).getBlock() == p_179235_3_ || worldIn.getBlockState(var5.offsetUp()).getBlock() == p_179235_3_; boolean var9 = worldIn.getBlockState(var4).getBlock() == p_179235_3_ || worldIn.getBlockState(var4.offsetUp()).getBlock() == p_179235_3_; boolean var10 = false; if (var8 && !var9 || var7 > var6) { var10 = true; } BlockPos var11 = p_179235_1_.offsetUp(); IBlockState var12 = p_179235_3_.getDefaultState().withProperty(BlockDoor.FACING_PROP, p_179235_2_).withProperty(BlockDoor.HINGEPOSITION_PROP, var10 ? BlockDoor.EnumHingePosition.RIGHT : BlockDoor.EnumHingePosition.LEFT); worldIn.setBlockState(p_179235_1_, var12.withProperty(BlockDoor.HALF_PROP, BlockDoor.EnumDoorHalf.LOWER), 2); worldIn.setBlockState(var11, var12.withProperty(BlockDoor.HALF_PROP, BlockDoor.EnumDoorHalf.UPPER), 2); worldIn.notifyNeighborsOfStateChange(p_179235_1_, p_179235_3_); worldIn.notifyNeighborsOfStateChange(var11, p_179235_3_); } }