001    package net.minecraft.item;
002    
003    import net.minecraft.block.Block;
004    import net.minecraft.creativetab.CreativeTabs;
005    import net.minecraft.entity.player.EntityPlayer;
006    import net.minecraft.world.World;
007    
008    public class ItemFireball extends Item
009    {
010        public ItemFireball(int par1)
011        {
012            super(par1);
013            this.setCreativeTab(CreativeTabs.tabMisc);
014        }
015    
016        /**
017         * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
018         * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
019         */
020        public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
021        {
022            if (par3World.isRemote)
023            {
024                return true;
025            }
026            else
027            {
028                if (par7 == 0)
029                {
030                    --par5;
031                }
032    
033                if (par7 == 1)
034                {
035                    ++par5;
036                }
037    
038                if (par7 == 2)
039                {
040                    --par6;
041                }
042    
043                if (par7 == 3)
044                {
045                    ++par6;
046                }
047    
048                if (par7 == 4)
049                {
050                    --par4;
051                }
052    
053                if (par7 == 5)
054                {
055                    ++par4;
056                }
057    
058                if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack))
059                {
060                    return false;
061                }
062                else
063                {
064                    int var11 = par3World.getBlockId(par4, par5, par6);
065    
066                    if (var11 == 0)
067                    {
068                        par3World.playSoundEffect((double)par4 + 0.5D, (double)par5 + 0.5D, (double)par6 + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F);
069                        par3World.setBlockWithNotify(par4, par5, par6, Block.fire.blockID);
070                    }
071    
072                    if (!par2EntityPlayer.capabilities.isCreativeMode)
073                    {
074                        --par1ItemStack.stackSize;
075                    }
076    
077                    return true;
078                }
079            }
080        }
081    }