package net.minecraft.item; import net.minecraft.block.Block; import net.minecraft.block.BlockBed; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class ItemBed extends Item { private static final String __OBFID = "CL_00001771"; public ItemBed() { this.setCreativeTab(CreativeTabs.tabDecorations); } /** * 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 (worldIn.isRemote) { return true; } else if (side != EnumFacing.UP) { return false; } else { IBlockState var9 = worldIn.getBlockState(pos); Block var10 = var9.getBlock(); boolean var11 = var10.isReplaceable(worldIn, pos); if (!var11) { pos = pos.offsetUp(); } int var12 = MathHelper.floor_double((double)(playerIn.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; EnumFacing var13 = EnumFacing.getHorizontal(var12); BlockPos var14 = pos.offset(var13); boolean var15 = var10.isReplaceable(worldIn, var14); boolean var16 = worldIn.isAirBlock(pos) || var11; boolean var17 = worldIn.isAirBlock(var14) || var15; if (playerIn.func_175151_a(pos, side, stack) && playerIn.func_175151_a(var14, side, stack)) { if (var16 && var17 && World.doesBlockHaveSolidTopSurface(worldIn, pos.offsetDown()) && World.doesBlockHaveSolidTopSurface(worldIn, var14.offsetDown())) { int var18 = var13.getHorizontalIndex(); IBlockState var19 = Blocks.bed.getDefaultState().withProperty(BlockBed.OCCUPIED_PROP, Boolean.valueOf(false)).withProperty(BlockBed.AGE, var13).withProperty(BlockBed.PART_PROP, BlockBed.EnumPartType.FOOT); if (worldIn.setBlockState(pos, var19, 3)) { IBlockState var20 = var19.withProperty(BlockBed.PART_PROP, BlockBed.EnumPartType.HEAD); worldIn.setBlockState(var14, var20, 3); } --stack.stackSize; return true; } else { return false; } } else { return false; } } } }