diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/QuadTree/LodQuadTree.java b/core/src/main/java/com/seibel/distanthorizons/core/render/QuadTree/LodQuadTree.java index ce3dca614..f2ccbb8b4 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/QuadTree/LodQuadTree.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/QuadTree/LodQuadTree.java @@ -372,8 +372,6 @@ public class LodQuadTree extends QuadTree implements IDebugRen //=========================// //region - // also handles disabling beacons - for (QuadNode node : this.tickNodeHolder.getDisableNodes()) { if (node == null || node.value == null) { continue; } @@ -476,7 +474,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen //=========================// // tick - recursive update // //=========================// - ///region + //region private void recursivelyUpdateRenderSectionNode( @NotNull DhBlockPos2D playerPos, @@ -490,7 +488,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen // get/create the node // // and render section // //=====================// - ///region + //region // create the node if (quadNode == null) @@ -511,7 +509,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen quadNode.setValue(sectionPos, renderSection); } - ///endregion + //endregion @@ -519,7 +517,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen // handle enabling, loading, // // and disabling render sections // //===============================// - ///region + //region // load every node for rendering if (!renderSection.gpuUploadInProgress() @@ -548,7 +546,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen throw new IllegalStateException("LodQuadTree shouldn't be updating renderSections below the expected detail level: [" + expectedDetailLevel + "]."); } - ///endregion + //endregion } private void onDetailLevelTooHigh( @NotNull DhBlockPos2D playerPos, @@ -622,7 +620,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen } - ///endregion + //endregion //=====================// // tick - work queuing // diff --git a/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadNode.java b/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadNode.java index 88382be63..220346647 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadNode.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadNode.java @@ -325,7 +325,7 @@ public class QuadNode public void deleteAllChildren() { this.deleteAllChildren(null); } /** @param removedItemConsumer is only fired for non-null nodes, however the value passed in may be null */ - public void deleteAllChildren(Consumer removedItemConsumer) + public void deleteAllChildren(@Nullable Consumer removedItemConsumer) { for (int i = 0; i < 4; i++) { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadTree.java b/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadTree.java index 94923ff3f..e6ec31034 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadTree.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/util/objects/quadTree/QuadTree.java @@ -355,7 +355,7 @@ public class QuadTree //region public void setCenterBlockPos(DhBlockPos2D newCenterPos) { this.setCenterBlockPos(newCenterPos, null); } - public void setCenterBlockPos(DhBlockPos2D newCenterPos, Consumer removedItemConsumer) + public void setCenterBlockPos(DhBlockPos2D newCenterPos, @Nullable Consumer removedItemConsumer) { this.centerBlockPos = newCenterPos; @@ -373,11 +373,14 @@ public class QuadTree // remove out of bounds root nodes this.topRingList.moveTo(expectedCenterPos.getX(), expectedCenterPos.getY(), (quadNode) -> { - if (quadNode != null && removedItemConsumer != null) + if (quadNode != null) { quadNode.deleteAllChildren(removedItemConsumer); - removedItemConsumer.accept(quadNode.value); + if (removedItemConsumer != null) + { + removedItemConsumer.accept(quadNode.value); + } } }); }