diff --git a/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiTransparency.java b/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiTransparency.java
index 5f6a25539..3f140a6b6 100644
--- a/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiTransparency.java
+++ b/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiTransparency.java
@@ -21,25 +21,13 @@ package com.seibel.distanthorizons.api.enums.rendering;
/**
* DISABLED,
- * FAKE,
* COMPLETE,
*
* @since API 2.0.0
- * @version 2024-4-6
+ * @version 2026-05-19
*/
public enum EDhApiTransparency
{
- DISABLED(false, false),
- FAKE(true, true),
- COMPLETE(true, false);
-
- public final boolean transparencyEnabled;
- public final boolean fakeTransparencyEnabled;
-
- EDhApiTransparency(boolean transparencyEnabled, boolean fakeTransparencyEnabled)
- {
- this.transparencyEnabled = transparencyEnabled;
- this.fakeTransparencyEnabled = fakeTransparencyEnabled;
- }
-
+ DISABLED,
+ COMPLETE;
}
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiGraphicsConfig.java b/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiGraphicsConfig.java
index 71e5f1e13..2cc2363e0 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiGraphicsConfig.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiGraphicsConfig.java
@@ -91,11 +91,11 @@ public class DhApiGraphicsConfig implements IDhApiGraphicsConfig
@Override
public IDhApiConfigValue blocksToAvoid()
- { return new DhApiConfigValue(Config.Client.Advanced.Graphics.Quality.blocksToIgnore); }
+ { return new DhApiConfigValue(Config.Client.Advanced.Graphics.Culling.blocksToIgnore); }
@Override
public IDhApiConfigValue tintWithAvoidedBlocks()
- { return new DhApiConfigValue(Config.Client.Advanced.Graphics.Quality.tintWithAvoidedBlocks); }
+ { return new DhApiConfigValue(Config.Client.Advanced.Graphics.Culling.tintWithAvoidedBlocks); }
@Override
public IDhApiConfigValue getBiomeBlending()
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 aea2acc82..ed90bc6a7 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
@@ -44,7 +44,6 @@ import java.util.List;
* This handles any configuration the user has access to.
*
* @author coolGi
- *
* @see ConfigHandler
*/
@SuppressWarnings("ConcatenationWithEmptyString")
@@ -59,43 +58,24 @@ public class Config
public static class Client
{
public static ConfigEntry quickEnableRendering = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true, Distant Horizons will render LODs beyond the vanilla render distance."
- + "")
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .build();
+ .set(true)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .build();
public static ConfigUiLinkedEntry quickLodChunkRenderDistance = new ConfigUiLinkedEntry(Client.Advanced.Graphics.Quality.lodChunkRenderDistanceRadius);
public static ConfigEntry qualityPresetSetting = new ConfigEntry.Builder()
- .set(EDhApiQualityPreset.MEDIUM) // the default value is set via the listener when accessed
- .comment(""
- + "Changing this setting will modify a number of different settings that will change the \n"
- + "visual fidelity of the rendered LODs.\n"
- + "\n"
- + "Higher settings will improve the graphical quality while increasing GPU and memory use.\n"
- + "")
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(RenderQualityPresetConfigEventHandler.INSTANCE)
- .build();
+ .set(EDhApiQualityPreset.MEDIUM) // the default value is set via the listener when accessed
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(RenderQualityPresetConfigEventHandler.INSTANCE)
+ .build();
public static ConfigEntry threadPresetSetting = new ConfigEntry.Builder()
- .setChatCommandName("common.threadPreset")
- .set(EDhApiThreadPreset.BALANCED) // the default value is set via the listener when accessed
- .comment(""
- + "Changing this setting will modify a number of different settings that will change \n"
- + "the load that Distant Horizons is allowed to put on your CPU. \n"
- + "\n"
- + "Higher options will improve LOD generation and loading speed, \n"
- + "but will increase CPU load and may introduce stuttering.\n"
- + "\n"
- + "Note: This is a CPU relative setting. \n"
- + "It should put an equal amount of strain on a 2 core CPU as a 64 core CPU.\n"
- + "")
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ThreadPresetConfigEventHandler.INSTANCE)
- .build();
+ .setChatCommandName("common.threadPreset")
+ .set(EDhApiThreadPreset.BALANCED) // the default value is set via the listener when accessed
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ThreadPresetConfigEventHandler.INSTANCE)
+ .build();
public static ConfigUiLinkedEntry quickEnableWorldGenerator = new ConfigUiLinkedEntry(Common.WorldGenerator.enableDistantGeneration);
public static ConfigUiLinkedEntry quickEnableServerGeneration = new ConfigUiLinkedEntry(Server.enableServerGeneration);
@@ -105,11 +85,11 @@ public class Config
public static ConfigUiLinkedEntry quickLodCloudRendering = new ConfigUiLinkedEntry(Advanced.Graphics.GenericRendering.enableCloudRendering);
public static ConfigEntry showDhOptionsButtonInMinecraftUi = new ConfigEntry.Builder()
- .set(true)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE)
- .comment("" +
- "Should Distant Horizon's config button appear in Minecraft's options screen next to the fov slider?")
- .build();
+ .set(true)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE)
+ .comment("" +
+ "Should Distant Horizon's config button appear in Minecraft's options screen next to the fov slider?")
+ .build();
public static ConfigCategory advanced = new ConfigCategory.Builder().set(Advanced.class).build();
@@ -191,171 +171,162 @@ public class Config
public static ConfigUIComment qualityHeader = new ConfigUIComment.Builder().setParentConfigClass(Quality.class).build();
public static ConfigEntry lodChunkRenderDistanceRadius = new ConfigEntry.Builder()
- .setMinDefaultMax(32, 256, 4096)
- .comment("" +
- "The radius of the mod's render distance. (measured in chunks)\n" +
- "")
- .build();
+ .setMinDefaultMax(32, 256, 4096)
+ .comment("" +
+ "The radius of the mod's render distance. (measured in chunks)\n" +
+ "\n" +
+ "Note: this is a best effort number. \n" +
+ "The actual render distance may be above or below this number \n" +
+ "depending on your other graphic settings. \n" +
+ "")
+ .build();
+
+ public static ConfigUISpacer qualityDropoffSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry horizontalQuality = new ConfigEntry.Builder()
- .set(EDhApiHorizontalQuality.MEDIUM)
- .comment(""
- + "This indicates how quickly LODs decrease in quality the further away they are. \n"
- + "Higher settings will render higher quality fake chunks farther away, \n"
- + "but will increase memory and GPU usage.")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiHorizontalQuality.MEDIUM)
+ .comment(""
+ + "This indicates how far apart drops in LOD quality are. \n"
+ + "\n"
+ + "Higher settings will increase the distance between drops \n"
+ + "but will increase memory and GPU usage.")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
public static ConfigEntry maxHorizontalResolution = new ConfigEntry.Builder()
- .set(EDhApiMaxHorizontalResolution.BLOCK)
- .comment(""
- + "What is the maximum detail LODs should be drawn at? \n"
- + "Higher settings will increase memory and GPU usage. \n"
- + "\n"
- + EDhApiMaxHorizontalResolution.CHUNK + ": render 1 LOD for each Chunk. \n"
- + EDhApiMaxHorizontalResolution.HALF_CHUNK + ": render 4 LODs for each Chunk. \n"
- + EDhApiMaxHorizontalResolution.FOUR_BLOCKS + ": render 16 LODs for each Chunk. \n"
- + EDhApiMaxHorizontalResolution.TWO_BLOCKS + ": render 64 LODs for each Chunk. \n"
- + EDhApiMaxHorizontalResolution.BLOCK + ": render 256 LODs for each Chunk (width of one block). \n"
- + "\n"
- + "Lowest Quality: " + EDhApiMaxHorizontalResolution.CHUNK + "\n"
- + "Highest Quality: " + EDhApiMaxHorizontalResolution.BLOCK)
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiMaxHorizontalResolution.BLOCK)
+ .comment(""
+ + "What is the maximum detail LODs can render at? \n"
+ + "Higher settings will increase memory and GPU usage. \n"
+ + "\n"
+ + EDhApiMaxHorizontalResolution.CHUNK + ": render 1 LOD for each Chunk. \n"
+ + EDhApiMaxHorizontalResolution.HALF_CHUNK + ": render 4 LODs for each Chunk. \n"
+ + EDhApiMaxHorizontalResolution.FOUR_BLOCKS + ": render 16 LODs for each Chunk. \n"
+ + EDhApiMaxHorizontalResolution.TWO_BLOCKS + ": render 64 LODs for each Chunk. \n"
+ + EDhApiMaxHorizontalResolution.BLOCK + ": render 256 LODs for each Chunk (width of one block). \n"
+ + "\n"
+ + "Fastest: " + EDhApiMaxHorizontalResolution.CHUNK + "\n"
+ + "Fanciest: " + EDhApiMaxHorizontalResolution.BLOCK)
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
public static ConfigEntry verticalQuality = new ConfigEntry.Builder()
- .set(EDhApiVerticalQuality.MEDIUM)
- .comment(""
- + "This indicates how well LODs will represent \n"
- + "overhangs, caves, floating islands, etc. \n"
- + "Higher options will make the world more accurate, but"
- + "will increase memory and GPU usage. \n"
- + "\n"
- + "Lowest Quality: " + EDhApiVerticalQuality.HEIGHT_MAP + "\n"
- + "Highest Quality: " + EDhApiVerticalQuality.EXTREME)
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiVerticalQuality.MEDIUM)
+ .comment(""
+ + "This indicates how well LODs will represent \n"
+ + "overhangs, caves, floating islands, etc. \n"
+ + "Higher options will make the world more accurate, but"
+ + "will increase memory and GPU usage. \n"
+ + "\n"
+ + "Lowest Quality: " + EDhApiVerticalQuality.HEIGHT_MAP + "\n"
+ + "Highest Quality: " + EDhApiVerticalQuality.PIXEL_ART)
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer qualitySpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry transparency = new ConfigEntry.Builder()
- .set(EDhApiTransparency.COMPLETE)
- .comment(""
- + "How should LOD transparency be handled. \n"
- + "\n"
- + EDhApiTransparency.COMPLETE + ": LODs will render transparent. \n"
- + EDhApiTransparency.FAKE + ": LODs will be opaque, but shaded to match the blocks underneath. \n"
- + EDhApiTransparency.DISABLED + ": LODs will be opaque. \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
-
- public static ConfigEntry blocksToIgnore = new ConfigEntry.Builder()
- .set(EDhApiBlocksToAvoid.NON_COLLIDING)
- .comment(""
- + "What blocks shouldn't be rendered as LODs? \n"
- + "\n"
- + EDhApiBlocksToAvoid.NONE + ": Represent all blocks in the LODs \n"
- + EDhApiBlocksToAvoid.NON_COLLIDING + ": Only represent solid blocks in the LODs (tall grass, torches, etc. won't count for a LOD's height) \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
-
- public static ConfigEntry tintWithAvoidedBlocks = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "Should the blocks underneath avoided blocks gain the color of the avoided block? \n"
- + "\n"
- + "True: a red flower will tint the grass below it red. \n"
- + "False: skipped blocks will not change color of surface below them. "
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiTransparency.COMPLETE)
+ .comment(""
+ + "How should LOD transparency be handled. \n"
+ + "\n"
+ + EDhApiTransparency.COMPLETE + ": LODs will render transparent. \n"
+ + EDhApiTransparency.DISABLED + ": LODs will be opaque. \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
public static ConfigEntry lodShading = new ConfigEntry.Builder()
- .set(EDhApiLodShading.AUTO)
- .comment(""
- + "How should LODs be shaded? \n"
- + "\n"
- + EDhApiLodShading.AUTO + ": Uses the same side shading as vanilla Minecraft blocks. \n"
- + EDhApiLodShading.ENABLED + ": Simulates Minecraft's block shading for LODs. \n"
- + " Can be used to force LOD shading when using some shaders. \n"
- + EDhApiLodShading.DISABLED + ": All LOD sides will be rendered with the same brightness. \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiLodShading.AUTO)
+ .comment(""
+ + "How should LODs be shaded? \n"
+ + "\n"
+ + EDhApiLodShading.AUTO + ": Uses the same side shading as vanilla Minecraft blocks. \n"
+ + EDhApiLodShading.ENABLED + ": Simulates Minecraft's block shading for LODs. \n"
+ + " Can be used to force LOD shading when using some shaders. \n"
+ + EDhApiLodShading.DISABLED + ": All LOD sides will be rendered with the same brightness. \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
public static ConfigEntry grassSideRendering = new ConfigEntry.Builder()
- .set(EDhApiGrassSideRendering.FADE_TO_DIRT)
- .comment(""
- + "How should the sides and bottom of grass block LODs render? \n"
- + "\n"
- + EDhApiGrassSideRendering.AS_GRASS + ": all sides of dirt LOD's render using the top (green) color. \n"
- + EDhApiGrassSideRendering.FADE_TO_DIRT + ": sides fade from grass to dirt. \n"
- + EDhApiGrassSideRendering.AS_DIRT + ": sides render entirely as dirt. \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiGrassSideRendering.FADE_TO_DIRT)
+ .comment(""
+ + "How should the sides and bottom of grass block LODs render? \n"
+ + "\n"
+ + EDhApiGrassSideRendering.AS_GRASS + ": all sides of dirt LOD's render using the top (green) color. \n"
+ + EDhApiGrassSideRendering.FADE_TO_DIRT + ": sides fade from grass to dirt. \n"
+ + EDhApiGrassSideRendering.AS_DIRT + ": sides render entirely as dirt. \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer fadeSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry ditherDhFade = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true LODs will fade away as you get closer to them. \n"
- + "If false LODs will cut off abruptly at a set distance from the camera. \n"
- + "This setting is affected by the vanilla overdraw prevention config. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If true LODs will fade away as you get closer to them. \n"
+ + "If false LODs will cut off abruptly at a set distance from the camera. \n"
+ + "This setting is affected by the vanilla overdraw prevention config. \n"
+ + "")
+ .build();
public static ConfigEntry vanillaFadeMode = new ConfigEntry.Builder()
- .set(EDhApiMcRenderingFadeMode.DOUBLE_PASS)
- .comment(""
- + "How should vanilla Minecraft fade into Distant Horizons LODs? \n"
- + "\n"
- + EDhApiMcRenderingFadeMode.NONE + ": Fastest, there will be a pronounced border between DH and MC rendering. \n"
- + EDhApiMcRenderingFadeMode.SINGLE_PASS + ": Fades after MC's transparent pass, opaque blocks underwater won't be faded. \n"
- + EDhApiMcRenderingFadeMode.DOUBLE_PASS + ": Slowest, fades after both MC's opaque and transparent passes, provides the smoothest transition. \n"
- + "")
- .build();
+ .set(EDhApiMcRenderingFadeMode.DOUBLE_PASS)
+ .comment(""
+ + "How should vanilla Minecraft fade into Distant Horizons LODs? \n"
+ + "\n"
+ + EDhApiMcRenderingFadeMode.NONE + ": Fastest, there will be a pronounced border between DH and MC rendering. \n"
+ + EDhApiMcRenderingFadeMode.SINGLE_PASS + ": Fades after MC's transparent pass, opaque blocks underwater won't be faded. \n"
+ + EDhApiMcRenderingFadeMode.DOUBLE_PASS + ": Slowest, fades after both MC's opaque and transparent passes, provides the smoothest transition. \n"
+ + "")
+ .build();
public static ConfigEntry dhFadeFarClipPlane = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "Should DH fade out before reaching the far clip plane? \n"
- + "This is helpful to prevent DH clouds from cutting off in the distance. \n"
- + "")
- .build();
-
- public static ConfigEntry brightnessMultiplier = new ConfigEntry.Builder()
- .set(1.0f)
- .comment(""
- + "How bright LOD colors are. \n"
- + "\n"
- + "0 = black \n"
- + "1 = normal \n"
- + "2 = near white")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
-
- public static ConfigEntry saturationMultiplier = new ConfigEntry.Builder()
- .set(1.0f)
- .comment(""
- + "How saturated LOD colors are. \n"
- + "\n"
- + "0 = black and white \n"
- + "1 = normal \n"
- + "2 = very saturated")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(true)
+ .comment(""
+ + "Should DH fade out before reaching the far clip plane? \n"
+ + "This is helpful to prevent DH clouds from cutting off in the distance. \n"
+ + "")
+ .build();
public static ConfigEntry lodBiomeBlending = new ConfigEntry.Builder()
- .setMinDefaultMax(0,3,3) // going higher than 3 causes banding issues for blending across LOD borders and an exponential increase in load times
- .comment(""
- + "This is the same as vanilla Biome Blending settings for Lod area. \n"
- + " Note that anything other than '0' will greatly effect Lod building time. \n"
- + "\n"
- + " '0' equals to Vanilla Biome Blending of '1x1' or 'OFF', \n"
- + " '1' equals to Vanilla Biome Blending of '3x3', \n"
- + " '2' equals to Vanilla Biome Blending of '5x5'...")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .setMinDefaultMax(0, 3, 3) // going higher than 3 causes banding issues for blending across LOD borders and an exponential increase in load times
+ .comment(""
+ + "This is the same as vanilla Biome Blending settings for Lod area. \n"
+ + " Note: anything above '0' will slow down LOD loading time. \n"
+ + "\n"
+ + " '0' equals to Vanilla Biome Blending of '1x1' or 'OFF', \n"
+ + " '1' equals to Vanilla Biome Blending of '3x3', \n"
+ + " '2' equals to Vanilla Biome Blending of '5x5'...")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer multiplierSpacer = new ConfigUISpacer.Builder().build();
+
+ public static ConfigEntry brightnessMultiplier = new ConfigEntry.Builder()
+ .set(1.0f)
+ .comment(""
+ + "How bright LOD colors are. \n"
+ + "\n"
+ + "0 = black \n"
+ + "1 = normal \n"
+ + "2 = near white")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigEntry saturationMultiplier = new ConfigEntry.Builder()
+ .set(1.0f)
+ .comment(""
+ + "How saturated LOD colors are. \n"
+ + "\n"
+ + "0 = black and white \n"
+ + "1 = normal \n"
+ + "2 = very saturated")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
}
public static class GenericRendering
@@ -363,31 +334,31 @@ public class Config
public static ConfigUIComment genericRendererHeader = new ConfigUIComment.Builder().setParentConfigClass(GenericRendering.class).build();
public static ConfigEntry enableGenericRendering = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true non terrain objects will be rendered in DH's terrain. \n"
- + "This includes beacon beams and clouds. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If true non terrain objects will be rendered by DH. \n"
+ + "i.e. beacon beams and clouds. \n"
+ + "")
+ .build();
public static ConfigEntry enableBeaconRendering = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true LOD beacon beams will be rendered. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If true LOD beacon beams will be rendered. \n"
+ + "")
+ .build();
public static ConfigEntry beaconRenderHeight = new ConfigEntry.Builder()
- .setMinDefaultMax(1, 6000, 6_000_000)
- .comment(""
- + "Sets the maximum height at which beacons will render."
- + "This will only affect new beacons coming into LOD render distance."
- + "Beacons currently visible in LOD chunks will not be affected."
- + "")
- .build();
+ .setMinDefaultMax(1, 6000, 6_000_000)
+ .comment(""
+ + "Sets the maximum height beacons will render up to. \n"
+ + "\n"
+ + "Requires a world re-load to take affect. \n"
+ + "")
+ .build();
public static ConfigEntry expandDistantBeacons = new ConfigEntry.Builder()
- .set(true)
+ .set(true)
.comment(""
+ "If true LOD beacon beams will be rendered wider at extreme distances, \n"
+ "making them easier to see. \n"
@@ -396,11 +367,11 @@ public class Config
.build();
public static ConfigEntry enableCloudRendering = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true LOD clouds will be rendered. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If true LOD clouds will be rendered. \n"
+ + "")
+ .build();
public static ConfigEntry dimensionEnabledCloudRenderingCsv = new ConfigEntry.Builder()
.set("minecraft:overworld")
@@ -410,99 +381,100 @@ public class Config
+ "\n"
+ "Example: \"minecraft:overworld,minecraft:the_end\"\n"
+ "\n"
- + "Changes will only be seen when the world is re-loaded.\n"
+ + "Changes require a world re-load.\n"
+ "")
.build();
+
}
public static class Fog
{
private static final Float FOG_RANGE_MIN = 0.0f;
- private static final Float FOG_RANGE_MAX = (float)Math.sqrt(2.0);
+ private static final Float FOG_RANGE_MAX = (float) Math.sqrt(2.0);
public static ConfigUIComment fogHeader = new ConfigUIComment.Builder().setParentConfigClass(Fog.class).build();
public static ConfigEntry enableDhFog = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "Determines if fog is drawn on DH LODs. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "Determines if fog is drawn on DH LODs. \n"
+ + "")
+ .build();
public static ConfigEntry colorMode = new ConfigEntry.Builder()
- .set(EDhApiFogColorMode.USE_WORLD_FOG_COLOR)
- .comment(""
- + "What color should fog use? \n"
- + "\n"
- + EDhApiFogColorMode.USE_WORLD_FOG_COLOR + ": Use the world's fog color. \n"
- + EDhApiFogColorMode.USE_SKY_COLOR + ": Use the sky's color.")
- .build();
+ .set(EDhApiFogColorMode.USE_WORLD_FOG_COLOR)
+ .comment(""
+ + "What color should fog use? \n"
+ + "\n"
+ + EDhApiFogColorMode.USE_WORLD_FOG_COLOR + ": Use the world's fog color. \n"
+ + EDhApiFogColorMode.USE_SKY_COLOR + ": Use the sky's color.")
+ .build();
public static ConfigEntry enableVanillaFog = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "Should Minecraft's fog render? \n"
- + "Note: Other mods may conflict with this setting. \n"
- + "")
- .build();
+ .set(false)
+ .comment(""
+ + "Should Minecraft's fog render? \n"
+ + "Note: Other mods may conflict with this setting. \n"
+ + "")
+ .build();
public static ConfigEntry farFogStart = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 0.4f, FOG_RANGE_MAX)
- .comment(""
- + "At what distance should the far fog start? \n"
- + "\n"
- + "0.0: Fog starts at the player's position. \n"
- + "1.0: Fog starts at the closest edge of the vanilla render distance. \n"
- + "1.414: Fog starts at the corner of the vanilla render distance.")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 0.4f, FOG_RANGE_MAX)
+ .comment(""
+ + "At what distance should the far fog start? \n"
+ + "\n"
+ + "0.0: Fog starts at the player's position. \n"
+ + "1.0: Fog starts at the closest edge of the vanilla render distance. \n"
+ + "1.414: Fog starts at the corner of the vanilla render distance.")
+ .build();
public static ConfigEntry farFogEnd = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, FOG_RANGE_MAX)
- .comment(""
- + "Where should the far fog end? \n"
- + "\n"
- + "0.0: Fog ends at player's position.\n"
- + "1.0: Fog ends at the closest edge of the vanilla render distance. \n"
- + "1.414: Fog ends at the corner of the vanilla render distance.")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, FOG_RANGE_MAX)
+ .comment(""
+ + "Where should the far fog end? \n"
+ + "\n"
+ + "0.0: Fog ends at player's position.\n"
+ + "1.0: Fog ends at the closest edge of the vanilla render distance. \n"
+ + "1.414: Fog ends at the corner of the vanilla render distance.")
+ .build();
public static ConfigEntry farFogMin = new ConfigEntry.Builder()
- .setMinDefaultMax(-5.0f, 0.0f, FOG_RANGE_MAX)
- .comment(""
- + "What is the minimum fog thickness? \n"
- + "\n"
- + "0.0: No fog. \n"
- + "1.0: Fully opaque fog.")
- .build();
+ .setMinDefaultMax(-5.0f, 0.0f, FOG_RANGE_MAX)
+ .comment(""
+ + "What is the minimum fog thickness? \n"
+ + "\n"
+ + "0.0: No fog. \n"
+ + "1.0: Fully opaque fog.")
+ .build();
public static ConfigEntry farFogMax = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, 5.0f)
- .comment(""
- + "What is the maximum fog thickness? \n"
- + "\n"
- + "0.0: No fog. \n"
- + "1.0: Fully opaque fog.")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, 5.0f)
+ .comment(""
+ + "What is the maximum fog thickness? \n"
+ + "\n"
+ + "0.0: No fog. \n"
+ + "1.0: Fully opaque fog.")
+ .build();
public static ConfigEntry farFogFalloff = new ConfigEntry.Builder()
- .set(EDhApiFogFalloff.EXPONENTIAL_SQUARED)
- .comment(""
- + "How should the fog thickness should be calculated? \n"
- + "\n"
- + EDhApiFogFalloff.LINEAR + ": Linear based on distance (will ignore 'density')\n"
- + EDhApiFogFalloff.EXPONENTIAL + ": 1/(e^(distance*density)) \n"
- + EDhApiFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((distance*density)^2)")
- .build();
+ .set(EDhApiFogFalloff.EXPONENTIAL_SQUARED)
+ .comment(""
+ + "How should the fog thickness should be calculated? \n"
+ + "\n"
+ + EDhApiFogFalloff.LINEAR + ": Linear based on distance (will ignore 'density')\n"
+ + EDhApiFogFalloff.EXPONENTIAL + ": 1/(e^(distance*density)) \n"
+ + EDhApiFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((distance*density)^2)")
+ .build();
public static ConfigEntry farFogDensity = new ConfigEntry.Builder()
- .setMinDefaultMax(0.01f, 2.5f, 50.0f)
- .comment(""
- + "Used in conjunction with the Fog Falloff.")
- .build();
+ .setMinDefaultMax(0.01f, 2.5f, 50.0f)
+ .comment(""
+ + "Used in conjunction with the Fog Falloff.")
+ .build();
public static ConfigCategory heightFog = new ConfigCategory.Builder().set(HeightFog.class).build();
@@ -513,93 +485,93 @@ public class Config
public static ConfigUIComment heightFogHeader = new ConfigUIComment.Builder().setParentConfigClass(HeightFog.class).build();
public static ConfigEntry heightFogMixMode = new ConfigEntry.Builder()
- .set(EDhApiHeightFogMixMode.SPHERICAL)
- .comment(""
- + "How should height effect the fog thickness? \n"
- + "Note: height fog is combined with the other fog settings. \n"
- + "\n"
- + EDhApiHeightFogMixMode.SPHERICAL + ": Fog is calculated based on camera distance. \n"
- + EDhApiHeightFogMixMode.CYLINDRICAL + ": Ignore height, fog is calculated based on horizontal distance. \n"
- + "\n"
- + EDhApiHeightFogMixMode.MAX + ": max(heightFog, farFog) \n"
- + EDhApiHeightFogMixMode.ADDITION + ": heightFog + farFog \n"
- + EDhApiHeightFogMixMode.MULTIPLY + ": heightFog * farFog \n"
- + EDhApiHeightFogMixMode.INVERSE_MULTIPLY + ": 1 - (1-heightFog) * (1-farFog) \n"
- + EDhApiHeightFogMixMode.LIMITED_ADDITION + ": farFog + max(farFog, heightFog) \n"
- + EDhApiHeightFogMixMode.MULTIPLY_ADDITION + ": farFog + farFog * heightFog \n"
- + EDhApiHeightFogMixMode.INVERSE_MULTIPLY_ADDITION + ": farFog + 1 - (1-heightFog) * (1-farFog) \n"
- + EDhApiHeightFogMixMode.AVERAGE + ": farFog*0.5 + heightFog*0.5 \n"
- + "\n")
- .build();
+ .set(EDhApiHeightFogMixMode.SPHERICAL)
+ .comment(""
+ + "How should height effect the fog thickness? \n"
+ + "Note: height fog is combined with the other fog settings. \n"
+ + "\n"
+ + EDhApiHeightFogMixMode.SPHERICAL + ": Fog is calculated based on camera distance. \n"
+ + EDhApiHeightFogMixMode.CYLINDRICAL + ": Ignore height, fog is calculated based on horizontal distance. \n"
+ + "\n"
+ + EDhApiHeightFogMixMode.MAX + ": max(heightFog, farFog) \n"
+ + EDhApiHeightFogMixMode.ADDITION + ": heightFog + farFog \n"
+ + EDhApiHeightFogMixMode.MULTIPLY + ": heightFog * farFog \n"
+ + EDhApiHeightFogMixMode.INVERSE_MULTIPLY + ": 1 - (1-heightFog) * (1-farFog) \n"
+ + EDhApiHeightFogMixMode.LIMITED_ADDITION + ": farFog + max(farFog, heightFog) \n"
+ + EDhApiHeightFogMixMode.MULTIPLY_ADDITION + ": farFog + farFog * heightFog \n"
+ + EDhApiHeightFogMixMode.INVERSE_MULTIPLY_ADDITION + ": farFog + 1 - (1-heightFog) * (1-farFog) \n"
+ + EDhApiHeightFogMixMode.AVERAGE + ": farFog*0.5 + heightFog*0.5 \n"
+ + "\n")
+ .build();
public static ConfigEntry heightFogDirection = new ConfigEntry.Builder()
- .set(EDhApiHeightFogDirection.BELOW_SET_HEIGHT)
- .comment(""
- + "Where should the height fog start? \n"
- + "\n"
- + EDhApiHeightFogDirection.ABOVE_CAMERA + ": Height fog starts at the camera and goes towards the sky \n"
- + EDhApiHeightFogDirection.BELOW_CAMERA + ": Height fog starts at the camera and goes towards the void \n"
- + EDhApiHeightFogDirection.ABOVE_AND_BELOW_CAMERA + ": Height fog starts from the camera to goes towards both the sky and void \n"
- + EDhApiHeightFogDirection.ABOVE_SET_HEIGHT + ": Height fog starts from a set height and goes towards the sky \n"
- + EDhApiHeightFogDirection.BELOW_SET_HEIGHT + ": Height fog starts from a set height and goes towards the void \n"
- + EDhApiHeightFogDirection.ABOVE_AND_BELOW_SET_HEIGHT + ": Height fog starts from a set height and goes towards both the sky and void")
- .build();
+ .set(EDhApiHeightFogDirection.BELOW_SET_HEIGHT)
+ .comment(""
+ + "Where should the height fog start? \n"
+ + "\n"
+ + EDhApiHeightFogDirection.ABOVE_CAMERA + ": Height fog starts at the camera and goes towards the sky \n"
+ + EDhApiHeightFogDirection.BELOW_CAMERA + ": Height fog starts at the camera and goes towards the void \n"
+ + EDhApiHeightFogDirection.ABOVE_AND_BELOW_CAMERA + ": Height fog starts from the camera to goes towards both the sky and void \n"
+ + EDhApiHeightFogDirection.ABOVE_SET_HEIGHT + ": Height fog starts from a set height and goes towards the sky \n"
+ + EDhApiHeightFogDirection.BELOW_SET_HEIGHT + ": Height fog starts from a set height and goes towards the void \n"
+ + EDhApiHeightFogDirection.ABOVE_AND_BELOW_SET_HEIGHT + ": Height fog starts from a set height and goes towards both the sky and void")
+ .build();
public static ConfigEntry heightFogBaseHeight = new ConfigEntry.Builder()
- .setMinDefaultMax(-3_000_000.0f, 80.0f, 3_000_000.0f)
- .comment("If the height fog is calculated around a set height, what is that height position?")
- .build();
+ .setMinDefaultMax(-3_000_000.0f, 80.0f, 3_000_000.0f)
+ .comment("If the height fog is calculated around a set height, what is that height position?")
+ .build();
public static ConfigEntry heightFogStart = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 0.0f, FOG_RANGE_MAX)
- .comment(""
- + "Should the start of the height fog be offset? \n"
- + "\n"
- + "0.0: Fog start with no offset.\n"
- + "1.0: Fog start with offset of the entire world's height. (Includes depth)")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 0.0f, FOG_RANGE_MAX)
+ .comment(""
+ + "Should the start of the height fog be offset? \n"
+ + "\n"
+ + "0.0: Fog start with no offset.\n"
+ + "1.0: Fog start with offset of the entire world's height. (Includes depth)")
+ .build();
public static ConfigEntry heightFogEnd = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 0.6f, FOG_RANGE_MAX)
- .comment(""
- + "Should the end of the height fog be offset? \n"
- + "\n"
- + "0.0: Fog end with no offset.\n"
- + "1.0: Fog end with offset of the entire world's height. (Include depth)")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 0.6f, FOG_RANGE_MAX)
+ .comment(""
+ + "Should the end of the height fog be offset? \n"
+ + "\n"
+ + "0.0: Fog end with no offset.\n"
+ + "1.0: Fog end with offset of the entire world's height. (Include depth)")
+ .build();
public static ConfigEntry heightFogMin = new ConfigEntry.Builder()
- .setMinDefaultMax(0.0f, 0.0f, FOG_RANGE_MAX)
- .comment(""
- + "What is the minimum fog thickness? \n"
- + "\n"
- + "0.0: No fog. \n"
- + "1.0: Fully opaque fog.")
- .build();
+ .setMinDefaultMax(0.0f, 0.0f, FOG_RANGE_MAX)
+ .comment(""
+ + "What is the minimum fog thickness? \n"
+ + "\n"
+ + "0.0: No fog. \n"
+ + "1.0: Fully opaque fog.")
+ .build();
public static ConfigEntry heightFogMax = new ConfigEntry.Builder()
- .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, 5.0f)
- .comment(""
- + "What is the maximum fog thickness? \n"
- + "\n"
- + "0.0: No fog. \n"
- + "1.0: Fully opaque fog.")
- .build();
+ .setMinDefaultMax(FOG_RANGE_MIN, 1.0f, 5.0f)
+ .comment(""
+ + "What is the maximum fog thickness? \n"
+ + "\n"
+ + "0.0: No fog. \n"
+ + "1.0: Fully opaque fog.")
+ .build();
public static ConfigEntry heightFogFalloff = new ConfigEntry.Builder()
- .set(EDhApiFogFalloff.EXPONENTIAL_SQUARED)
- .comment(""
- + "How should the height fog thickness should be calculated? \n"
- + "\n"
- + EDhApiFogFalloff.LINEAR + ": Linear based on height (will ignore 'density')\n"
- + EDhApiFogFalloff.EXPONENTIAL + ": 1/(e^(height*density)) \n"
- + EDhApiFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((height*density)^2)")
- .build();
+ .set(EDhApiFogFalloff.EXPONENTIAL_SQUARED)
+ .comment(""
+ + "How should the height fog thickness should be calculated? \n"
+ + "\n"
+ + EDhApiFogFalloff.LINEAR + ": Linear based on height (will ignore 'density')\n"
+ + EDhApiFogFalloff.EXPONENTIAL + ": 1/(e^(height*density)) \n"
+ + EDhApiFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((height*density)^2)")
+ .build();
public static ConfigEntry heightFogDensity = new ConfigEntry.Builder()
- .setMinDefaultMax(0.01f, 20.0f, 50.0f)
- .comment("What is the height fog's density?")
- .build();
+ .setMinDefaultMax(0.01f, 20.0f, 50.0f)
+ .comment("What is the height fog's density?")
+ .build();
}
@@ -610,34 +582,34 @@ public class Config
public static ConfigUIComment noiseTextureHeader = new ConfigUIComment.Builder().setParentConfigClass(NoiseTexture.class).build();
public static ConfigEntry enableNoiseTexture = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "Should a noise texture be applied to LODs? \n"
- + "\n"
- + "This is done to simulate textures and make the LODs appear more detailed. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "Should a noise texture be applied to LODs? \n"
+ + "\n"
+ + "This is done to simulate textures and make the LODs appear more detailed. \n"
+ + "")
+ .build();
public static ConfigEntry noiseSteps = new ConfigEntry.Builder()
- .setMinDefaultMax(1, 4, null)
- .comment(""
- + "How many steps of noise should be applied to LODs?"
- + "")
- .build();
+ .setMinDefaultMax(1, 4, null)
+ .comment(""
+ + "How many steps of noise should be applied to LODs?"
+ + "")
+ .build();
public static ConfigEntry noiseIntensity = new ConfigEntry.Builder()
- .setMinDefaultMax(0f, 0.05f, 1f)
- .comment(""
- + "How intense should the noise should be?")
- .build();
+ .setMinDefaultMax(0f, 0.05f, 1f)
+ .comment(""
+ + "How intense should the noise should be?")
+ .build();
public static ConfigEntry noiseDropoff = new ConfigEntry.Builder()
- .setMinDefaultMax(0, 1024, null)
- .comment(""
- + "Defines how far should the noise texture render before it fades away. (in blocks) \n"
- + "Set to 0 to disable noise from fading away \n"
- + "")
- .build();
+ .setMinDefaultMax(0, 1024, null)
+ .comment(""
+ + "Defines how far should the noise texture render before it fades away. (in blocks) \n"
+ + "Set to 0 to disable noise from fading away \n"
+ + "")
+ .build();
}
@@ -646,20 +618,20 @@ public class Config
public static ConfigUIComment cullingHeader = new ConfigUIComment.Builder().setParentConfigClass(Culling.class).build();
public static ConfigEntry overdrawPrevention = new ConfigEntry.Builder()
- .setMinDefaultMax(-1.0f, -1.0f, 1.0f)
- .comment(""
- + "Determines how far from the camera Distant Horizons will start rendering. \n"
- + "Measured as a percentage of the vanilla render distance.\n"
- + "\n"
- + "-1 = auto, overdraw will change based on the vanilla render distance.\n"
- + "\n"
- + "Higher values will prevent LODs from rendering behind vanilla blocks at a higher distance,\n"
- + "but may cause holes in the world. \n"
- + "Holes are most likely to appear when flying through unloaded terrain. \n"
- + "\n"
- + "Increasing the vanilla render distance increases the effectiveness of this setting."
- + "")
- .build();
+ .setMinDefaultMax(-1.0f, -1.0f, 1.0f)
+ .comment(""
+ + "Determines how far from the camera Distant Horizons will start rendering. \n"
+ + "Measured as a percentage of the vanilla render distance.\n"
+ + "\n"
+ + "-1 = auto, overdraw will change based on the vanilla render distance.\n"
+ + "\n"
+ + "Higher values will prevent LODs from rendering behind vanilla blocks at a higher distance,\n"
+ + "but may cause holes in the world. \n"
+ + "Holes are most likely to appear when flying through unloaded terrain. \n"
+ + "\n"
+ + "Increasing the vanilla render distance increases the effectiveness of this setting."
+ + "")
+ .build();
public static ConfigEntry reduceOverdrawWithFastMovement = new ConfigEntry.Builder()
.set(true)
@@ -672,89 +644,93 @@ public class Config
+ "")
.build();
+ public static ConfigUISpacer speedSpacer = new ConfigUISpacer.Builder().build();
+
public static ConfigEntry enableCaveCulling = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If enabled caves won't be rendered. \n"
- + "\n"
- + " Note: for some world types this can cause \n"
- + " overhangs or walls for floating objects. \n"
- + " Tweaking the caveCullingHeight, can resolve some \n"
- + " of those issues. \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(true)
+ .comment(""
+ + "If enabled caves won't be rendered. \n"
+ + "\n"
+ + " Note: for some world types this can cause \n"
+ + " overhangs or walls for floating objects. \n"
+ + " Tweaking the caveCullingHeight, can resolve some \n"
+ + " of those issues. \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
public static ConfigEntry caveCullingHeight = new ConfigEntry.Builder()
- .setMinDefaultMax(-4096, 60, 4096)
- .comment(""
- + "At what Y value should cave culling start? \n"
- + "Lower this value if you get walls for areas with 0 light.")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .setMinDefaultMax(-4096, 60, 4096)
+ .comment(""
+ + "At what Y value should cave culling start? \n"
+ + "Lower this value if you get walls for areas with 0 light.")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer caveCullingSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry disableBeaconDistanceCulling = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If false all beacons near the camera won't be drawn to prevent vanilla overdraw. \n"
- + "If true all beacons will be rendered. \n"
- + "\n"
- + "Generally this should be left as true. It's main purpose is for debugging\n"
- + "beacon updating/rendering.\n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If false all beacons near the camera won't be drawn to prevent vanilla overdraw. \n"
+ + "If true all beacons will be rendered. \n"
+ + "\n"
+ + "Generally this should be left as true. It's main purpose is for debugging\n"
+ + "beacon updating/rendering.\n"
+ + "")
+ .build();
public static ConfigEntry disableFrustumCulling = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If true LODs outside the player's camera \n"
- + "aren't drawn, increasing GPU performance. \n"
- + "\n"
- + "If false all LODs are drawn, even those behind \n"
- + "the player's camera, decreasing GPU performance. \n"
- + "\n"
- + "Disable this if you see LODs disappearing at the corners of your vision.")
- .build();
+ .set(false)
+ .comment(""
+ + "If true LODs outside the player's camera \n"
+ + "aren't drawn, increasing GPU performance. \n"
+ + "\n"
+ + "If false all LODs are drawn, even those behind \n"
+ + "the player's camera, decreasing GPU performance. \n"
+ + "\n"
+ + "Disable this if you see LODs disappearing at the corners of your vision.")
+ .build();
public static ConfigEntry disableShadowPassFrustumCulling = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "Identical to the other frustum culling option\n"
- + "only used when a shader mod is present using the DH API\n"
- + "and the shadow pass is being rendered.\n"
- + "\n"
- + "Disable this if shadows render incorrectly.")
- .build();
+ .set(false)
+ .comment(""
+ + "Identical to the other frustum culling option\n"
+ + "only used when a shader mod is present using the DH API\n"
+ + "and the shadow pass is being rendered.\n"
+ + "\n"
+ + "Disable this if shadows render incorrectly.")
+ .build();
public static ConfigUISpacer ignoreCsvStartSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry ignoredRenderBlockCsv = new ConfigEntry.Builder()
- .set("minecraft:barrier,minecraft:structure_void,minecraft:light,minecraft:tripwire,minecraft:brown_mushroom")
- .setAppearance(EConfigEntryAppearance.ALL)
+ .set("minecraft:barrier,minecraft:structure_void,minecraft:light,minecraft:tripwire,minecraft:brown_mushroom")
+ .setAppearance(EConfigEntryAppearance.ALL)
.addListener(RenderBlockCacheCsvHandler.INSTANCE)
- .comment(""
- + "A comma separated list of block resource locations that won't be rendered by DH. \n"
- + "Air is always included in this list. \n"
- + "\n"
- + "Note:\n"
- + "If you see gaps, or holes you may have to change\n"
- + "worldCompression to ["+EDhApiWorldCompressionMode.MERGE_SAME_BLOCKS+"] and re-generate the LODs.\n"
- + "")
- .build();
+ .comment(""
+ + "A comma separated list of block resource locations that won't be rendered by DH. \n"
+ + "Air is always included in this list. \n"
+ + "\n"
+ + "Note:\n"
+ + "If you see gaps, or holes you may have to change\n"
+ + "worldCompression to [" + EDhApiWorldCompressionMode.MERGE_SAME_BLOCKS + "] and re-generate the LODs.\n"
+ + "")
+ .build();
public static ConfigEntry ignoredRenderCaveBlockCsv = new ConfigEntry.Builder()
- .set("")
- .setAppearance(EConfigEntryAppearance.ALL)
+ .set("")
+ .setAppearance(EConfigEntryAppearance.ALL)
.addListener(RenderBlockCacheCsvHandler.INSTANCE)
- .comment(""
- + "A comma separated list of block resource locations that shouldn't be rendered \n"
- + "if they are in a 0 sky light underground area. \n"
- + "Air is always included in this list. \n"
- + "\n"
- + "Defaults to an empty list since most cave blocks will be automatically ignored due to being: \n"
- + "transparent, non-solid, or liquids, but new blocks can be added here if needed.\n"
- + "")
- .build();
+ .comment(""
+ + "A comma separated list of block resource locations that shouldn't be rendered \n"
+ + "if they are in a 0 sky light underground area. \n"
+ + "Air is always included in this list. \n"
+ + "\n"
+ + "Defaults to an empty list since most cave blocks will be automatically ignored due to being: \n"
+ + "transparent, non-solid, or liquids, but new blocks can be added here if needed.\n"
+ + "")
+ .build();
public static ConfigEntry waterSubSurfaceBlockReplacementCsv = new ConfigEntry.Builder()
.set("minecraft:kelp,minecraft:tall_seagrass,minecraft:seagrass")
@@ -776,6 +752,29 @@ public class Config
+ "")
.build();
+ public static ConfigUISpacer blockSpacer = new ConfigUISpacer.Builder().build();
+
+ public static ConfigEntry blocksToIgnore = new ConfigEntry.Builder()
+ .set(EDhApiBlocksToAvoid.NON_COLLIDING)
+ .comment(""
+ + "Defines what blocks should be rendered as LODs. \n"
+ + "\n"
+ + EDhApiBlocksToAvoid.NONE + ": Include all blocks in the LODs \n"
+ + EDhApiBlocksToAvoid.NON_COLLIDING + ": Only render solid blocks in the LODs (tall grass, torches, etc. will be ignored) \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+ public static ConfigEntry tintWithAvoidedBlocks = new ConfigEntry.Builder()
+ .set(true)
+ .comment(""
+ + "Should the blocks underneath avoided blocks gain the color of the avoided block? \n"
+ + "\n"
+ + "True: a red flower will tint the grass below it red. \n"
+ + "False: skipped blocks will not change color of surface below them. "
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
}
public static class Experimental
@@ -783,21 +782,21 @@ public class Config
public static ConfigUIComment experimentalHeader = new ConfigUIComment.Builder().setParentConfigClass(Experimental.class).build();
public static ConfigEntry earthCurveRatio = new ConfigEntry.Builder()
- .setMinDefaultMax(-5000, 0, 5000)
- .comment(""
- + "This is the earth size ratio when applying the curvature shader effect. \n"
- + "Note: Enabling this feature may cause rendering bugs. \n"
- + "\n"
- + "0 = flat/disabled \n"
- + "1 = 1 to 1 (6,371,000 blocks) \n"
- + "100 = 1 to 100 (63,710 blocks) \n"
- + "10000 = 1 to 10000 (637.1 blocks) \n"
- + "\n"
- + "Note: Due to current limitations, the min value is ["+WorldCurvatureConfigEventHandler.MIN_VALID_CURVE_VALUE+"] \n"
- + "and the max value is 5000. Any values outside this range \n"
- + "will be set to 0 (disabled).")
- .addListener(WorldCurvatureConfigEventHandler.INSTANCE)
- .build();
+ .setMinDefaultMax(-5000, 0, 5000)
+ .comment(""
+ + "This is the earth size ratio when applying the curvature shader effect. \n"
+ + "Note: Enabling this feature may cause rendering bugs. \n"
+ + "\n"
+ + "0 = flat/disabled \n"
+ + "1 = 1 to 1 (6,371,000 blocks) \n"
+ + "100 = 1 to 100 (63,710 blocks) \n"
+ + "10000 = 1 to 10000 (637.1 blocks) \n"
+ + "\n"
+ + "Note: Due to current limitations, the min value is [" + WorldCurvatureConfigEventHandler.MIN_VALID_CURVE_VALUE + "] \n"
+ + "and the max value is 5000. Any values outside this range \n"
+ + "will be set to 0 (disabled).")
+ .addListener(WorldCurvatureConfigEventHandler.INSTANCE)
+ .build();
public static ConfigEntry ignoredDimensionCsv = new ConfigEntry.Builder()
.set("")
@@ -814,7 +813,7 @@ public class Config
.build();
public static ConfigEntry renderingApi = new ConfigEntry.Builder()
- .set(EDhApiRenderApi.AUTO)
+ .set(EDhApiRenderApi.AUTO)
.comment(""
+ "Requires a restart to change. \n"
+ " \n"
@@ -835,28 +834,29 @@ public class Config
public static ConfigUIComment autoUpdaterHeader = new ConfigUIComment.Builder().setParentConfigClass(AutoUpdater.class).build();
public static ConfigEntry enableAutoUpdater = new ConfigEntry.Builder()
- .set(!isRunningInDevEnvironment())
- .comment(""
- + "Automatically check for updates on game launch? \n"
- + "")
- .build();
+ .set(!isRunningInDevEnvironment())
+ .comment(""
+ + "Automatically check for updates on game launch? \n"
+ + "")
+ .build();
public static ConfigEntry enableSilentUpdates = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "Should Distant Horizons silently, automatically download and install new versions? \n"
- + "This setting is force disabled on dedicated servers for stability reasons. \n"
- + "")
- .build();
+ .set(false)
+ .comment(""
+ + "Should Distant Horizons silently, automatically download and install new versions? \n"
+ + "This setting is force disabled on dedicated servers for stability reasons. \n"
+ + "")
+ .build();
public static ConfigEntry updateBranch = new ConfigEntry.Builder()
- .set(EDhApiUpdateBranch.AUTO)
- .comment(""
- + "If DH should use the nightly (provided by Gitlab), or stable (provided by Modrinth) build. \n"
- + "If ["+EDhApiUpdateBranch.AUTO+"] is selected DH will update to new stable releases if the current jar is a stable jar \n"
- + "and will update to new nightly builds if the current jar is a nightly jar (IE the version number ends in '-dev')."
- + "")
- .build();
+ .set(EDhApiUpdateBranch.AUTO)
+ .comment(""
+ + "If DH should use the nightly (provided by Gitlab), or stable (provided by Modrinth) build. \n"
+ + "If [" + EDhApiUpdateBranch.AUTO + "] is selected DH will update to new stable releases if the current jar is a stable jar \n"
+ + "and will update to new nightly builds if the current jar is a nightly jar (IE the version number ends in '-dev')."
+ + "")
+ .build();
+
}
public static class Multiplayer
@@ -864,16 +864,16 @@ public class Config
public static ConfigUIComment multiplayerHeader = new ConfigUIComment.Builder().setParentConfigClass(Multiplayer.class).build();
public static ConfigEntry serverFolderNameMode = new ConfigEntry.Builder()
- .set(EDhApiServerFolderNameMode.NAME_ONLY)
- .comment(""
- + "How should multiplayer save folders should be named? \n"
- + "\n"
- + EDhApiServerFolderNameMode.NAME_ONLY + ": Example: \"Minecraft Server\" \n"
- + EDhApiServerFolderNameMode.IP_ONLY + ": Example: \"192.168.1.40\" \n"
- + EDhApiServerFolderNameMode.NAME_IP + ": Example: \"Minecraft Server IP 192.168.1.40\" \n"
- + EDhApiServerFolderNameMode.NAME_IP_PORT + ": Example: \"Minecraft Server IP 192.168.1.40:25565\""
- + EDhApiServerFolderNameMode.NAME_IP_PORT_MC_VERSION + ": Example: \"Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5\"")
- .build();
+ .set(EDhApiServerFolderNameMode.NAME_ONLY)
+ .comment(""
+ + "How should multiplayer save folders should be named? \n"
+ + "\n"
+ + EDhApiServerFolderNameMode.NAME_ONLY + ": Example: \"Minecraft Server\" \n"
+ + EDhApiServerFolderNameMode.IP_ONLY + ": Example: \"192.168.1.40\" \n"
+ + EDhApiServerFolderNameMode.NAME_IP + ": Example: \"Minecraft Server IP 192.168.1.40\" \n"
+ + EDhApiServerFolderNameMode.NAME_IP_PORT + ": Example: \"Minecraft Server IP 192.168.1.40:25565\""
+ + EDhApiServerFolderNameMode.NAME_IP_PORT_MC_VERSION + ": Example: \"Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5\"")
+ .build();
}
@@ -882,27 +882,29 @@ public class Config
public static ConfigUIComment debuggingHeader = new ConfigUIComment.Builder().setParentConfigClass(Debugging.class).build();
public static ConfigEntry rendererMode = new ConfigEntry.Builder()
- .set(EDhApiRendererMode.DEFAULT)
- .comment(""
- + "What renderer is active? \n"
- + "\n"
- + EDhApiRendererMode.DEFAULT + ": Default lod renderer \n"
- + EDhApiRendererMode.DEBUG_TRIANGLE + ": Debug testing renderer \n"
- + EDhApiRendererMode.DISABLED + ": Disable rendering")
- .build();
+ .set(EDhApiRendererMode.DEFAULT)
+ .comment(""
+ + "What renderer is active? \n"
+ + "\n"
+ + EDhApiRendererMode.DEFAULT + ": Default lod renderer \n"
+ + EDhApiRendererMode.DEBUG_TRIANGLE + ": Debug testing renderer \n"
+ + EDhApiRendererMode.DISABLED + ": Disable rendering")
+ .build();
public static ConfigEntry debugRenderingColors = new ConfigEntry.Builder()
- .set(EDhApiDebugRendering.OFF)
- .comment(""
- + "Should specialized colors/rendering modes be used? \n"
- + "\n"
- + EDhApiDebugRendering.OFF + ": LODs will be drawn with their normal colors. \n"
- + EDhApiDebugRendering.SHOW_DETAIL + ": LODs' color will be based on their detail level. \n"
- + EDhApiDebugRendering.SHOW_BLOCK_MATERIAL + ": LODs' color will be based on their material. \n"
- + EDhApiDebugRendering.SHOW_OVERLAPPING_QUADS + ": LODs will be drawn with total white, but overlapping quads will be drawn with red. \n"
- + "")
- .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
- .build();
+ .set(EDhApiDebugRendering.OFF)
+ .comment(""
+ + "Should specialized colors/rendering modes be used? \n"
+ + "\n"
+ + EDhApiDebugRendering.OFF + ": LODs will be drawn with their normal colors. \n"
+ + EDhApiDebugRendering.SHOW_DETAIL + ": LODs' color will be based on their detail level. \n"
+ + EDhApiDebugRendering.SHOW_BLOCK_MATERIAL + ": LODs' color will be based on their material. \n"
+ + EDhApiDebugRendering.SHOW_OVERLAPPING_QUADS + ": LODs will be drawn with total white, but overlapping quads will be drawn with red. \n"
+ + "")
+ .addListener(ReloadLodsConfigEventHandler.DELAYED_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer debugRenderingSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry enableWhiteWorld = new ConfigEntry.Builder()
.set(false)
@@ -912,21 +914,31 @@ public class Config
.build();
public static ConfigEntry lodOnlyMode = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If enabled this will disable (most) vanilla Minecraft rendering. \n"
- + "\n"
- + "NOTE: Do not report any issues when this mode is on! \n"
- + " This setting is only for fun and debugging. \n"
- + " Mod compatibility is not guaranteed.")
- .build();
+ .set(false)
+ .comment(""
+ + "If enabled this will disable (most) vanilla Minecraft rendering. \n"
+ + "\n"
+ + "NOTE: Do not report any issues when this mode is on! \n"
+ + " This setting is only for fun and debugging. \n"
+ + " Mod compatibility is not guaranteed.")
+ .build();
public static ConfigEntry renderWireframe = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If enabled the LODs will render as wireframe."
- + "")
- .build();
+ .set(false)
+ .comment(""
+ + "If enabled the LODs will render as wireframe."
+ + "")
+ .build();
+
+ public static ConfigEntry showOverlappingQuadErrors = new ConfigEntry.Builder()
+ .set(false)
+ .comment(""
+ + "If true overlapping quads will be rendered as bright red for easy identification. \n"
+ + "If false the quads will be rendered normally. \n"
+ + "")
+ .build();
+
+ public static ConfigUISpacer miscSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry enableDebugKeybindings = new ConfigEntry.Builder()
.set(false)
@@ -938,28 +950,24 @@ public class Config
+ "")
.build();
- public static ConfigEntry showOverlappingQuadErrors = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If true overlapping quads will be rendered as bright red for easy identification. \n"
- + "If false the quads will be rendered normally. \n"
- + "")
- .build();
-
public static ConfigEntry logBufferGarbageCollection = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If true OpenGL Buffer garbage collection will be logged \n"
- + "this also includes the number of live buffers. \n"
- + "")
- .build();
+ .set(false)
+ .comment(""
+ + "If true OpenGL Buffer garbage collection will be logged \n"
+ + "this also includes the number of live buffers. \n"
+ + "")
+ .build();
+
+ public static ConfigUISpacer unsafeSpacer = new ConfigUISpacer.Builder().build();
// Note: This will reset on game restart, and should have a warning on the tooltip
public static ConfigEntry allowUnsafeValues = new ConfigEntry.Builder()
- .set(false)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(UnsafeValuesConfigListener.INSTANCE)
- .build();
+ .set(false)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(UnsafeValuesConfigListener.INSTANCE)
+ .build();
+
+ public static ConfigUISpacer categorySpacer = new ConfigUISpacer.Builder().build();
public static ConfigCategory debugWireframe = new ConfigCategory.Builder().set(DebugWireframe.class).build();
public static ConfigCategory openGl = new ConfigCategory.Builder().set(OpenGl.class).build();
@@ -975,40 +983,42 @@ public class Config
public static ConfigUIComment debugWireframeHeader = new ConfigUIComment.Builder().setParentConfigClass(DebugWireframe.class).build();
public static ConfigEntry enableRendering = new ConfigEntry.Builder()
- .set(false)
- .comment(""
- + "If enabled, various wireframes for debugging internal functions will be drawn. \n"
- + "\n"
- + "NOTE: There WILL be performance hit! \n"
- + " Additionally, only stuff that's loaded after you enable this \n"
- + " will render their debug wireframes. \n"
- + "")
- .build();
+ .set(false)
+ .comment(""
+ + "If enabled, various wireframes for debugging internal functions will be drawn. \n"
+ + "\n"
+ + "NOTE: There WILL be performance hit! \n"
+ + " Additionally, only stuff that's loaded after you enable this \n"
+ + " will render their debug wireframes. \n"
+ + "")
+ .build();
+
+ public static ConfigUISpacer wireframeOptionSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry showWorldGenQueue = new ConfigEntry.Builder()
- .set(false)
- .comment("Render queued world gen tasks?")
- .build();
+ .set(false)
+ .comment("Render queued world gen tasks?")
+ .build();
public static ConfigEntry showNetworkSyncOnLoadQueue = new ConfigEntry.Builder()
- .set(false)
- .comment("Render queued network sync on load tasks?")
- .build();
+ .set(false)
+ .comment("Render queued network sync on load tasks?")
+ .build();
public static ConfigEntry showRenderSectionStatus = new ConfigEntry.Builder()
- .set(false)
- .comment("Render LOD section status?")
- .build();
+ .set(false)
+ .comment("Render LOD section status?")
+ .build();
public static ConfigEntry showQuadTreeRenderStatus = new ConfigEntry.Builder()
- .set(false)
- .comment("Render Quad Tree Rendering status?")
- .build();
+ .set(false)
+ .comment("Render Quad Tree Rendering status?")
+ .build();
public static ConfigEntry showFullDataUpdateStatus = new ConfigEntry.Builder()
- .set(false)
- .comment("Render full data update/lock status?")
- .build();
+ .set(false)
+ .comment("Render full data update/lock status?")
+ .build();
}
@@ -1017,39 +1027,39 @@ public class Config
public static ConfigUIComment openGlHeader = new ConfigUIComment.Builder().setParentConfigClass(OpenGl.class).build();
public static ConfigEntry overrideVanillaGLLogger = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "Defines how OpenGL errors are handled. \n "
- + "Requires rebooting Minecraft to change. \n"
- + "Will catch OpenGL errors thrown by other mods. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "Defines how OpenGL errors are handled. \n "
+ + "Requires rebooting Minecraft to change. \n"
+ + "Will catch OpenGL errors thrown by other mods. \n"
+ + "")
+ .build();
public static ConfigEntry onlyLogGlErrorsOnce = new ConfigEntry.Builder()
- .set(true)
- .comment(""
- + "If true each Open GL error will only be logged once. \n"
- + "Enabling this may cause some error logs to be missed. \n"
- + "Does nothing if overrideVanillaGLLogger is set to false. \n"
- + " \n"
- + "Generally this can be kept as 'true' to prevent log spam. \n"
- + "However, Please set this to 'false' if a developer needs your log to debug a GL issue. \n"
- + "")
- .build();
+ .set(true)
+ .comment(""
+ + "If true each Open GL error will only be logged once. \n"
+ + "Enabling this may cause some error logs to be missed. \n"
+ + "Does nothing if overrideVanillaGLLogger is set to false. \n"
+ + " \n"
+ + "Generally this can be kept as 'true' to prevent log spam. \n"
+ + "However, Please set this to 'false' if a developer needs your log to debug a GL issue. \n"
+ + "")
+ .build();
public static ConfigEntry glErrorHandlingMode = new ConfigEntry.Builder()
- .set(ModInfo.IS_DEV_BUILD ? EDhApiGLErrorHandlingMode.LOG : EDhApiGLErrorHandlingMode.IGNORE)
- .comment(""
- + "Defines how OpenGL errors are handled. \n"
- + "May incorrectly catch OpenGL errors thrown by other mods. \n"
- + "\n"
- + EDhApiGLErrorHandlingMode.IGNORE + ": Do nothing. \n"
- + EDhApiGLErrorHandlingMode.LOG + ": write an error to the log. \n"
- + EDhApiGLErrorHandlingMode.LOG_THROW + ": write to the log and throw an exception. \n"
- + " Warning: this should only be enabled when debugging the LOD renderer \n"
- + " as it may break Minecraft's renderer when an exception is thrown. \n"
- + "")
- .build();
+ .set(ModInfo.IS_DEV_BUILD ? EDhApiGLErrorHandlingMode.LOG : EDhApiGLErrorHandlingMode.IGNORE)
+ .comment(""
+ + "Defines how OpenGL errors are handled. \n"
+ + "May incorrectly catch OpenGL errors thrown by other mods. \n"
+ + "\n"
+ + EDhApiGLErrorHandlingMode.IGNORE + ": Do nothing. \n"
+ + EDhApiGLErrorHandlingMode.LOG + ": write an error to the log. \n"
+ + EDhApiGLErrorHandlingMode.LOG_THROW + ": write to the log and throw an exception. \n"
+ + " Warning: this should only be enabled when debugging the LOD renderer \n"
+ + " as it may break Minecraft's renderer when an exception is thrown. \n"
+ + "")
+ .build();
}
@@ -1058,48 +1068,50 @@ public class Config
public static ConfigUIComment columnBuilderDebuggingHeader = new ConfigUIComment.Builder().setParentConfigClass(ColumnBuilderDebugging.class).build();
public static ConfigEntry columnBuilderDebugEnable = new ConfigEntry.Builder()
- .set(false)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(false)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
public static ConfigEntry columnBuilderDebugDetailLevel = new ConfigEntry.Builder()
- .set((int) DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set((int) DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
public static ConfigEntry columnBuilderDebugXPos = new ConfigEntry.Builder()
- .set(0)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(0)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
public static ConfigEntry columnBuilderDebugZPos = new ConfigEntry.Builder()
- .set(0)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(0)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
+
+ public static ConfigUISpacer subLodSpacer = new ConfigUISpacer.Builder().build();
public static ConfigEntry columnBuilderDebugXRow = new ConfigEntry.Builder()
- .set(-1)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(-1)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
public static ConfigEntry columnBuilderDebugZRow = new ConfigEntry.Builder()
- .set(-1)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(-1)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
public static ConfigEntry columnBuilderDebugColumnIndex = new ConfigEntry.Builder()
- .set(-1)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
- .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
- .build();
+ .set(-1)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_GUI)
+ .addListener(ReloadLodsConfigEventHandler.INSTANT_INSTANCE)
+ .build();
}
public static class PositionFinder
{
//public static ConfigUIComment positionFinderHeader = new ConfigUIComment.Builder().setParentConfigClass(ColumnBuilderDebugging.class).build();
-
+
public static ConfigEntry positionFinderEnable = new ConfigEntry.Builder()
.set(false)
.build();
@@ -1133,50 +1145,50 @@ public class Config
public static ConfigUIComment f3ScreenHeader = new ConfigUIComment.Builder().setParentConfigClass(F3Screen.class).build();
public static ConfigEntry showPlayerPos = new ConfigEntry.Builder()
- .set(true)
- .comment("Shows the player's LOD position.")
- .build();
+ .set(true)
+ .comment("Shows the player's LOD position.")
+ .build();
public static ConfigEntry playerPosSectionDetailLevel = new ConfigEntry.Builder()
- .setMinDefaultMax(6, 6, 16)
- .comment("" +
- "Defines what internal detail level the player position will be shown as. \n" +
- "Internal detail level means: 6 = 1x1 block, 7 = 2x2 blocks, etc. \n" +
- "")
- .build();
+ .setMinDefaultMax(6, 6, 16)
+ .comment("" +
+ "Defines what internal detail level the player position will be shown as. \n" +
+ "Internal detail level means: 6 = 1x1 block, 7 = 2x2 blocks, etc. \n" +
+ "")
+ .build();
public static ConfigEntry showThreadPools = new ConfigEntry.Builder()
- .set(true)
- .comment("Shows info about each thread pool.")
- .build();
+ .set(true)
+ .comment("Shows info about each thread pool.")
+ .build();
public static ConfigEntry showRenderThreadTasks = new ConfigEntry.Builder()
- .set(false)
- .comment("Shows info about the render thread tasks.")
- .build();
+ .set(false)
+ .comment("Shows info about the render thread tasks.")
+ .build();
public static ConfigEntry showCombinedObjectPools = new ConfigEntry.Builder()
- .set(false)
- .comment("Shows the combined memory use and array counts for all DH pooled objects.")
- .build();
+ .set(false)
+ .comment("Shows the combined memory use and array counts for all DH pooled objects.")
+ .build();
public static ConfigEntry showSeparatedObjectPools = new ConfigEntry.Builder()
- .set(false)
- .comment("Shows the memory use and array counts for each DH object pool.")
- .build();
+ .set(false)
+ .comment("Shows the memory use and array counts for each DH object pool.")
+ .build();
public static ConfigEntry showQueuedChunkUpdateCount = new ConfigEntry.Builder()
- .set(true)
- .comment("Shows how many chunks are queued for processing and the max count that can be queued.")
- .build();
+ .set(true)
+ .comment("Shows how many chunks are queued for processing and the max count that can be queued.")
+ .build();
public static ConfigEntry showLevelStatus = new ConfigEntry.Builder()
- .set(true)
- .comment("Shows what levels are loaded and world gen/rendering info about those levels.")
- .build();
+ .set(true)
+ .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();
+ .set(true)
+ .comment("Only show levels that DH is actively rendering.")
+ .build();
}
@@ -1191,50 +1203,50 @@ public class Config
public static ConfigUIComment debugConfigScreenNote = new ConfigUIComment.Builder().setTextPosition(EConfigCommentTextPosition.CENTER_OF_SCREEN).build();
public static ConfigEntry boolTest = new ConfigEntry.Builder()
- .set(false)
- .build();
+ .set(false)
+ .build();
public static ConfigEntry byteTest = new ConfigEntry.Builder()
- .set((byte) 8)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
- .build();
+ .set((byte) 8)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
+ .build();
public static ConfigEntry intTest = new ConfigEntry.Builder()
- .set(69420)
- .build();
+ .set(69420)
+ .build();
public static ConfigEntry doubleTest = new ConfigEntry.Builder()
- .set(420.69d)
- .build();
+ .set(420.69d)
+ .build();
public static ConfigEntry shortTest = new ConfigEntry.Builder()
- .set((short) 69)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
- .build();
+ .set((short) 69)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
+ .build();
public static ConfigEntry longTest = new ConfigEntry.Builder()
- .set(42069L)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
- .build();
+ .set(42069L)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
+ .build();
public static ConfigEntry floatTest = new ConfigEntry.Builder()
- .set(0.42069f)
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
- .build();
+ .set(0.42069f)
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
+ .build();
public static ConfigEntry stringTest = new ConfigEntry.Builder()
- .set("Test input box")
- .build();
+ .set("Test input box")
+ .build();
public static ConfigEntry> listTest = new ConfigEntry.Builder>()
- .set(new ArrayList(Arrays.asList("option 1", "option 2", "option 3")))
- .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
- .build();
+ .set(new ArrayList(Arrays.asList("option 1", "option 2", "option 3")))
+ .setAppearance(EConfigEntryAppearance.ONLY_IN_FILE) // no GUI renderer set up currently
+ .build();
public static ConfigEntry