diff --git a/common/src/main/java/com/seibel/lod/common/Config.java b/common/src/main/java/com/seibel/lod/common/Config.java index 2e1a95606..0d1e38424 100644 --- a/common/src/main/java/com/seibel/lod/common/Config.java +++ b/common/src/main/java/com/seibel/lod/common/Config.java @@ -23,9 +23,11 @@ import com.seibel.lod.common.wrappers.config.ConfigGui; import com.seibel.lod.core.config.*; import com.seibel.lod.core.enums.config.*; import com.seibel.lod.core.enums.rendering.*; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.*; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.*; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IWorldGenerator; +import net.minecraft.client.renderer.DimensionSpecialEffects; /** * This handles any configuration the user has access to. @@ -55,6 +57,8 @@ public class Config extends ConfigGui @ConfigAnnotations.ScreenEntry public static Client client; + @ConfigAnnotations.FileComment + public static String _optionsButton = ILodConfigWrapperSingleton.IClient.OPTIONS_BUTTON_DESC; // I know this option should be in Client // This is a hacky method to not show the button in the options screen but show it in the mod menu // Tough it is in client in the wrapper singleton @@ -81,7 +85,7 @@ public class Config extends ConfigGui @ConfigAnnotations.ScreenEntry public static FogQuality fogQuality; -// @ConfigAnnotations.ScreenEntry // TODO: This isnt done in 1.16 branch + @ConfigAnnotations.ScreenEntry public static CloudQuality cloudQuality; @ConfigAnnotations.ScreenEntry @@ -90,21 +94,33 @@ public class Config extends ConfigGui public static class Quality { + @ConfigAnnotations.FileComment + public static String _drawResolution = IQuality.DRAW_RESOLUTION_DESC; @ConfigAnnotations.Entry public static HorizontalResolution drawResolution = IQuality.DRAW_RESOLUTION_DEFAULT; - @ConfigAnnotations.Entry(minValue = 16, maxValue = 1024) + @ConfigAnnotations.FileComment + public static String _lodChunkRenderDistance = IQuality.LOD_CHUNK_RENDER_DISTANCE_DESC; + @ConfigAnnotations.Entry(minValue = 16, maxValue = 8192) public static int lodChunkRenderDistance = IQuality.LOD_CHUNK_RENDER_DISTANCE_MIN_DEFAULT_MAX.defaultValue; + @ConfigAnnotations.FileComment + public static String _verticalQuality = IQuality.VERTICAL_QUALITY_DESC; @ConfigAnnotations.Entry public static VerticalQuality verticalQuality = IQuality.VERTICAL_QUALITY_DEFAULT; + @ConfigAnnotations.FileComment + public static String _horizontalScale = IQuality.HORIZONTAL_SCALE_DESC; @ConfigAnnotations.Entry(minValue = 2, maxValue = 32) public static int horizontalScale = IQuality.HORIZONTAL_SCALE_MIN_DEFAULT_MAX.defaultValue; + @ConfigAnnotations.FileComment + public static String _horizontalQuality = IQuality.HORIZONTAL_SCALE_DESC; @ConfigAnnotations.Entry public static HorizontalQuality horizontalQuality = IQuality.HORIZONTAL_QUALITY_DEFAULT; + @ConfigAnnotations.FileComment + public static String _dropoffQuality = IQuality.DROPOFF_QUALITY_DESC; @ConfigAnnotations.Entry public static DropoffQuality dropoffQuality = IQuality.DROPOFF_QUALITY_DEFAULT; } @@ -112,15 +128,23 @@ public class Config extends ConfigGui public static class FogQuality { + @ConfigAnnotations.FileComment + public static String _fogDistance = IFogQuality.FOG_DISTANCE_DESC; @ConfigAnnotations.Entry public static FogDistance fogDistance = IFogQuality.FOG_DISTANCE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _fogDrawMode = IFogQuality.FOG_DRAW_MODE_DESC; @ConfigAnnotations.Entry public static FogDrawMode fogDrawMode = IFogQuality.FOG_DRAW_MODE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _fogColorMode = IFogQuality.FOG_COLOR_MODE_DESC; @ConfigAnnotations.Entry public static FogColorMode fogColorMode = IFogQuality.FOG_COLOR_MODE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _disableVanillaFog = IFogQuality.DISABLE_VANILLA_FOG_DESC; @ConfigAnnotations.Entry public static boolean disableVanillaFog = IFogQuality.DISABLE_VANILLA_FOG_DEFAULT; } @@ -130,16 +154,24 @@ public class Config extends ConfigGui { @ConfigAnnotations.Comment public static ConfigAnnotations.Comment cloudWarning; - + + @ConfigAnnotations.FileComment + public static String _customClouds = ICloudQuality.CUSTOM_CLOUDS_DESC; @ConfigAnnotations.Entry public static boolean customClouds = ICloudQuality.CUSTOM_CLOUDS_DEFAULT; + @ConfigAnnotations.FileComment + public static String _fabulousClouds = ICloudQuality.FABULOUS_CLOUDS_DESC; @ConfigAnnotations.Entry public static boolean fabulousClouds = ICloudQuality.FABULOUS_CLOUDS_DEFAULT; + @ConfigAnnotations.FileComment + public static String _extendClouds = ICloudQuality.EXTEND_CLOUDS_DESC; @ConfigAnnotations.Entry public static boolean extendClouds = ICloudQuality.EXTEND_CLOUDS_DEFAULT; + @ConfigAnnotations.FileComment + public static String _cloudHeight = ICloudQuality.CLOUD_HEIGHT_DESC; @ConfigAnnotations.Entry public static double cloudHeight = 128; } @@ -147,18 +179,28 @@ public class Config extends ConfigGui public static class AdvancedGraphics { + @ConfigAnnotations.FileComment + public static String _disableDirectionalCulling = IAdvancedGraphics.DISABLE_DIRECTIONAL_CULLING_DESC; @ConfigAnnotations.Entry public static boolean disableDirectionalCulling = IAdvancedGraphics.DISABLE_DIRECTIONAL_CULLING_DEFAULT; + @ConfigAnnotations.FileComment + public static String _alwaysDrawAtMaxQuality = IAdvancedGraphics.ALWAYS_DRAW_AT_MAD_QUALITY_DESC; @ConfigAnnotations.Entry public static boolean alwaysDrawAtMaxQuality = IAdvancedGraphics.ALWAYS_DRAW_AT_MAD_QUALITY_DEFAULT; + @ConfigAnnotations.FileComment + public static String _vanillaOverdraw = IAdvancedGraphics.VANILLA_OVERDRAW_DESC; @ConfigAnnotations.Entry public static VanillaOverdraw vanillaOverdraw = IAdvancedGraphics.VANILLA_OVERDRAW_DEFAULT; + @ConfigAnnotations.FileComment + public static String _useExtendedNearClipPlane = IAdvancedGraphics.USE_EXTENDED_NEAR_CLIP_PLANE_DESC; @ConfigAnnotations.Entry public static boolean useExtendedNearClipPlane = IAdvancedGraphics.USE_EXTENDED_NEAR_CLIP_PLANE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _backsideCullingRange = IAdvancedGraphics.VANILLA_CULLING_RANGE_DESC; @ConfigAnnotations.Entry(minValue = 0, maxValue = 512) public static int backsideCullingRange = IAdvancedGraphics.VANILLA_CULLING_RANGE_MIN_DEFAULT_MAX.defaultValue; } @@ -167,16 +209,24 @@ public class Config extends ConfigGui public static class WorldGenerator { + @ConfigAnnotations.FileComment + public static String _generationPriority = IWorldGenerator.GENERATION_PRIORITY_DESC; @ConfigAnnotations.Entry public static GenerationPriority generationPriority = IWorldGenerator.GENERATION_PRIORITY_DEFAULT; + // @ConfigAnnotations.FileComment +// public static String _distanceGenerationMode = IWorldGenerator.getDistanceGenerationModeDesc(); @ConfigAnnotations.Entry public static DistanceGenerationMode distanceGenerationMode = IWorldGenerator.DISTANCE_GENERATION_MODE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _allowUnstableFeatureGeneration = IWorldGenerator.ALLOW_UNSTABLE_FEATURE_GENERATION_DESC; // FIXME: Temperary override. In 1.18, the newer Unstable gnerator is more usable @ConfigAnnotations.Entry - public static boolean allowUnstableFeatureGeneration = true;//IWorldGenerator.ALLOW_UNSTABLE_FEATURE_GENERATION_DEFAULT; + public static boolean allowUnstableFeatureGeneration = IWorldGenerator.ALLOW_UNSTABLE_FEATURE_GENERATION_DEFAULT; + @ConfigAnnotations.FileComment + public static String _blocksToAvoid = IWorldGenerator.BLOCKS_TO_AVOID_DESC; @ConfigAnnotations.Entry public static BlocksToAvoid blocksToAvoid = IWorldGenerator.BLOCKS_TO_AVOID_DEFAULT; } @@ -195,9 +245,13 @@ public class Config extends ConfigGui public static class Threading { + @ConfigAnnotations.FileComment + public static String _numberOfWorldGenerationThreads = IThreading.NUMBER_OF_WORLD_GENERATION_THREADS_DESC; @ConfigAnnotations.Entry(minValue = 1, maxValue = 50) public static int numberOfWorldGenerationThreads = IThreading.NUMBER_OF_WORLD_GENERATION_THREADS_DEFAULT.defaultValue; + @ConfigAnnotations.FileComment + public static String _numberOfBufferBuilderThreads = IThreading.NUMBER_OF_BUFFER_BUILDER_THREADS_DESC; @ConfigAnnotations.Entry(minValue = 1, maxValue = 50) public static int numberOfBufferBuilderThreads = IThreading.NUMBER_OF_BUFFER_BUILDER_THREADS_MIN_DEFAULT_MAX.defaultValue; } @@ -205,12 +259,18 @@ public class Config extends ConfigGui public static class Debugging { + @ConfigAnnotations.FileComment + public static String _drawLods = IDebugging.DRAW_LODS_DESC; @ConfigAnnotations.Entry public static boolean drawLods = IDebugging.DRAW_LODS_DEFAULT; + @ConfigAnnotations.FileComment + public static String _debugMode = IDebugging.DEBUG_MODE_DESC; @ConfigAnnotations.Entry public static DebugMode debugMode = IDebugging.DEBUG_MODE_DEFAULT; + @ConfigAnnotations.FileComment + public static String _enableDebugKeybindings = IDebugging.DEBUG_KEYBINDINGS_ENABLED_DESC; @ConfigAnnotations.Entry public static boolean enableDebugKeybindings = IDebugging.DEBUG_KEYBINDINGS_ENABLED_DEFAULT; } @@ -218,12 +278,18 @@ public class Config extends ConfigGui public static class Buffers { + @ConfigAnnotations.FileComment + public static String _gpuUploadMethod = IBuffers.GPU_UPLOAD_METHOD_DESC; @ConfigAnnotations.Entry public static GpuUploadMethod gpuUploadMethod = IBuffers.GPU_UPLOAD_METHOD_DEFAULT; + @ConfigAnnotations.FileComment + public static String _gpuUploadPerMegabyteInMilliseconds = IBuffers.GPU_UPLOAD_PER_MEGABYTE_IN_MILLISECONDS_DESC; @ConfigAnnotations.Entry(minValue = 0, maxValue = 5000) public static int gpuUploadPerMegabyteInMilliseconds = IBuffers.GPU_UPLOAD_PER_MEGABYTE_IN_MILLISECONDS_DEFAULT.defaultValue; + @ConfigAnnotations.FileComment + public static String _rebuildTimes = IBuffers.REBUILD_TIMES_DESC; @ConfigAnnotations.Entry public static BufferRebuildTimes rebuildTimes = IBuffers.REBUILD_TIMES_DEFAULT; } diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java b/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java index 727c97bc7..d31fbf1f3 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java @@ -131,6 +131,10 @@ public abstract class ConfigGui String gotoScreen = ""; String category; Class varClass; + + + @Deprecated + boolean fileComment = false; } private static Path configFilePath; @@ -184,6 +188,16 @@ public abstract class ConfigGui if (field.isAnnotationPresent(ConfigAnnotations.ScreenEntry.class)) initNestedClass(field.getType(), (!category.isEmpty() ? category + "." : "") + field.getName()); + // File comment (WILL BE REMOVED SOON) + if (field.isAnnotationPresent(ConfigAnnotations.FileComment.class)) { + entryMap.put((!category.isEmpty() ? category + "." : "") + field.getName(), info); + info.fileComment = true; + try + { + info.value = info.defaultValue = field.get(null); + } + catch (IllegalAccessException ignored) {} + } info.field = field; } @@ -328,6 +342,9 @@ public abstract class ConfigGui for (EntryInfo info : entries) { if (info.field.isAnnotationPresent(ConfigAnnotations.Entry.class)) { editSingleOption.saveOption(info, config); + + if (editSingleOption.getEntry((info.category.isEmpty() ? "" : info.category + ".") + "_" + info.field.getName()) != null) + config.setComment((info.category.isEmpty() ? "" : info.category + ".") + info.field.getName(), String.valueOf(editSingleOption.getEntry((info.category.isEmpty() ? "" : info.category + ".") + "_" + info.field.getName()).defaultValue)); } } @@ -356,6 +373,10 @@ public abstract class ConfigGui for (EntryInfo info : entries) { if (info.field.isAnnotationPresent(ConfigAnnotations.Entry.class)) { editSingleOption.loadOption(info, config); + + // File comments (WILL REMOVE SOON) + if (editSingleOption.getEntry((info.category.isEmpty() ? "" : info.category + ".") + "_" + info.field.getName()) != null) + config.setComment((info.category.isEmpty() ? "" : info.category + ".") + info.field.getName(), String.valueOf(editSingleOption.getEntry((info.category.isEmpty() ? "" : info.category + ".") + "_" + info.field.getName()).defaultValue)); } } @@ -440,7 +461,6 @@ public abstract class ConfigGui try { Files.deleteIfExists(configFilePath); saveToFile(); - return; } catch (Exception f) { LOGGER.info("Failed creating config file for " + MOD_NAME_READABLE + " at the path [" + configFilePath.toString() + "]."); f.printStackTrace(); @@ -476,7 +496,7 @@ public abstract class ConfigGui private final String translationPrefix; private final Screen parent; - private String category; + private final String category; private ConfigListWidget list; private boolean reload = false; @@ -579,7 +599,7 @@ public abstract class ConfigGui })); this.list.addButton(widget, null, null, null); } - else + else if (!info.fileComment) { this.list.addButton(null, null, null, name); } @@ -605,7 +625,7 @@ public abstract class ConfigGui String key = translationPrefix + (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName() + ".@tooltip"; if (info.error != null && text.equals(name)) renderTooltip(matrices, (Component) info.error.getValue(), mouseX, mouseY); - else if (I18n.exists(key) && (text == null ? false : text.equals(name))) { + else if (I18n.exists(key) && (text != null && text.equals(name))) { List list = new ArrayList<>(); for (String str : I18n.get(key).split("\n")) list.add(new TextComponent(str)); diff --git a/core b/core index ab3880a5e..bdd877abe 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit ab3880a5e56b7238522fd598696e9fe5ee2f67b6 +Subproject commit bdd877abe8bcbaca93fc7e959cf9a738d43342a1