From 1e7b459b6adb213b46e4311ee2a0eba2fa653c50 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Fri, 8 Sep 2023 22:32:19 -0500 Subject: [PATCH] Add debug options to skip some full data update events --- .../core/api/internal/ServerApi.java | 13 +++++++++++++ .../distanthorizons/core/config/Config.java | 18 ++++++++++++++++++ .../ColumnRenderBufferBuilder.java | 4 ---- .../file/fullDatafile/FullDataMetaFile.java | 6 ++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ServerApi.java b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ServerApi.java index 6545df623..d18ff93c3 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ServerApi.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ServerApi.java @@ -21,6 +21,7 @@ package com.seibel.distanthorizons.core.api.internal; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiLevelLoadEvent; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiLevelUnloadEvent; +import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.generation.DhLightingEngine; import com.seibel.distanthorizons.core.util.ThreadUtil; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper; @@ -143,6 +144,12 @@ public class ServerApi public void serverChunkLoadEvent(IChunkWrapper chunk, ILevelWrapper level) { + if (Config.Client.Advanced.Debugging.skipChunkLoadUpdates.get()) + { + return; + } + + // the world should always be non-null, this != null is just in case the world was removed accidentally AbstractDhWorld dhWorld = SharedApi.getAbstractDhWorld(); if (dhWorld != null) @@ -156,6 +163,12 @@ public class ServerApi } public void serverChunkSaveEvent(IChunkWrapper chunkWrapper, ILevelWrapper level) { + if (Config.Client.Advanced.Debugging.skipChunkUnloadUpdates.get()) + { + return; + } + + AbstractDhWorld dhWorld = SharedApi.getAbstractDhWorld(); if (dhWorld == null) { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java index 4cc2a1d77..7a5e53f08 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java @@ -1165,6 +1165,24 @@ public class Config + "") .build(); + public static ConfigEntry skipChunkLoadUpdates = new ConfigEntry.Builder() + .set(false) + .comment("") + .build(); + + public static ConfigEntry skipChunkUnloadUpdates = new ConfigEntry.Builder() + .set(false) + .comment("") + .build(); + + public static ConfigEntry skipFullDataUpdateQueue = new ConfigEntry.Builder() + .set(false) + .comment("") + .build(); + + + + // can be set to public inorder to show in the config file and UI public static ConfigCategory exampleConfigScreen = new ConfigCategory.Builder() .set(ExampleConfigScreen.class) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBufferBuilder.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBufferBuilder.java index 491bfe20f..168c3e283 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBufferBuilder.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBufferBuilder.java @@ -76,10 +76,6 @@ public class ColumnRenderBufferBuilder IDhClientLevel clientLevel, Reference renderBufferRef, ColumnRenderSource renderSource, ColumnRenderSource[] adjData) { -/* if (isBusy()) - { - return null; - }*/ //LOGGER.info("RenderRegion startBuild @ "+renderSource.sectionPos); return CompletableFuture.supplyAsync(() -> { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataMetaFile.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataMetaFile.java index d9278e32a..43fa3825a 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataMetaFile.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataMetaFile.java @@ -28,6 +28,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.ReentrantReadWriteLock; +import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dataObjects.fullData.sources.CompleteFullDataSource; import com.seibel.distanthorizons.core.dataObjects.fullData.accessor.ChunkSizedFullDataAccessor; import com.seibel.distanthorizons.core.dataObjects.fullData.sources.interfaces.IFullDataSource; @@ -508,6 +509,11 @@ public class FullDataMetaFile extends AbstractMetaDataContainerFile implements I @SuppressWarnings("resource") // due to DataObjTracker and DataObjSoftTracker being created outside a try-catch block private CompletableFuture applyWriteQueueAndSaveAsync(IFullDataSource fullDataSourceToUpdate) { + if (Config.Client.Advanced.Debugging.skipFullDataUpdateQueue.get()) + { + return CompletableFuture.completedFuture(fullDataSourceToUpdate); + } + CompletableFuture completionFuture = new CompletableFuture<>();