001    package net.minecraft.dispenser;
002    
003    import net.minecraft.item.Item;
004    import net.minecraft.item.ItemBucket;
005    import net.minecraft.item.ItemStack;
006    import net.minecraft.server.MinecraftServer;
007    import net.minecraft.util.EnumFacing;
008    
009    public class BehaviorBucketFullDispense extends BehaviorDefaultDispenseItem
010    {
011        /** Reference to the BehaviorDefaultDispenseItem object. */
012        private final BehaviorDefaultDispenseItem defaultItemDispenseBehavior;
013    
014        final MinecraftServer mcServer;
015    
016        public BehaviorBucketFullDispense(MinecraftServer par1)
017        {
018            this.mcServer = par1;
019            this.defaultItemDispenseBehavior = new BehaviorDefaultDispenseItem();
020        }
021    
022        /**
023         * Dispense the specified stack, play the dispense sound and spawn particles.
024         */
025        public ItemStack dispenseStack(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
026        {
027            ItemBucket var3 = (ItemBucket)par2ItemStack.getItem();
028            int var4 = par1IBlockSource.getXInt();
029            int var5 = par1IBlockSource.getYInt();
030            int var6 = par1IBlockSource.getZInt();
031            EnumFacing var7 = EnumFacing.func_82600_a(par1IBlockSource.func_82620_h());
032    
033            if (var3.tryPlaceContainedLiquid(par1IBlockSource.getWorld(), (double)var4, (double)var5, (double)var6, var4 + var7.func_82601_c(), var5, var6 + var7.func_82599_e()))
034            {
035                par2ItemStack.itemID = Item.bucketEmpty.itemID;
036                par2ItemStack.stackSize = 1;
037                return par2ItemStack;
038            }
039            else
040            {
041                return this.defaultItemDispenseBehavior.dispense(par1IBlockSource, par2ItemStack);
042            }
043        }
044    }