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 }