001package net.minecraft.item;
002
003import net.minecraft.block.material.Material;
004import net.minecraft.creativetab.CreativeTabs;
005import net.minecraft.entity.player.EntityPlayer;
006import net.minecraft.util.EnumMovingObjectType;
007import net.minecraft.util.MovingObjectPosition;
008import net.minecraft.world.World;
009
010public class ItemGlassBottle extends Item
011{
012    public ItemGlassBottle(int par1)
013    {
014        super(par1);
015        this.setCreativeTab(CreativeTabs.tabBrewing);
016    }
017
018    /**
019     * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
020     */
021    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
022    {
023        MovingObjectPosition var4 = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true);
024
025        if (var4 == null)
026        {
027            return par1ItemStack;
028        }
029        else
030        {
031            if (var4.typeOfHit == EnumMovingObjectType.TILE)
032            {
033                int var5 = var4.blockX;
034                int var6 = var4.blockY;
035                int var7 = var4.blockZ;
036
037                if (!par2World.canMineBlock(par3EntityPlayer, var5, var6, var7))
038                {
039                    return par1ItemStack;
040                }
041
042                if (!par3EntityPlayer.canPlayerEdit(var5, var6, var7, var4.sideHit, par1ItemStack))
043                {
044                    return par1ItemStack;
045                }
046
047                if (par2World.getBlockMaterial(var5, var6, var7) == Material.water)
048                {
049                    --par1ItemStack.stackSize;
050
051                    if (par1ItemStack.stackSize <= 0)
052                    {
053                        return new ItemStack(Item.potion);
054                    }
055
056                    if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.potion)))
057                    {
058                        par3EntityPlayer.dropPlayerItem(new ItemStack(Item.potion.itemID, 1, 0));
059                    }
060                }
061            }
062
063            return par1ItemStack;
064        }
065    }
066}