package net.minecraft.block; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.IBehaviorDispenseItem; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityDispenser; import net.minecraft.tileentity.TileEntityDropper; import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; public class BlockDropper extends BlockDispenser { private final IBehaviorDispenseItem field_149947_P = new BehaviorDefaultDispenseItem(); private static final String __OBFID = "CL_00000233"; protected IBehaviorDispenseItem func_149940_a(ItemStack p_149940_1_) { return this.field_149947_P; } /** * Returns a new instance of a block's tile entity class. Called on placing the block. */ public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityDropper(); } protected void func_176439_d(World worldIn, BlockPos p_176439_2_) { BlockSourceImpl var3 = new BlockSourceImpl(worldIn, p_176439_2_); TileEntityDispenser var4 = (TileEntityDispenser)var3.getBlockTileEntity(); if (var4 != null) { int var5 = var4.func_146017_i(); if (var5 < 0) { worldIn.playAuxSFX(1001, p_176439_2_, 0); } else { ItemStack var6 = var4.getStackInSlot(var5); if (var6 != null) { EnumFacing var7 = (EnumFacing)worldIn.getBlockState(p_176439_2_).getValue(FACING); BlockPos var8 = p_176439_2_.offset(var7); IInventory var9 = TileEntityHopper.func_145893_b(worldIn, (double)var8.getX(), (double)var8.getY(), (double)var8.getZ()); ItemStack var10; if (var9 == null) { var10 = this.field_149947_P.dispense(var3, var6); if (var10 != null && var10.stackSize == 0) { var10 = null; } } else { var10 = TileEntityHopper.func_174918_a(var9, var6.copy().splitStack(1), var7.getOpposite()); if (var10 == null) { var10 = var6.copy(); if (--var10.stackSize == 0) { var10 = null; } } else { var10 = var6.copy(); } } var4.setInventorySlotContents(var5, var10); } } } } }