    001    package net.minecraft.item;
    002
    003    import net.minecraft.entity.player.EntityPlayer;
    004    import net.minecraft.world.World;
    005    import net.minecraftforge.common.EnumPlantType;
    006    import net.minecraftforge.common.IPlantable;
    007
    008    public 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    }