From a5291912961d00703823dc47f680c206757783c1 Mon Sep 17 00:00:00 2001 From: danquist Date: Fri, 6 Jun 2014 13:29:47 -0400 Subject: [PATCH 1/3] Fix for non-persistent crops growing too fast --- plugin.yml | 2 +- .../realisticbiomes/RealisticBiomes.java | 14 ++++++++++---- .../listener/GrowListener.java | 19 ++++++++++++------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/plugin.yml b/plugin.yml index a1ddfd07..a2144697 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,4 +1,4 @@ name: RealisticBiomes main: com.untamedears.realisticbiomes.RealisticBiomes load: STARTUP -version: 0.6.4.0 +version: 0.6.4.1 diff --git a/src/com/untamedears/realisticbiomes/RealisticBiomes.java b/src/com/untamedears/realisticbiomes/RealisticBiomes.java index 8f750159..2b66e6b2 100644 --- a/src/com/untamedears/realisticbiomes/RealisticBiomes.java +++ b/src/com/untamedears/realisticbiomes/RealisticBiomes.java @@ -441,16 +441,22 @@ public GrowthConfig getGrowthConfig(TreeType species) { return materialGrowth.get(treeTypeMap.get(species)); } - public GrowthConfig getGrowthConfig(Block block) { - Material m = block.getType(); + public GrowthConfig getGrowthConfig(Material m) { return materialGrowth.get(m); } - public boolean hasGrowthConfig(Block block) { - Material m = block.getType(); + public GrowthConfig getGrowthConfig(Block b) { + return materialGrowth.get(b.getType()); + } + + public boolean hasGrowthConfig(Material m) { return materialGrowth.containsKey(m); } + public boolean hasGrowthConfig(Block b) { + return materialGrowth.containsKey(b.getType()); + } + public boolean hasGrowthConfig(TreeType species) { return materialGrowth.containsKey(treeTypeMap.get(species)); } diff --git a/src/com/untamedears/realisticbiomes/listener/GrowListener.java b/src/com/untamedears/realisticbiomes/listener/GrowListener.java index e83a71cd..bdf78121 100644 --- a/src/com/untamedears/realisticbiomes/listener/GrowListener.java +++ b/src/com/untamedears/realisticbiomes/listener/GrowListener.java @@ -49,6 +49,7 @@ public GrowListener(RealisticBiomes plugin) { */ @EventHandler(ignoreCancelled = true) public void onBlockGrow(BlockGrowEvent event) { + Material m = event.getNewState().getType(); Block b = event.getBlock(); GrowthConfig growthConfig = plugin.getGrowthConfig(b); @@ -57,7 +58,7 @@ public void onBlockGrow(BlockGrowEvent event) { event.setCancelled(true); } - else if (!willGrow(b)) { + else if (!willGrow(m, b)) { event.setCancelled(true); } } @@ -155,14 +156,18 @@ public void onBlockDispense(BlockDispenseEvent event) { * Determines if a plant {@link Material | @link TreeType} will grow, given the current conditions * @param m The material type of the plant * @param b The block that the plant is on - * @return Whether the plant will grow this tick + * @return true if the block should grow this material, otherwise false */ - private boolean willGrow(Block b) { - if(plugin.hasGrowthConfig(b)) { - boolean willGrow = Math.random() < plugin.getGrowthConfig(b).getRate(b); - return willGrow; + private boolean willGrow(Material m, Block b) { + GrowthConfig config = plugin.getGrowthConfig(m); + + // Returns true if the random value is within the growth rate + if (config != null) { + return Math.random() < config.getRate(b); } - return true; + + // Default to no growth + return false; } From 2f10cff003d54f5286701785911192f40818053e Mon Sep 17 00:00:00 2001 From: danquist Date: Fri, 6 Jun 2014 13:32:18 -0400 Subject: [PATCH 2/3] Increment version number --- plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.yml b/plugin.yml index a2144697..044038e2 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,4 +1,4 @@ name: RealisticBiomes main: com.untamedears.realisticbiomes.RealisticBiomes load: STARTUP -version: 0.6.4.1 +version: 0.6.4.2 From 295f9485102caa6ebfbe9020c3472086a6059a58 Mon Sep 17 00:00:00 2001 From: danquist Date: Tue, 10 Jun 2014 23:16:47 -0500 Subject: [PATCH 3/3] Prevent growth being manually added to non-persistent crops --- plugin.yml | 2 +- src/com/untamedears/realisticbiomes/RealisticBiomes.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugin.yml b/plugin.yml index 044038e2..a0fbbb3a 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,4 +1,4 @@ name: RealisticBiomes main: com.untamedears.realisticbiomes.RealisticBiomes load: STARTUP -version: 0.6.4.2 +version: 0.6.4.3 diff --git a/src/com/untamedears/realisticbiomes/RealisticBiomes.java b/src/com/untamedears/realisticbiomes/RealisticBiomes.java index 2b66e6b2..1e38871c 100644 --- a/src/com/untamedears/realisticbiomes/RealisticBiomes.java +++ b/src/com/untamedears/realisticbiomes/RealisticBiomes.java @@ -400,6 +400,11 @@ public double growAndPersistBlock(Block block, boolean naturalGrowEvent) { return 0.0; } + // Only persistent crops should be grown in this manner + if (!growthConfig.isPersistent()) { + return 0.0; + } + RealisticBiomes.doLog(Level.FINER, "Realisticbiomes.growAndPersistBlock(): plantManager.get() returned: " + plant + " for coords: " + blockCoords); if (plant == null) {