From deaccf53f98f804edd77f46dfaa6aff8cc6976e9 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Mon, 18 Nov 2024 07:40:16 -0600 Subject: [PATCH] Fix sometimes not loading high-detail LODs when on a server --- .../distanthorizons/core/render/LodQuadTree.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java b/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java index dd0b123ea..f12d215de 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java @@ -345,9 +345,15 @@ public class LodQuadTree extends QuadTree implements IDebugRen // prepare this section for rendering if (!renderSection.gpuUploadInProgress() && renderSection.renderBuffer == null - // this check is specifically for N-sized world generators where the higher quality - // data source may not exist yet - && renderSection.getFullDataSourceExists()) + && + ( + // this check is specifically for N-sized world generators where the higher quality + // data source may not exist yet, this is done to prevent holes while waiting for said generator + renderSection.getFullDataSourceExists() + // if we can't request generation we don't want to check for full data existing + // since that will prevent server LODs from loading high-detail LODs where quadrants haven't been generated. + || !this.fullDataSourceProvider.canQueueRetrieval()) + ) { nodesNeedingLoading.add(renderSection); } @@ -424,7 +430,7 @@ public class LodQuadTree extends QuadTree implements IDebugRen if (renderSection != null) { // this data source may now exist - renderSection.updateFullDataSourceExists(); + renderSection.updateFullDataSourceExists(); if (renderSection.canRender()) {