001    package net.minecraft.src;
002    
003    import net.minecraft.server.MinecraftServer;
004    
005    public class BehaviorBucketEmptyDispense extends BehaviorDefaultDispenseItem
006    {
007        private final BehaviorDefaultDispenseItem field_82497_c;
008    
009        final MinecraftServer field_82496_b;
010    
011        public BehaviorBucketEmptyDispense(MinecraftServer par1)
012        {
013            this.field_82496_b = par1;
014            this.field_82497_c = new BehaviorDefaultDispenseItem();
015        }
016    
017        public ItemStack func_82487_b(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
018        {
019            EnumFacing var3 = EnumFacing.func_82600_a(par1IBlockSource.func_82620_h());
020            World var4 = par1IBlockSource.func_82618_k();
021            int var5 = par1IBlockSource.func_82623_d() + var3.func_82601_c();
022            int var6 = par1IBlockSource.func_82622_e();
023            int var7 = par1IBlockSource.func_82621_f() + var3.func_82599_e();
024            Material var8 = var4.getBlockMaterial(var5, var6, var7);
025            int var9 = var4.getBlockMetadata(var5, var6, var7);
026            Item var10;
027    
028            if (Material.water.equals(var8) && var9 == 0)
029            {
030                var10 = Item.bucketWater;
031            }
032            else
033            {
034                if (!Material.lava.equals(var8) || var9 != 0)
035                {
036                    return super.func_82487_b(par1IBlockSource, par2ItemStack);
037                }
038    
039                var10 = Item.bucketLava;
040            }
041    
042            var4.setBlockWithNotify(var5, var6, var7, 0);
043    
044            if (--par2ItemStack.stackSize == 0)
045            {
046                par2ItemStack.itemID = var10.shiftedIndex;
047                par2ItemStack.stackSize = 1;
048            }
049            else if (((TileEntityDispenser)par1IBlockSource.func_82619_j()).func_70360_a(new ItemStack(var10)) < 0)
050            {
051                this.field_82497_c.func_82482_a(par1IBlockSource, new ItemStack(var10));
052            }
053    
054            return par2ItemStack;
055        }
056    }