001package net.minecraft.dispenser;
002
003import net.minecraft.item.Item;
004import net.minecraft.item.ItemBucket;
005import net.minecraft.item.ItemStack;
006import net.minecraft.server.MinecraftServer;
007import net.minecraft.util.EnumFacing;
008
009public 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.getFront(par1IBlockSource.func_82620_h());
032
033        if (var3.tryPlaceContainedLiquid(par1IBlockSource.getWorld(), (double)var4, (double)var5, (double)var6, var4 + var7.getFrontOffsetX(), var5, var6 + var7.getFrontOffsetZ()))
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}