--- ../src_base/common/net/minecraft/src/BlockTallGrass.java +++ ../src_work/common/net/minecraft/src/BlockTallGrass.java @@ -2,10 +2,15 @@ import cpw.mods.fml.common.Side; import cpw.mods.fml.common.asm.SideOnly; + +import java.util.ArrayList; import java.util.List; import java.util.Random; -public class BlockTallGrass extends BlockFlower +import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.IShearable; + +public class BlockTallGrass extends BlockFlower implements IShearable { protected BlockTallGrass(int par1, int par2) { @@ -27,7 +32,7 @@ */ public int idDropped(int par1, Random par2Random, int par3) { - return par2Random.nextInt(8) == 0 ? Item.seeds.shiftedIndex : -1; + return -1; } /** @@ -44,15 +49,7 @@ */ public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) { - if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.shiftedIndex) - { - par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); - this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(Block.tallGrass, 1, par6)); - } - else - { - super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); - } + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); } @SideOnly(Side.CLIENT) @@ -107,4 +104,35 @@ par3List.add(new ItemStack(par1, 1, var4)); } } + + @Override + public ArrayList getBlockDropped(World world, int x, int y, int z, int meta, int fortune) + { + ArrayList ret = new ArrayList(); + if (world.rand.nextInt(8) != 0) + { + return ret; + } + + ItemStack item = ForgeHooks.getGrassSeed(world); + if (item != null) + { + ret.add(item); + } + return ret; + } + + @Override + public boolean isShearable(ItemStack item, World world, int x, int y, int z) + { + return true; + } + + @Override + public ArrayList onSheared(ItemStack item, World world, int x, int y, int z, int fortune) + { + ArrayList ret = new ArrayList(); + ret.add(new ItemStack(this, 1, world.getBlockMetadata(x, y, z))); + return ret; + } }