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 /** Reference to the MinecraftServer object. */
015 final MinecraftServer mcServer;
016
017 public BehaviorBucketFullDispense(MinecraftServer par1)
018 {
019 this.mcServer = par1;
020 this.defaultItemDispenseBehavior = new BehaviorDefaultDispenseItem();
021 }
022
023 /**
024 * Dispense the specified stack, play the dispense sound and spawn particles.
025 */
026 public ItemStack dispenseStack(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
027 {
028 ItemBucket var3 = (ItemBucket)par2ItemStack.getItem();
029 int var4 = par1IBlockSource.getXInt();
030 int var5 = par1IBlockSource.getYInt();
031 int var6 = par1IBlockSource.getZInt();
032 EnumFacing var7 = EnumFacing.func_82600_a(par1IBlockSource.func_82620_h());
033
034 if (var3.tryPlaceContainedLiquid(par1IBlockSource.getWorld(), (double)var4, (double)var5, (double)var6, var4 + var7.func_82601_c(), var5, var6 + var7.func_82599_e()))
035 {
036 par2ItemStack.itemID = Item.bucketEmpty.shiftedIndex;
037 par2ItemStack.stackSize = 1;
038 return par2ItemStack;
039 }
040 else
041 {
042 return this.defaultItemDispenseBehavior.dispense(par1IBlockSource, par2ItemStack);
043 }
044 }
045 }