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