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