001package net.minecraft.item;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import net.minecraft.creativetab.CreativeTabs;
006import net.minecraft.entity.passive.EntityPig;
007import net.minecraft.entity.player.EntityPlayer;
008import net.minecraft.world.World;
009
010public 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}