    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 entitypig = (EntityPig)par3EntityPlayer.ridingEntity;
    049
    050            if (entitypig.getAIControlledByPlayer().isControlledByPlayer() && par1ItemStack.getMaxDamage() - par1ItemStack.getItemDamage() >= 7)
    051            {
    052                entitypig.getAIControlledByPlayer().boostSpeed();
    053                par1ItemStack.damageItem(7, par3EntityPlayer);
    054
    055                if (par1ItemStack.stackSize == 0)
    056                {
    057                    ItemStack itemstack1 = new ItemStack(Item.fishingRod);
    058                    itemstack1.setTagCompound(par1ItemStack.stackTagCompound);
    059                    return itemstack1;
    060                }
    061            }
    062        }
    063
    064        return par1ItemStack;
    065    }
    066}