diff --git a/common/build.gradle b/common/build.gradle index f101db0..7c83808 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -23,6 +23,8 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" // Mod implementations - modImplementation "maven.modrinth:sodium:mc1.21-0.5.9" - modImplementation "maven.modrinth:sodium-extra:mc1.21-0.5.7" -} \ No newline at end of file + modImplementation "maven.modrinth:sodium:mc1.21-0.5.9" // Sodium + modImplementation "maven.modrinth:sodium-extra:mc1.21-0.5.7" // Sodium Extra + modImplementation "maven.modrinth:embeddium:1.0.2+mc1.21" // Embeddium + modImplementation "maven.modrinth:distanthorizons:2.1.2-a-1.21" // Distant Horizons +} diff --git a/common/src/main/java/com/axolotlmaid/optionsprofiles/mixin/MixinOptionsScreen.java b/common/src/main/java/com/axolotlmaid/optionsprofiles/mixin/MixinOptionsScreen.java index 2a3135a..9f50b6c 100644 --- a/common/src/main/java/com/axolotlmaid/optionsprofiles/mixin/MixinOptionsScreen.java +++ b/common/src/main/java/com/axolotlmaid/optionsprofiles/mixin/MixinOptionsScreen.java @@ -22,7 +22,7 @@ public class MixinOptionsScreen extends Screen { Button.builder( Component.translatable("gui.optionsprofiles.profiles-menu"), (button) -> this.minecraft.setScreen(new ProfilesScreen(this))) - .width(100) + .width(75) .pos(5, 5) .build() ); diff --git a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/Profiles.java b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/Profiles.java index f2e690b..a237012 100644 --- a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/Profiles.java +++ b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/Profiles.java @@ -1,6 +1,10 @@ package com.axolotlmaid.optionsprofiles.profiles; import com.axolotlmaid.optionsprofiles.OptionsProfilesMod; +import com.axolotlmaid.optionsprofiles.profiles.loaders.EmbeddiumLoader; +import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumExtraLoader; +import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumLoader; +import com.seibel.distanthorizons.core.config.ConfigBase; import org.apache.commons.io.FileUtils; import java.io.IOException; @@ -18,6 +22,8 @@ public class Profiles { public static final Path OPTIFINE_OPTIONS_FILE = Paths.get("optionsof.txt"); public static final Path SODIUM_OPTIONS_FILE = Paths.get("config/sodium-options.json"); public static final Path SODIUM_EXTRA_OPTIONS_FILE = Paths.get("config/sodium-extra-options.json"); + public static final Path EMBEDDIUM_OPTIONS_FILE = Paths.get("config/embeddium-options.json"); + public static final Path DISTANT_HORIZONS_OPTIONS_FILE = Paths.get("config/DistantHorizons.toml"); // This function goes through every profile and updates / adds the configuration file if it doesn't exist public static void updateProfiles() { @@ -112,6 +118,8 @@ public class Profiles { copyOptionFile(profile, OPTIFINE_OPTIONS_FILE); copyOptionFile(profile, SODIUM_OPTIONS_FILE); copyOptionFile(profile, SODIUM_EXTRA_OPTIONS_FILE); + copyOptionFile(profile, EMBEDDIUM_OPTIONS_FILE); + copyOptionFile(profile, DISTANT_HORIZONS_OPTIONS_FILE); // Add every option value to configuration try (Stream lines = Files.lines(profileOptions)) { @@ -138,6 +146,8 @@ public class Profiles { Optional.of(OPTIFINE_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add); Optional.of(SODIUM_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add); Optional.of(SODIUM_EXTRA_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add); + Optional.of(EMBEDDIUM_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add); + Optional.of(DISTANT_HORIZONS_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add); // Check if the original option file and the profile option file have the same content try { @@ -237,8 +247,13 @@ public class Profiles { public static void loadProfile(String profileName) { loadOptionFile(profileName, OPTIONS_FILE); loadOptionFile(profileName, OPTIFINE_OPTIONS_FILE); - loadOptionFile(profileName, SODIUM_OPTIONS_FILE, SodiumConfigLoader::load); - loadOptionFile(profileName, SODIUM_EXTRA_OPTIONS_FILE, SodiumExtraConfigLoader::load); + loadOptionFile(profileName, SODIUM_OPTIONS_FILE, SodiumLoader::load); + loadOptionFile(profileName, SODIUM_EXTRA_OPTIONS_FILE, SodiumExtraLoader::load); + loadOptionFile(profileName, EMBEDDIUM_OPTIONS_FILE, EmbeddiumLoader::load); + + // Distant Horizons + loadOptionFile(profileName, DISTANT_HORIZONS_OPTIONS_FILE); + ConfigBase.INSTANCE.configFileINSTANCE.loadFromFile(); } public static void renameProfile(String profileName, String newProfileName) { diff --git a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/EmbeddiumLoader.java b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/EmbeddiumLoader.java new file mode 100644 index 0000000..78884d5 --- /dev/null +++ b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/EmbeddiumLoader.java @@ -0,0 +1,70 @@ +package com.axolotlmaid.optionsprofiles.profiles.loaders; + +import com.axolotlmaid.optionsprofiles.OptionsProfilesMod; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import org.embeddedt.embeddium.impl.Embeddium; +import org.embeddedt.embeddium.impl.gui.EmbeddiumOptions; + +import java.io.FileReader; +import java.io.IOException; +import java.nio.file.Path; + +public class EmbeddiumLoader { + public static void load(Path file) { + try (FileReader reader = new FileReader(file.toFile())) { + Gson gson = new GsonBuilder().create(); + Configuration configData = gson.fromJson(reader, Configuration.class); + + apply(configData); + } catch (IOException e) { + OptionsProfilesMod.LOGGER.error("An error occurred when loading Sodium's configuration", e); + } + } + + private static void apply(Configuration configuration) { + Embeddium.options().quality.weatherQuality = EmbeddiumOptions.GraphicsQuality.valueOf(configuration.quality.weather_quality); + Embeddium.options().quality.leavesQuality = EmbeddiumOptions.GraphicsQuality.valueOf(configuration.quality.leaves_quality); + Embeddium.options().quality.enableVignette = configuration.quality.enable_vignette; + + Embeddium.options().advanced.enableMemoryTracing = configuration.advanced.enable_memory_tracing; + Embeddium.options().advanced.useAdvancedStagingBuffers = configuration.advanced.use_advanced_staging_buffers; + Embeddium.options().advanced.disableIncompatibleModWarnings = configuration.advanced.disable_incompatible_mod_warnings; + Embeddium.options().advanced.cpuRenderAheadLimit = configuration.advanced.cpu_render_ahead_limit; + + Embeddium.options().performance.chunkBuilderThreads = configuration.performance.chunk_builder_threads; + Embeddium.options().performance.alwaysDeferChunkUpdates = configuration.performance.always_defer_chunk_updates_v2; + Embeddium.options().performance.animateOnlyVisibleTextures = configuration.performance.animate_only_visible_textures; + Embeddium.options().performance.useEntityCulling = configuration.performance.use_entity_culling; + Embeddium.options().performance.useFogOcclusion = configuration.performance.use_fog_occlusion; + Embeddium.options().performance.useBlockFaceCulling = configuration.performance.use_block_face_culling; + Embeddium.options().performance.useCompactVertexFormat = configuration.performance.use_compact_vertex_format; + Embeddium.options().performance.useTranslucentFaceSorting = configuration.performance.use_translucent_face_sorting_v2; + Embeddium.options().performance.useNoErrorGLContext = configuration.performance.use_no_error_g_l_context; + + Embeddium.options().notifications.hasClearedDonationButton = configuration.notifications.has_cleared_donation_button; + Embeddium.options().notifications.hasSeenDonationPrompt = configuration.notifications.has_seen_donation_prompt; + + try { + EmbeddiumOptions.writeToDisk(Embeddium.options()); + } catch (IOException e) { + OptionsProfilesMod.LOGGER.error("An error occurred when loading Embeddium's configuration", e); + } + } + + public static class Configuration { + public SodiumLoader.Configuration.Quality quality; + public Advanced advanced; + public Performance performance; + public SodiumLoader.Configuration.Notifications notifications; + + public static class Advanced extends SodiumLoader.Configuration.Advanced { + public boolean disable_incompatible_mod_warnings; + } + + public static class Performance extends SodiumLoader.Configuration.Performance { + public boolean use_compact_vertex_format; + public boolean use_translucent_face_sorting_v2; + } + } +} diff --git a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumExtraConfigLoader.java b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumExtraLoader.java similarity index 69% rename from common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumExtraConfigLoader.java rename to common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumExtraLoader.java index 2d07edb..896220c 100644 --- a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumExtraConfigLoader.java +++ b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumExtraLoader.java @@ -1,4 +1,4 @@ -package com.axolotlmaid.optionsprofiles.profiles; +package com.axolotlmaid.optionsprofiles.profiles.loaders; import com.axolotlmaid.optionsprofiles.OptionsProfilesMod; import com.google.gson.Gson; @@ -12,78 +12,78 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Map; -public class SodiumExtraConfigLoader { +public class SodiumExtraLoader { public static void load(Path file) { try (FileReader reader = new FileReader(file.toFile())) { Gson gson = new GsonBuilder().create(); - ConfigData configData = gson.fromJson(reader, ConfigData.class); + Configuration configuration = gson.fromJson(reader, Configuration.class); - apply(configData); + apply(configuration); } catch (IOException e) { OptionsProfilesMod.LOGGER.error("An error occurred when loading Sodium Extra's configuration", e); } } - private static void apply(ConfigData configData) { - SodiumExtraClientMod.options().animationSettings.animation = configData.animation_settings.animation; - SodiumExtraClientMod.options().animationSettings.water = configData.animation_settings.water; - SodiumExtraClientMod.options().animationSettings.lava = configData.animation_settings.lava; - SodiumExtraClientMod.options().animationSettings.fire = configData.animation_settings.fire; - SodiumExtraClientMod.options().animationSettings.portal = configData.animation_settings.portal; - SodiumExtraClientMod.options().animationSettings.blockAnimations = configData.animation_settings.block_animations; - SodiumExtraClientMod.options().animationSettings.sculkSensor = configData.animation_settings.sculk_sensor; + private static void apply(Configuration configuration) { + SodiumExtraClientMod.options().animationSettings.animation = configuration.animation_settings.animation; + SodiumExtraClientMod.options().animationSettings.water = configuration.animation_settings.water; + SodiumExtraClientMod.options().animationSettings.lava = configuration.animation_settings.lava; + SodiumExtraClientMod.options().animationSettings.fire = configuration.animation_settings.fire; + SodiumExtraClientMod.options().animationSettings.portal = configuration.animation_settings.portal; + SodiumExtraClientMod.options().animationSettings.blockAnimations = configuration.animation_settings.block_animations; + SodiumExtraClientMod.options().animationSettings.sculkSensor = configuration.animation_settings.sculk_sensor; - SodiumExtraClientMod.options().particleSettings.particles = configData.particle_settings.particles; - SodiumExtraClientMod.options().particleSettings.rainSplash = configData.particle_settings.rain_splash; - SodiumExtraClientMod.options().particleSettings.blockBreak = configData.particle_settings.block_break; - SodiumExtraClientMod.options().particleSettings.blockBreaking = configData.particle_settings.block_breaking; - SodiumExtraClientMod.options().particleSettings.otherMap = configData.particle_settings.other; + SodiumExtraClientMod.options().particleSettings.particles = configuration.particle_settings.particles; + SodiumExtraClientMod.options().particleSettings.rainSplash = configuration.particle_settings.rain_splash; + SodiumExtraClientMod.options().particleSettings.blockBreak = configuration.particle_settings.block_break; + SodiumExtraClientMod.options().particleSettings.blockBreaking = configuration.particle_settings.block_breaking; + SodiumExtraClientMod.options().particleSettings.otherMap = configuration.particle_settings.other; - SodiumExtraClientMod.options().detailSettings.sky = configData.detail_settings.sky; - SodiumExtraClientMod.options().detailSettings.sunMoon = configData.detail_settings.sun_moon; - SodiumExtraClientMod.options().detailSettings.stars = configData.detail_settings.stars; - SodiumExtraClientMod.options().detailSettings.rainSnow = configData.detail_settings.rain_snow; - SodiumExtraClientMod.options().detailSettings.biomeColors = configData.detail_settings.biome_colors; - SodiumExtraClientMod.options().detailSettings.skyColors = configData.detail_settings.sky_colors; + SodiumExtraClientMod.options().detailSettings.sky = configuration.detail_settings.sky; + SodiumExtraClientMod.options().detailSettings.sunMoon = configuration.detail_settings.sun_moon; + SodiumExtraClientMod.options().detailSettings.stars = configuration.detail_settings.stars; + SodiumExtraClientMod.options().detailSettings.rainSnow = configuration.detail_settings.rain_snow; + SodiumExtraClientMod.options().detailSettings.biomeColors = configuration.detail_settings.biome_colors; + SodiumExtraClientMod.options().detailSettings.skyColors = configuration.detail_settings.sky_colors; - SodiumExtraClientMod.options().renderSettings.fogDistance = configData.render_settings.fog_distance; - SodiumExtraClientMod.options().renderSettings.fogStart = configData.render_settings.fog_start; - SodiumExtraClientMod.options().renderSettings.multiDimensionFogControl = configData.render_settings.multi_dimension_fog_control; - SodiumExtraClientMod.options().renderSettings.dimensionFogDistanceMap = configData.render_settings.dimensionFogDistance; - SodiumExtraClientMod.options().renderSettings.lightUpdates = configData.render_settings.light_updates; - SodiumExtraClientMod.options().renderSettings.itemFrame = configData.render_settings.item_frame; - SodiumExtraClientMod.options().renderSettings.armorStand = configData.render_settings.armor_stand; - SodiumExtraClientMod.options().renderSettings.painting = configData.render_settings.painting; - SodiumExtraClientMod.options().renderSettings.piston = configData.render_settings.piston; - SodiumExtraClientMod.options().renderSettings.beaconBeam = configData.render_settings.beacon_beam; - SodiumExtraClientMod.options().renderSettings.limitBeaconBeamHeight = configData.render_settings.limit_beacon_beam_height; - SodiumExtraClientMod.options().renderSettings.enchantingTableBook = configData.render_settings.enchanting_table_book; - SodiumExtraClientMod.options().renderSettings.itemFrameNameTag = configData.render_settings.item_frame_name_tag; - SodiumExtraClientMod.options().renderSettings.playerNameTag = configData.render_settings.player_name_tag; + SodiumExtraClientMod.options().renderSettings.fogDistance = configuration.render_settings.fog_distance; + SodiumExtraClientMod.options().renderSettings.fogStart = configuration.render_settings.fog_start; + SodiumExtraClientMod.options().renderSettings.multiDimensionFogControl = configuration.render_settings.multi_dimension_fog_control; + SodiumExtraClientMod.options().renderSettings.dimensionFogDistanceMap = configuration.render_settings.dimensionFogDistance; + SodiumExtraClientMod.options().renderSettings.lightUpdates = configuration.render_settings.light_updates; + SodiumExtraClientMod.options().renderSettings.itemFrame = configuration.render_settings.item_frame; + SodiumExtraClientMod.options().renderSettings.armorStand = configuration.render_settings.armor_stand; + SodiumExtraClientMod.options().renderSettings.painting = configuration.render_settings.painting; + SodiumExtraClientMod.options().renderSettings.piston = configuration.render_settings.piston; + SodiumExtraClientMod.options().renderSettings.beaconBeam = configuration.render_settings.beacon_beam; + SodiumExtraClientMod.options().renderSettings.limitBeaconBeamHeight = configuration.render_settings.limit_beacon_beam_height; + SodiumExtraClientMod.options().renderSettings.enchantingTableBook = configuration.render_settings.enchanting_table_book; + SodiumExtraClientMod.options().renderSettings.itemFrameNameTag = configuration.render_settings.item_frame_name_tag; + SodiumExtraClientMod.options().renderSettings.playerNameTag = configuration.render_settings.player_name_tag; - SodiumExtraClientMod.options().extraSettings.overlayCorner = SodiumExtraGameOptions.OverlayCorner.valueOf(configData.extra_settings.overlay_corner); - SodiumExtraClientMod.options().extraSettings.textContrast = SodiumExtraGameOptions.TextContrast.valueOf(configData.extra_settings.text_contrast); - SodiumExtraClientMod.options().extraSettings.showFps = configData.extra_settings.show_fps; - SodiumExtraClientMod.options().extraSettings.showFPSExtended = configData.extra_settings.show_f_p_s_extended; - SodiumExtraClientMod.options().extraSettings.showCoords = configData.extra_settings.show_coords; - SodiumExtraClientMod.options().extraSettings.reduceResolutionOnMac = configData.extra_settings.reduce_resolution_on_mac; - SodiumExtraClientMod.options().extraSettings.useAdaptiveSync = configData.extra_settings.use_adaptive_sync; - SodiumExtraClientMod.options().extraSettings.cloudHeight = configData.extra_settings.cloud_height; - SodiumExtraClientMod.options().extraSettings.cloudDistance = configData.extra_settings.cloud_distance; - SodiumExtraClientMod.options().extraSettings.toasts = configData.extra_settings.toasts; - SodiumExtraClientMod.options().extraSettings.advancementToast = configData.extra_settings.advancement_toast; - SodiumExtraClientMod.options().extraSettings.recipeToast = configData.extra_settings.recipe_toast; - SodiumExtraClientMod.options().extraSettings.systemToast = configData.extra_settings.system_toast; - SodiumExtraClientMod.options().extraSettings.tutorialToast = configData.extra_settings.tutorial_toast; - SodiumExtraClientMod.options().extraSettings.instantSneak = configData.extra_settings.instant_sneak; - SodiumExtraClientMod.options().extraSettings.preventShaders = configData.extra_settings.prevent_shaders; - SodiumExtraClientMod.options().extraSettings.steadyDebugHud = configData.extra_settings.steady_debug_hud; - SodiumExtraClientMod.options().extraSettings.steadyDebugHudRefreshInterval = configData.extra_settings.steady_debug_hud_refresh_interval; + SodiumExtraClientMod.options().extraSettings.overlayCorner = SodiumExtraGameOptions.OverlayCorner.valueOf(configuration.extra_settings.overlay_corner); + SodiumExtraClientMod.options().extraSettings.textContrast = SodiumExtraGameOptions.TextContrast.valueOf(configuration.extra_settings.text_contrast); + SodiumExtraClientMod.options().extraSettings.showFps = configuration.extra_settings.show_fps; + SodiumExtraClientMod.options().extraSettings.showFPSExtended = configuration.extra_settings.show_f_p_s_extended; + SodiumExtraClientMod.options().extraSettings.showCoords = configuration.extra_settings.show_coords; + SodiumExtraClientMod.options().extraSettings.reduceResolutionOnMac = configuration.extra_settings.reduce_resolution_on_mac; + SodiumExtraClientMod.options().extraSettings.useAdaptiveSync = configuration.extra_settings.use_adaptive_sync; + SodiumExtraClientMod.options().extraSettings.cloudHeight = configuration.extra_settings.cloud_height; + SodiumExtraClientMod.options().extraSettings.cloudDistance = configuration.extra_settings.cloud_distance; + SodiumExtraClientMod.options().extraSettings.toasts = configuration.extra_settings.toasts; + SodiumExtraClientMod.options().extraSettings.advancementToast = configuration.extra_settings.advancement_toast; + SodiumExtraClientMod.options().extraSettings.recipeToast = configuration.extra_settings.recipe_toast; + SodiumExtraClientMod.options().extraSettings.systemToast = configuration.extra_settings.system_toast; + SodiumExtraClientMod.options().extraSettings.tutorialToast = configuration.extra_settings.tutorial_toast; + SodiumExtraClientMod.options().extraSettings.instantSneak = configuration.extra_settings.instant_sneak; + SodiumExtraClientMod.options().extraSettings.preventShaders = configuration.extra_settings.prevent_shaders; + SodiumExtraClientMod.options().extraSettings.steadyDebugHud = configuration.extra_settings.steady_debug_hud; + SodiumExtraClientMod.options().extraSettings.steadyDebugHudRefreshInterval = configuration.extra_settings.steady_debug_hud_refresh_interval; SodiumExtraClientMod.options().writeChanges(); } - public static class ConfigData { + public static class Configuration { public AnimationSettings animation_settings; public ParticleSettings particle_settings; public DetailSettings detail_settings; diff --git a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumConfigLoader.java b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumLoader.java similarity index 71% rename from common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumConfigLoader.java rename to common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumLoader.java index 73247a5..09f9de8 100644 --- a/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/SodiumConfigLoader.java +++ b/common/src/main/java/com/axolotlmaid/optionsprofiles/profiles/loaders/SodiumLoader.java @@ -1,4 +1,4 @@ -package com.axolotlmaid.optionsprofiles.profiles; +package com.axolotlmaid.optionsprofiles.profiles.loaders; import com.axolotlmaid.optionsprofiles.OptionsProfilesMod; import com.google.gson.Gson; @@ -10,37 +10,37 @@ import java.io.FileReader; import java.io.IOException; import java.nio.file.Path; -public class SodiumConfigLoader { +public class SodiumLoader { public static void load(Path file) { try (FileReader reader = new FileReader(file.toFile())) { Gson gson = new GsonBuilder().create(); - ConfigData configData = gson.fromJson(reader, ConfigData.class); + Configuration configuration = gson.fromJson(reader, Configuration.class); - apply(configData); + apply(configuration); } catch (IOException e) { OptionsProfilesMod.LOGGER.error("An error occurred when loading Sodium's configuration", e); } } - private static void apply(ConfigData configData) { - SodiumClientMod.options().quality.weatherQuality = SodiumGameOptions.GraphicsQuality.valueOf(configData.quality.weather_quality); - SodiumClientMod.options().quality.leavesQuality = SodiumGameOptions.GraphicsQuality.valueOf(configData.quality.leaves_quality); - SodiumClientMod.options().quality.enableVignette = configData.quality.enable_vignette; + private static void apply(Configuration configuration) { + SodiumClientMod.options().quality.weatherQuality = SodiumGameOptions.GraphicsQuality.valueOf(configuration.quality.weather_quality); + SodiumClientMod.options().quality.leavesQuality = SodiumGameOptions.GraphicsQuality.valueOf(configuration.quality.leaves_quality); + SodiumClientMod.options().quality.enableVignette = configuration.quality.enable_vignette; - SodiumClientMod.options().advanced.enableMemoryTracing = configData.advanced.enable_memory_tracing; - SodiumClientMod.options().advanced.useAdvancedStagingBuffers = configData.advanced.use_advanced_staging_buffers; - SodiumClientMod.options().advanced.cpuRenderAheadLimit = configData.advanced.cpu_render_ahead_limit; + SodiumClientMod.options().advanced.enableMemoryTracing = configuration.advanced.enable_memory_tracing; + SodiumClientMod.options().advanced.useAdvancedStagingBuffers = configuration.advanced.use_advanced_staging_buffers; + SodiumClientMod.options().advanced.cpuRenderAheadLimit = configuration.advanced.cpu_render_ahead_limit; - SodiumClientMod.options().performance.chunkBuilderThreads = configData.performance.chunk_builder_threads; - SodiumClientMod.options().performance.alwaysDeferChunkUpdates = configData.performance.always_defer_chunk_updates_v2; - SodiumClientMod.options().performance.animateOnlyVisibleTextures = configData.performance.animate_only_visible_textures; - SodiumClientMod.options().performance.useEntityCulling = configData.performance.use_entity_culling; - SodiumClientMod.options().performance.useFogOcclusion = configData.performance.use_fog_occlusion; - SodiumClientMod.options().performance.useBlockFaceCulling = configData.performance.use_block_face_culling; - SodiumClientMod.options().performance.useNoErrorGLContext = configData.performance.use_no_error_g_l_context; + SodiumClientMod.options().performance.chunkBuilderThreads = configuration.performance.chunk_builder_threads; + SodiumClientMod.options().performance.alwaysDeferChunkUpdates = configuration.performance.always_defer_chunk_updates_v2; + SodiumClientMod.options().performance.animateOnlyVisibleTextures = configuration.performance.animate_only_visible_textures; + SodiumClientMod.options().performance.useEntityCulling = configuration.performance.use_entity_culling; + SodiumClientMod.options().performance.useFogOcclusion = configuration.performance.use_fog_occlusion; + SodiumClientMod.options().performance.useBlockFaceCulling = configuration.performance.use_block_face_culling; + SodiumClientMod.options().performance.useNoErrorGLContext = configuration.performance.use_no_error_g_l_context; - SodiumClientMod.options().notifications.hasClearedDonationButton = configData.notifications.has_cleared_donation_button; - SodiumClientMod.options().notifications.hasSeenDonationPrompt = configData.notifications.has_seen_donation_prompt; + SodiumClientMod.options().notifications.hasClearedDonationButton = configuration.notifications.has_cleared_donation_button; + SodiumClientMod.options().notifications.hasSeenDonationPrompt = configuration.notifications.has_seen_donation_prompt; try { SodiumGameOptions.writeToDisk(SodiumClientMod.options()); @@ -49,7 +49,7 @@ public class SodiumConfigLoader { } } - public static class ConfigData { + public static class Configuration { public Quality quality; public Advanced advanced; public Performance performance;