001    package net.minecraft.src;
002    
003    import net.minecraft.server.MinecraftServer;
004    
005    public class BehaviorDispenseBoat extends BehaviorDefaultDispenseItem
006    {
007        private final BehaviorDefaultDispenseItem field_82493_c;
008    
009        final MinecraftServer field_82492_b;
010    
011        public BehaviorDispenseBoat(MinecraftServer par1MinecraftServer)
012        {
013            this.field_82492_b = par1MinecraftServer;
014            this.field_82493_c = new BehaviorDefaultDispenseItem();
015        }
016    
017        public ItemStack func_82487_b(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
018        {
019            EnumFacing var3 = EnumFacing.func_82600_a(par1IBlockSource.func_82620_h());
020            World var4 = par1IBlockSource.func_82618_k();
021            double var5 = par1IBlockSource.func_82615_a() + (double)((float)var3.func_82601_c() * 1.125F);
022            double var7 = par1IBlockSource.func_82617_b();
023            double var9 = par1IBlockSource.func_82616_c() + (double)((float)var3.func_82599_e() * 1.125F);
024            int var11 = par1IBlockSource.func_82623_d() + var3.func_82601_c();
025            int var12 = par1IBlockSource.func_82622_e();
026            int var13 = par1IBlockSource.func_82621_f() + var3.func_82599_e();
027            Material var14 = var4.getBlockMaterial(var11, var12, var13);
028            double var15;
029    
030            if (Material.water.equals(var14))
031            {
032                var15 = 1.0D;
033            }
034            else
035            {
036                if (!Material.air.equals(var14) || !Material.water.equals(var4.getBlockMaterial(var11, var12 - 1, var13)))
037                {
038                    return this.field_82493_c.func_82482_a(par1IBlockSource, par2ItemStack);
039                }
040    
041                var15 = 0.0D;
042            }
043    
044            EntityBoat var17 = new EntityBoat(var4, var5, var7 + var15, var9);
045            var4.spawnEntityInWorld(var17);
046            par2ItemStack.splitStack(1);
047            return par2ItemStack;
048        }
049    
050        protected void func_82485_a(IBlockSource par1IBlockSource)
051        {
052            par1IBlockSource.func_82618_k().playAuxSFX(1000, par1IBlockSource.func_82623_d(), par1IBlockSource.func_82622_e(), par1IBlockSource.func_82621_f(), 0);
053        }
054    }