diff --git a/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch b/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch index 37298ca359..2327fb98d7 100644 --- a/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch @@ -54,7 +54,7 @@ + { + List ret = new java.util.ArrayList(); + if (RANDOM.nextInt(8) != 0) return ret; -+ ItemStack seed = net.minecraftforge.common.ForgeHooks.getGrassSeed(RANDOM); ++ ItemStack seed = net.minecraftforge.common.ForgeHooks.getGrassSeed(RANDOM, fortune); + if (seed != null) ret.add(seed); + return ret; + } diff --git a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch index a6992ca07d..18927e74a0 100644 --- a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch +++ b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch @@ -84,7 +84,7 @@ + } - if (iblockstate.func_185904_a() != Material.field_151579_a && f >= 1.0F) -+ if (iblockstate.func_177230_c().isAir(iblockstate, field_73092_a, p_180784_1_) && f >= 1.0F) ++ if (!iblockstate.func_177230_c().isAir(iblockstate, field_73092_a, p_180784_1_) && f >= 1.0F) { this.func_180237_b(p_180784_1_); } diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 025dd885de..9d95ad0f0d 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -111,6 +111,7 @@ import net.minecraftforge.fml.relauncher.ReflectionHelper; public class ForgeHooks { + //TODO: Loot tables? static class SeedEntry extends WeightedRandom.Item { public final ItemStack seed; @@ -119,17 +120,21 @@ public class ForgeHooks super(weight); this.seed = seed; } + public ItemStack getStack(Random rand, int fortune) + { + return seed.copy(); + } } static final List seedList = new ArrayList(); - public static ItemStack getGrassSeed(Random rand) + public static ItemStack getGrassSeed(Random rand, int fortune) { SeedEntry entry = (SeedEntry)WeightedRandom.getRandomItem(rand, seedList); if (entry == null || entry.seed == null) { return null; } - return entry.seed.copy(); + return entry.getStack(rand, fortune); } private static boolean toolInit = false; @@ -257,7 +262,13 @@ public class ForgeHooks static { - seedList.add(new SeedEntry(new ItemStack(Items.wheat_seeds), 10)); + seedList.add(new SeedEntry(new ItemStack(Items.wheat_seeds), 10) + { + public ItemStack getStack(Random rand, int fortune) + { + return new ItemStack(Items.wheat_seeds, 1 + rand.nextInt(fortune * 2 + 1)); + } + }); initTools(); } diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index 625e29a887..c386dcd8e0 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -38,10 +38,16 @@ public class MinecraftForge * @param seed The item to drop as a seed. * @param weight The relative probability of the seeds, * where wheat seeds are 10. + * + * Note: These functions may be going away soon, we're looking into loot tables.... */ public static void addGrassSeed(ItemStack seed, int weight) { - ForgeHooks.seedList.add(new SeedEntry(seed, weight)); + addGrassSeed(new SeedEntry(seed, weight)); + } + public static void addGrassSeed(SeedEntry seed) + { + ForgeHooks.seedList.add(seed); } /**