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 }