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.")
.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 */
@@ -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<String> 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
}
@@ -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<String> 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
}
@@ -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. <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.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)
@@ -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",