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 e6f6572f0..b76e4fee0 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 @@ -1158,6 +1158,11 @@ public class Config .comment("Shows what levels are loaded and world gen/rendering info about those levels.") .build(); + public static ConfigEntry onlyShowRenderingLevels = new ConfigEntry.Builder() + .set(true) + .comment("Only show levels that DH is actively rendering.") + .build(); + } /** This class is used to debug the different features of the config GUI */ diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java index f8aae77d9..fcda9f6d0 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java @@ -96,6 +96,7 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel //=============// // constructor // //=============// + //region public DhClientLevel( ISaveStructure saveStructure, @@ -205,11 +206,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel }); } + //endregion + //==============// // tick methods // //==============// + //region @Override public void clientTick() @@ -250,11 +254,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel @Override public DhBlockPos2D getTargetPosForGeneration() { return new DhBlockPos2D(MC_CLIENT.getPlayerBlockPos()); } + //endregion + //===========// // world gen // //===========// + //region @Override public void onWorldGenTaskComplete(long pos) @@ -262,11 +269,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel this.clientside.reloadPos(pos); } + //endregion + //=========// // getters // //=========// + //region @Override public IClientLevelWrapper getClientLevelWrapper() { return this.levelWrapper; } @@ -296,6 +306,9 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel return (renderState != null) ? renderState.renderBufferHandler : null; } + @Override + public boolean isRendering() { return this.clientside.isRendering(); } + public boolean shouldProcessChunkUpdate(DhChunkPos chunkPos) { if (this.networkState == null || !this.networkState.isReady()) @@ -306,11 +319,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel return !this.networkState.sessionConfig.isRealTimeUpdatesEnabled() || this.loadedOnceChunks.add(chunkPos); } + //endregion + //===========// // debugging // //===========// + //region @Override public void addDebugMenuStringsToList(List messageList) @@ -342,11 +358,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel } } + //endregion + //================// // base overrides // //================// + //region @Override public String toString() { return "DhClientLevel{" + this.getClientLevelWrapper().getDhIdentifier() + "}"; } @@ -371,11 +390,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel LOGGER.info("Closed [" + DhClientLevel.class.getSimpleName() + "] for [" + this.levelWrapper + "]"); } + //endregion + //================// // helper classes // //================// + //region private static class LodRequestState extends LodRequestModule.AbstractLodRequestState { @@ -385,4 +407,8 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel } } + //endregion + + + } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java index 5b3ff6983..d1ff86052 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java @@ -50,6 +50,7 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli //=============// // constructor // //=============// + //region public DhClientServerLevel( ISaveStructure saveStructure, @@ -64,30 +65,42 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli this.runRepoReliantSetup(); } + //endregion + //==============// // tick methods // //==============// + //region @Override public void clientTick() { this.clientside.clientTick(); } + //endregion + //========// // render // //========// + //region public void startRenderer() { this.clientside.startRenderer(); } public void stopRenderer() { this.clientside.stopRenderer(); } + @Override + public boolean isRendering() { return this.clientside.isRendering(); } + + //endregion + //================// // level handling // //================// + //region @Nullable @Override @@ -96,11 +109,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli @Override public void clearRenderCache() { this.clientside.clearRenderCache(); } + //endregion + //===========// // debugging // //===========// + //region @Override public void addDebugMenuStringsToList(List messageList) @@ -130,11 +146,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli return (renderState != null) ? renderState.renderBufferHandler : null; } + //endregion + //===============// // data handling // //===============// + //region @Override public void onWorldGenTaskComplete(long pos) @@ -143,11 +162,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli this.clientside.reloadPos(pos); } + //endregion + //================// // base overrides // //================// + //region @Override public String toString() { return "DhClientServerLevel{"+this.serverLevelWrapper.getKeyedLevelDimensionName()+"}"; } @@ -161,4 +183,8 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli LOGGER.info("Closed " + this.getClass().getSimpleName() + " for " + this.getServerLevelWrapper()); } + //endregion + + + } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/IDhClientLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/IDhClientLevel.java index 8c0c18bc1..5c55a3156 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/IDhClientLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/IDhClientLevel.java @@ -19,6 +19,7 @@ package com.seibel.distanthorizons.core.level; +import com.seibel.distanthorizons.core.logging.f3.F3Screen; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import org.jetbrains.annotations.Nullable; @@ -39,4 +40,12 @@ public interface IDhClientLevel extends IDhLevel */ void clearRenderCache(); + /** + * returns true if this level is currently rendering.
+ * Designed for use for debugging and the {@link F3Screen}. + */ + boolean isRendering(); + + + } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/logging/f3/F3Screen.java b/core/src/main/java/com/seibel/distanthorizons/core/logging/f3/F3Screen.java index 35cdb91f8..f28c17a27 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/logging/f3/F3Screen.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/logging/f3/F3Screen.java @@ -25,6 +25,7 @@ import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.enums.MinecraftTextFormat; import com.seibel.distanthorizons.core.jar.ModJarInfo; +import com.seibel.distanthorizons.core.level.IDhClientLevel; import com.seibel.distanthorizons.core.level.IDhLevel; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.util.objects.pooling.PhantomArrayListPool; @@ -171,7 +172,23 @@ public class F3Screen messageList.add(""); for (IDhLevel level : levelIterator) { + // skip non-rendering levels if requested + if (Config.Client.Advanced.Debugging.F3Screen.onlyShowRenderingLevels.get()) + { + if (level instanceof IDhClientLevel) + { + IDhClientLevel clientLevel = (IDhClientLevel) level; + if (!clientLevel.isRendering()) + { + continue; + } + } + } + + + level.addDebugMenuStringsToList(messageList); + // LOD rendering RenderBufferHandler renderBufferHandler = level.getRenderBufferHandler(); if (renderBufferHandler != null) @@ -183,6 +200,7 @@ public class F3Screen messageList.add(showPassString); } } + // Generic rendering GenericObjectRenderer genericRenderer = level.getGenericRenderer(); if (genericRenderer != null) diff --git a/core/src/main/resources/assets/distanthorizons/lang/en_us.json b/core/src/main/resources/assets/distanthorizons/lang/en_us.json index 0d99a3c41..9017ea90a 100644 --- a/core/src/main/resources/assets/distanthorizons/lang/en_us.json +++ b/core/src/main/resources/assets/distanthorizons/lang/en_us.json @@ -569,6 +569,8 @@ "Show Queued Chunk Update Count", "distanthorizons.config.client.advanced.debugging.f3Screen.showLevelStatus": "Show Level Status", + "distanthorizons.config.client.advanced.debugging.f3Screen.onlyShowRenderingLevels": + "Only Show Rendering Levels",