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 }