ForgePatch/patches/common/net/minecraft/src/BlockTallGrass.java.patch

81 lines
2.5 KiB
Diff

--- ../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<ItemStack> getBlockDropped(World world, int x, int y, int z, int meta, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ 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<ItemStack> onSheared(ItemStack item, World world, int x, int y, int z, int fortune)
+ {
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
+ ret.add(new ItemStack(this, 1, world.getBlockMetadata(x, y, z)));
+ return ret;
+ }
}