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}