diff --git a/UltimateTimber/Core/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java b/UltimateTimber/Core/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java index cf19b9e..b935ffa 100644 --- a/UltimateTimber/Core/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java +++ b/UltimateTimber/Core/src/main/java/com/songoda/ultimatetimber/tree/TreeBlockSet.java @@ -22,7 +22,8 @@ public class TreeBlockSet implements Collection { this.logBlocks = new HashSet<>(); this.leafBlocks = new HashSet<>(); - this.logBlocks.add(initialLogBlock); + if (initialLogBlock != null) + this.logBlocks.add(initialLogBlock); } /** diff --git a/UltimateTimber/Plugin/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java b/UltimateTimber/Plugin/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java index 1a2b24f..b7f24f2 100644 --- a/UltimateTimber/Plugin/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java +++ b/UltimateTimber/Plugin/src/main/java/com/songoda/ultimatetimber/manager/TreeDetectionManager.java @@ -105,7 +105,7 @@ public class TreeDetectionManager extends Manager { // Detect branches off the main trunk for (Block trunkBlock : trunkBlocks) - this.recursiveBranchSearch(possibleTreeDefinitions, detectedTreeBlocks, trunkBlock, initialBlock.getY()); + this.recursiveBranchSearch(possibleTreeDefinitions, detectedTreeBlocks, trunkBlock, initialBlock.getLocation().getBlockY()); // Detect leaves off the trunk/branches Set> branchBlocks = new HashSet<>(detectedTreeBlocks.getLogBlocks()); @@ -123,7 +123,7 @@ public class TreeDetectionManager extends Manager { if (this.entireTreeBase) { Set groundBlocks = new HashSet<>(); for (ITreeBlock treeBlock : detectedTreeBlocks.getLogBlocks()) - if (treeBlock.getLocation().getBlockY() == initialBlock.getLocation().getBlockY()) + if (treeBlock != detectedTreeBlocks.getInitialLogBlock() && treeBlock.getLocation().getBlockY() == initialBlock.getLocation().getBlockY()) groundBlocks.add(treeBlock.getBlock()); for (Block block : groundBlocks) { @@ -137,7 +137,7 @@ public class TreeDetectionManager extends Manager { } } - if (!blockBelowIsLog && blockBelowIsSoil) + if (blockBelowIsLog || blockBelowIsSoil) return null; } }