    001    package net.minecraft.src;
    002
    003    import net.minecraftforge.common.EnumPlantType;
    004    import net.minecraftforge.common.ForgeDirection;
    005    import net.minecraftforge.common.IPlantable;
    006
    007    public class ItemSeeds extends Item implements IPlantable
    008    {
    009        /**
    010         * The type of block this seed turns into (wheat or pumpkin stems for instance)
    011         */
    012        private int blockType;
    013
    014        /** BlockID of the block the seeds can be planted on. */
    015        private int soilBlockID;
    016
    017        public ItemSeeds(int par1, int par2, int par3)
    018        {
    019            super(par1);
    020            this.blockType = par2;
    021            this.soilBlockID = par3;
    022            this.setCreativeTab(CreativeTabs.tabMaterials);
    023        }
    024
    025        /**
    026         * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
    027         * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
    028         */
    029        public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
    030        {
    031            if (par7 != 1)
    032            {
    033                return false;
    034            }
    035            else if (par2EntityPlayer.func_82247_a(par4, par5, par6, par7, par1ItemStack) && par2EntityPlayer.func_82247_a(par4, par5 + 1, par6, par7, par1ItemStack))
    036            {
    037                int var11 = par3World.getBlockId(par4, par5, par6);
    038                Block soil = Block.blocksList[var11];
    039
    040                if (soil != null && soil.canSustainPlant(par3World, par4, par5, par6, ForgeDirection.UP, this) && par3World.isAirBlock(par4, par5 + 1, par6))
    041                {
    042                    par3World.setBlockWithNotify(par4, par5 + 1, par6, this.blockType);
    043                    --par1ItemStack.stackSize;
    044                    return true;
    045                }
    046                else
    047                {
    048                    return false;
    049                }
    050            }
    051            else
    052            {
    053                return false;
    054            }
    055        }
    056
    057        @Override
    058        public EnumPlantType getPlantType(World world, int x, int y, int z)
    059        {
    060            return (blockType == Block.netherStalk.blockID ? EnumPlantType.Nether : EnumPlantType.Crop);
    061        }
    062
    063        @Override
    064        public int getPlantID(World world, int x, int y, int z)
    065        {
    066            return blockType;
    067        }
    068
    069        @Override
    070        public int getPlantMetadata(World world, int x, int y, int z)
    071        {
    072            return 0;
    073        }
    074    }