From 38e323a12f29a626704b991f6f23f85aa92f9674 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 23 Aug 2021 11:24:06 +0200 Subject: [PATCH] small fix to the tree cutter --- src/main/java/com/seibel/lod/builders/LodBufferBuilder.java | 5 +++-- src/main/java/com/seibel/lod/objects/LodRegion.java | 4 ++++ src/main/java/com/seibel/lod/util/DetailUtil.java | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java b/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java index 92734ddfe..17a823050 100644 --- a/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java +++ b/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java @@ -66,7 +66,8 @@ public class LodBufferBuilder /** This holds the thread used to generate new LODs off the main thread. */ private ExecutorService mainGenThread = Executors.newSingleThreadExecutor(new LodThreadFactory(this.getClass().getSimpleName() + " - main")); /** This holds the threads used to generate buffers. */ - private ExecutorService bufferBuilderThreads = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(), new LodThreadFactory(this.getClass().getSimpleName() + " - builder")); + private ExecutorService bufferBuilderThreads = Executors.newSingleThreadExecutor(new LodThreadFactory(this.getClass().getSimpleName() + " - buffer builder")); + //private ExecutorService bufferBuilderThreads = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(), new LodThreadFactory(this.getClass().getSimpleName() + " - builder")); private LodBuilder LodQuadTreeNodeBuilder; @@ -445,7 +446,7 @@ public class LodBufferBuilder positionWaitingToBeGenerated.add(chunkPos); numberOfChunksWaitingToGenerate.addAndGet(1); - LodNodeGenWorker genWorker = new LodNodeGenWorker(chunkPos, LodConfig.CLIENT.distanceGenerationMode.get(), LodConfig.CLIENT.maxGenerationDetail.get(), renderer, LodQuadTreeNodeBuilder, this, lodDim, serverWorld); + LodNodeGenWorker genWorker = new LodNodeGenWorker(chunkPos,generationRequest.generationMode, generationRequest.detail, renderer, LodQuadTreeNodeBuilder, this, lodDim, serverWorld); WorldWorkerManager.addWorker(genWorker); } } diff --git a/src/main/java/com/seibel/lod/objects/LodRegion.java b/src/main/java/com/seibel/lod/objects/LodRegion.java index d6adb5f7b..a56446b05 100644 --- a/src/main/java/com/seibel/lod/objects/LodRegion.java +++ b/src/main/java/com/seibel/lod/objects/LodRegion.java @@ -585,6 +585,9 @@ public class LodRegion implements Serializable */ public LevelContainer getLevel(byte lod) { + if(lod < minDetailLevel){ + throw new IllegalArgumentException("getLevel asked for a level that does not exist: minimum " + minDetailLevel + " level requested " + lod); + } return new LevelContainer(lod, colors[lod], height[lod], depth[lod], generationType[lod], dataExistence[lod]); } @@ -613,6 +616,7 @@ public class LodRegion implements Serializable { if(minDetailLevel < detailLevel) { + System.out.println("cutting at " + regionPosX + " " + regionPosZ + " " + detailLevel); for (byte tempLod = 0; tempLod < detailLevel; tempLod++) { colors[tempLod] = new byte[0][0][0]; diff --git a/src/main/java/com/seibel/lod/util/DetailUtil.java b/src/main/java/com/seibel/lod/util/DetailUtil.java index 445ef298e..9a29484c5 100644 --- a/src/main/java/com/seibel/lod/util/DetailUtil.java +++ b/src/main/java/com/seibel/lod/util/DetailUtil.java @@ -33,6 +33,7 @@ public class DetailUtil LodDetail.DOUBLE, LodDetail.DOUBLE, LodDetail.SINGLE, + LodDetail.SINGLE, LodDetail.SINGLE}; public static int getDistanceRendering(int detail)