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