    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}