    001package net.minecraft.item;
    002
    003import net.minecraft.entity.player.EntityPlayer;
    004import net.minecraft.world.World;
    005import net.minecraftforge.common.EnumPlantType;
    006import net.minecraftforge.common.IPlantable;
    007
    008public class ItemSeedFood extends ItemFood implements IPlantable
    009{
    010    /** Block ID of the crop this seed food should place. */
    011    private int cropId;
    012
    013    /** Block ID of the soil this seed food should be planted on. */
    014    private int soilId;
    015
    016    public ItemSeedFood(int par1, int par2, float par3, int par4, int par5)
    017    {
    018        super(par1, par2, par3, false);
    019        this.cropId = par4;
    020        this.soilId = par5;
    021    }
    022
    023    /**
    024     * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
    025     * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
    026     */
    027    public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
    028    {
    029        if (par7 != 1)
    030        {
    031            return false;
    032        }
    033        else if (par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack) && par2EntityPlayer.canPlayerEdit(par4, par5 + 1, par6, par7, par1ItemStack))
    034        {
    035            int var11 = par3World.getBlockId(par4, par5, par6);
    036
    037            if (var11 == this.soilId && par3World.isAirBlock(par4, par5 + 1, par6))
    038            {
    039                par3World.setBlockWithNotify(par4, par5 + 1, par6, this.cropId);
    040                --par1ItemStack.stackSize;
    041                return true;
    042            }
    043            else
    044            {
    045                return false;
    046            }
    047        }
    048        else
    049        {
    050            return false;
    051        }
    052    }
    053
    054    @Override
    055    public EnumPlantType getPlantType(World world, int x, int y, int z)
    056    {
    057        return EnumPlantType.Crop;
    058    }
    059
    060    @Override
    061    public int getPlantID(World world, int x, int y, int z)
    062    {
    063        return cropId;
    064    }
    065
    066    @Override
    067    public int getPlantMetadata(World world, int x, int y, int z)
    068    {
    069        return 0;
    070    }
    071}