001    package net.minecraft.item;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import net.minecraft.creativetab.CreativeTabs;
006    import net.minecraft.entity.passive.EntityPig;
007    import net.minecraft.entity.player.EntityPlayer;
008    import net.minecraft.world.World;
009    
010    public class ItemCarrotOnAStick extends Item
011    {
012        public ItemCarrotOnAStick(int par1)
013        {
014            super(par1);
015            this.setCreativeTab(CreativeTabs.tabTransport);
016            this.setMaxStackSize(1);
017            this.setMaxDamage(25);
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.isRiding() && par3EntityPlayer.ridingEntity instanceof EntityPig)
047            {
048                EntityPig var4 = (EntityPig)par3EntityPlayer.ridingEntity;
049    
050                if (var4.getAIControlledByPlayer().isControlledByPlayer() && par1ItemStack.getMaxDamage() - par1ItemStack.getItemDamage() >= 7)
051                {
052                    var4.getAIControlledByPlayer().boostSpeed();
053                    par1ItemStack.damageItem(7, par3EntityPlayer);
054    
055                    if (par1ItemStack.stackSize == 0)
056                    {
057                        ItemStack var5 = new ItemStack(Item.fishingRod);
058                        var5.setTagCompound(par1ItemStack.stackTagCompound);
059                        return var5;
060                    }
061                }
062            }
063    
064            return par1ItemStack;
065        }
066    }