Hide non-rendering levels in the F3 screen

This commit is contained in:
James Seibel
2026-02-08 20:42:32 -06:00
parent 42ae79b76c
commit 78f83197d7
6 changed files with 86 additions and 0 deletions
@@ -1158,6 +1158,11 @@ public class Config
.comment("Shows what levels are loaded and world gen/rendering info about those levels.") .comment("Shows what levels are loaded and world gen/rendering info about those levels.")
.build(); .build();
public static ConfigEntry<Boolean> onlyShowRenderingLevels = new ConfigEntry.Builder<Boolean>()
.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 */ /** This class is used to debug the different features of the config GUI */
@@ -96,6 +96,7 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
//=============// //=============//
// constructor // // constructor //
//=============// //=============//
//region
public DhClientLevel( public DhClientLevel(
ISaveStructure saveStructure, ISaveStructure saveStructure,
@@ -205,11 +206,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
}); });
} }
//endregion
//==============// //==============//
// tick methods // // tick methods //
//==============// //==============//
//region
@Override @Override
public void clientTick() public void clientTick()
@@ -250,11 +254,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
@Override @Override
public DhBlockPos2D getTargetPosForGeneration() { return new DhBlockPos2D(MC_CLIENT.getPlayerBlockPos()); } public DhBlockPos2D getTargetPosForGeneration() { return new DhBlockPos2D(MC_CLIENT.getPlayerBlockPos()); }
//endregion
//===========// //===========//
// world gen // // world gen //
//===========// //===========//
//region
@Override @Override
public void onWorldGenTaskComplete(long pos) public void onWorldGenTaskComplete(long pos)
@@ -262,11 +269,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
this.clientside.reloadPos(pos); this.clientside.reloadPos(pos);
} }
//endregion
//=========// //=========//
// getters // // getters //
//=========// //=========//
//region
@Override @Override
public IClientLevelWrapper getClientLevelWrapper() { return this.levelWrapper; } public IClientLevelWrapper getClientLevelWrapper() { return this.levelWrapper; }
@@ -296,6 +306,9 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
return (renderState != null) ? renderState.renderBufferHandler : null; return (renderState != null) ? renderState.renderBufferHandler : null;
} }
@Override
public boolean isRendering() { return this.clientside.isRendering(); }
public boolean shouldProcessChunkUpdate(DhChunkPos chunkPos) public boolean shouldProcessChunkUpdate(DhChunkPos chunkPos)
{ {
if (this.networkState == null || !this.networkState.isReady()) 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); return !this.networkState.sessionConfig.isRealTimeUpdatesEnabled() || this.loadedOnceChunks.add(chunkPos);
} }
//endregion
//===========// //===========//
// debugging // // debugging //
//===========// //===========//
//region
@Override @Override
public void addDebugMenuStringsToList(List<String> messageList) public void addDebugMenuStringsToList(List<String> messageList)
@@ -342,11 +358,14 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
} }
} }
//endregion
//================// //================//
// base overrides // // base overrides //
//================// //================//
//region
@Override @Override
public String toString() { return "DhClientLevel{" + this.getClientLevelWrapper().getDhIdentifier() + "}"; } 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 + "]"); LOGGER.info("Closed [" + DhClientLevel.class.getSimpleName() + "] for [" + this.levelWrapper + "]");
} }
//endregion
//================// //================//
// helper classes // // helper classes //
//================// //================//
//region
private static class LodRequestState extends LodRequestModule.AbstractLodRequestState private static class LodRequestState extends LodRequestModule.AbstractLodRequestState
{ {
@@ -385,4 +407,8 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
} }
} }
//endregion
} }
@@ -50,6 +50,7 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli
//=============// //=============//
// constructor // // constructor //
//=============// //=============//
//region
public DhClientServerLevel( public DhClientServerLevel(
ISaveStructure saveStructure, ISaveStructure saveStructure,
@@ -64,30 +65,42 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli
this.runRepoReliantSetup(); this.runRepoReliantSetup();
} }
//endregion
//==============// //==============//
// tick methods // // tick methods //
//==============// //==============//
//region
@Override @Override
public void clientTick() { this.clientside.clientTick(); } public void clientTick() { this.clientside.clientTick(); }
//endregion
//========// //========//
// render // // render //
//========// //========//
//region
public void startRenderer() { this.clientside.startRenderer(); } public void startRenderer() { this.clientside.startRenderer(); }
public void stopRenderer() { this.clientside.stopRenderer(); } public void stopRenderer() { this.clientside.stopRenderer(); }
@Override
public boolean isRendering() { return this.clientside.isRendering(); }
//endregion
//================// //================//
// level handling // // level handling //
//================// //================//
//region
@Nullable @Nullable
@Override @Override
@@ -96,11 +109,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli
@Override @Override
public void clearRenderCache() { this.clientside.clearRenderCache(); } public void clearRenderCache() { this.clientside.clearRenderCache(); }
//endregion
//===========// //===========//
// debugging // // debugging //
//===========// //===========//
//region
@Override @Override
public void addDebugMenuStringsToList(List<String> messageList) public void addDebugMenuStringsToList(List<String> messageList)
@@ -130,11 +146,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli
return (renderState != null) ? renderState.renderBufferHandler : null; return (renderState != null) ? renderState.renderBufferHandler : null;
} }
//endregion
//===============// //===============//
// data handling // // data handling //
//===============// //===============//
//region
@Override @Override
public void onWorldGenTaskComplete(long pos) public void onWorldGenTaskComplete(long pos)
@@ -143,11 +162,14 @@ public class DhClientServerLevel extends AbstractDhServerLevel implements IDhCli
this.clientside.reloadPos(pos); this.clientside.reloadPos(pos);
} }
//endregion
//================// //================//
// base overrides // // base overrides //
//================// //================//
//region
@Override @Override
public String toString() { return "DhClientServerLevel{"+this.serverLevelWrapper.getKeyedLevelDimensionName()+"}"; } 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()); LOGGER.info("Closed " + this.getClass().getSimpleName() + " for " + this.getServerLevelWrapper());
} }
//endregion
} }
@@ -19,6 +19,7 @@
package com.seibel.distanthorizons.core.level; package com.seibel.distanthorizons.core.level;
import com.seibel.distanthorizons.core.logging.f3.F3Screen;
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -39,4 +40,12 @@ public interface IDhClientLevel extends IDhLevel
*/ */
void clearRenderCache(); void clearRenderCache();
/**
* returns true if this level is currently rendering. <br>
* Designed for use for debugging and the {@link F3Screen}.
*/
boolean isRendering();
} }
@@ -25,6 +25,7 @@ import com.seibel.distanthorizons.core.config.Config;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.enums.MinecraftTextFormat; import com.seibel.distanthorizons.core.enums.MinecraftTextFormat;
import com.seibel.distanthorizons.core.jar.ModJarInfo; 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.level.IDhLevel;
import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
import com.seibel.distanthorizons.core.util.objects.pooling.PhantomArrayListPool; import com.seibel.distanthorizons.core.util.objects.pooling.PhantomArrayListPool;
@@ -171,7 +172,23 @@ public class F3Screen
messageList.add(""); messageList.add("");
for (IDhLevel level : levelIterator) 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); level.addDebugMenuStringsToList(messageList);
// LOD rendering // LOD rendering
RenderBufferHandler renderBufferHandler = level.getRenderBufferHandler(); RenderBufferHandler renderBufferHandler = level.getRenderBufferHandler();
if (renderBufferHandler != null) if (renderBufferHandler != null)
@@ -183,6 +200,7 @@ public class F3Screen
messageList.add(showPassString); messageList.add(showPassString);
} }
} }
// Generic rendering // Generic rendering
GenericObjectRenderer genericRenderer = level.getGenericRenderer(); GenericObjectRenderer genericRenderer = level.getGenericRenderer();
if (genericRenderer != null) if (genericRenderer != null)
@@ -569,6 +569,8 @@
"Show Queued Chunk Update Count", "Show Queued Chunk Update Count",
"distanthorizons.config.client.advanced.debugging.f3Screen.showLevelStatus": "distanthorizons.config.client.advanced.debugging.f3Screen.showLevelStatus":
"Show Level Status", "Show Level Status",
"distanthorizons.config.client.advanced.debugging.f3Screen.onlyShowRenderingLevels":
"Only Show Rendering Levels",