    001    package net.minecraft.item;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import net.minecraft.creativetab.CreativeTabs;
    006    import net.minecraft.entity.player.EntityPlayer;
    007    import net.minecraft.entity.projectile.EntityFishHook;
    008    import net.minecraft.world.World;
    009
    010    public class ItemFishingRod extends Item
    011    {
    012        public ItemFishingRod(int par1)
    013        {
    014            super(par1);
    015            this.setMaxDamage(64);
    016            this.setMaxStackSize(1);
    017            this.setCreativeTab(CreativeTabs.tabTools);
    018        }
    019
    020        @SideOnly(Side.CLIENT)
    021
    022        /**
    023         * Returns True is the item is renderer in full 3D when hold.
    024         */
    025        public boolean isFull3D()
    026        {
    027            return true;
    028        }
    029
    030        @SideOnly(Side.CLIENT)
    031
    032        /**
    033         * Returns true if this item should be rotated by 180 degrees around the Y axis when being held in an entities
    034         * hands.
    035         */
    036        public boolean shouldRotateAroundWhenRendering()
    037        {
    038            return true;
    039        }
    040
    041        /**
    042         * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
    043         */
    044        public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    045        {
    046            if (par3EntityPlayer.fishEntity != null)
    047            {
    048                int var4 = par3EntityPlayer.fishEntity.catchFish();
    049                par1ItemStack.damageItem(var4, par3EntityPlayer);
    050                par3EntityPlayer.swingItem();
    051            }
    052            else
    053            {
    054                par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
    055
    056                if (!par2World.isRemote)
    057                {
    058                    par2World.spawnEntityInWorld(new EntityFishHook(par2World, par3EntityPlayer));
    059                }
    060
    061                par3EntityPlayer.swingItem();
    062            }
    063
    064            return par1ItemStack;
    065        }
    066    }