001    package net.minecraft.item;
002    
003    import net.minecraft.block.material.Material;
004    import net.minecraft.creativetab.CreativeTabs;
005    import net.minecraft.entity.player.EntityPlayer;
006    import net.minecraft.util.EnumMovingObjectType;
007    import net.minecraft.util.MovingObjectPosition;
008    import net.minecraft.world.World;
009    
010    public 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    }