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 }