Fix issues, clean up, and add Sodium Extra loader (#20)
This commit is contained in:
parent
7c40794992
commit
2f650bb6d4
2 changed files with 176 additions and 86 deletions
|
|
@ -1,86 +0,0 @@
|
||||||
package com.axolotlmaid.optionsprofiles.profiles;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
import me.jellysquid.mods.sodium.client.SodiumClientMod;
|
|
||||||
import me.jellysquid.mods.sodium.client.gui.SodiumGameOptions;
|
|
||||||
|
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
|
|
||||||
public class SodiumConfigLoader {
|
|
||||||
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);
|
|
||||||
|
|
||||||
apply(configData);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
SodiumClientMod.options().advanced.arenaMemoryAllocator = SodiumGameOptions.ArenaMemoryAllocator.valueOf(configData.advanced.arena_memory_allocator);
|
|
||||||
SodiumClientMod.options().advanced.allowDirectMemoryAccess = configData.advanced.allow_direct_memory_access;
|
|
||||||
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().performance.chunkBuilderThreads = configData.performance.chunk_builder_threads;
|
|
||||||
SodiumClientMod.options().performance.alwaysDeferChunkUpdates = configData.performance.always_defer_chunk_updates;
|
|
||||||
SodiumClientMod.options().performance.animateOnlyVisibleTextures = configData.performance.animate_only_visible_textures;
|
|
||||||
SodiumClientMod.options().performance.useEntityCulling = configData.performance.use_entity_culling;
|
|
||||||
SodiumClientMod.options().performance.useParticleCulling = configData.performance.use_particle_culling;
|
|
||||||
SodiumClientMod.options().performance.useFogOcclusion = configData.performance.use_fog_occlusion;
|
|
||||||
SodiumClientMod.options().performance.useBlockFaceCulling = configData.performance.use_block_face_culling;
|
|
||||||
|
|
||||||
SodiumClientMod.options().notifications.hideDonationButton = configData.notifications.hide_donation_button;
|
|
||||||
|
|
||||||
try {
|
|
||||||
SodiumClientMod.options().writeChanges();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ConfigData {
|
|
||||||
public Quality quality;
|
|
||||||
public Advanced advanced;
|
|
||||||
public Performance performance;
|
|
||||||
public Notifications notifications;
|
|
||||||
|
|
||||||
public static class Quality {
|
|
||||||
public String weather_quality;
|
|
||||||
public String leaves_quality;
|
|
||||||
public boolean enable_vignette;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Advanced {
|
|
||||||
public String arena_memory_allocator;
|
|
||||||
public boolean allow_direct_memory_access;
|
|
||||||
public boolean enable_memory_tracing;
|
|
||||||
public boolean use_advanced_staging_buffers;
|
|
||||||
public int cpu_render_ahead_limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Performance {
|
|
||||||
public int chunk_builder_threads;
|
|
||||||
public boolean always_defer_chunk_updates;
|
|
||||||
public boolean animate_only_visible_textures;
|
|
||||||
public boolean use_entity_culling;
|
|
||||||
public boolean use_particle_culling;
|
|
||||||
public boolean use_fog_occlusion;
|
|
||||||
public boolean use_block_face_culling;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Notifications {
|
|
||||||
public boolean hide_donation_button;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,176 @@
|
||||||
|
package com.axolotlmaid.optionsprofiles.profiles.loaders;
|
||||||
|
|
||||||
|
import com.axolotlmaid.optionsprofiles.OptionsProfilesMod;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
import me.flashyreese.mods.sodiumextra.client.SodiumExtraClientMod;
|
||||||
|
import me.flashyreese.mods.sodiumextra.client.gui.SodiumExtraGameOptions;
|
||||||
|
import me.jellysquid.mods.sodium.client.SodiumClientMod;
|
||||||
|
import me.jellysquid.mods.sodium.client.gui.SodiumGameOptions;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class SodiumExtraLoader {
|
||||||
|
public static void load(Path file) {
|
||||||
|
try (FileReader reader = new FileReader(file.toFile())) {
|
||||||
|
Gson gson = new GsonBuilder().create();
|
||||||
|
Configuration configuration = gson.fromJson(reader, Configuration.class);
|
||||||
|
|
||||||
|
apply(configuration);
|
||||||
|
} catch (IOException e) {
|
||||||
|
OptionsProfilesMod.LOGGER.error("An error occurred when loading Sodium's configuration", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = 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 = 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 = 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.useLinearFlatColorBlender = configuration.render_settings.use_linear_flat_color_blender;
|
||||||
|
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.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(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.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.useFastRandom = configuration.extra_settings.use_fast_random;
|
||||||
|
|
||||||
|
SodiumExtraClientMod.options().notificationSettings.hideRSORecommendation = configuration.notification_settings.hide_r_s_o_recommendation;
|
||||||
|
|
||||||
|
SodiumExtraClientMod.options().superSecretSettings.fetchSodiumExtraCrowdinTranslations = configuration.super_secret_settings.fetch_sodium_extra_crowdin_translations;
|
||||||
|
SodiumExtraClientMod.options().superSecretSettings.sodiumExtraCrowdinProjectIdentifier = configuration.super_secret_settings.sodium_extra_crowdin_project_identifier;
|
||||||
|
SodiumExtraClientMod.options().superSecretSettings.fetchSodiumCrowdinTranslations = configuration.super_secret_settings.fetch_sodium_crowdin_translations;
|
||||||
|
SodiumExtraClientMod.options().superSecretSettings.sodiumCrowdinProjectIdentifier = configuration.super_secret_settings.sodium_crowdin_project_identifier;
|
||||||
|
|
||||||
|
SodiumExtraClientMod.options().writeChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Configuration {
|
||||||
|
public AnimationSettings animation_settings;
|
||||||
|
public ParticleSettings particle_settings;
|
||||||
|
public DetailSettings detail_settings;
|
||||||
|
public RenderSettings render_settings;
|
||||||
|
public ExtraSettings extra_settings;
|
||||||
|
public NotificationSettings notification_settings;
|
||||||
|
public SuperSecretSettings super_secret_settings;
|
||||||
|
|
||||||
|
public static class AnimationSettings {
|
||||||
|
public boolean animation;
|
||||||
|
public boolean water;
|
||||||
|
public boolean lava;
|
||||||
|
public boolean fire;
|
||||||
|
public boolean portal;
|
||||||
|
public boolean block_animations;
|
||||||
|
public boolean sculk_sensor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ParticleSettings {
|
||||||
|
public boolean particles;
|
||||||
|
public boolean rain_splash;
|
||||||
|
public boolean block_break;
|
||||||
|
public boolean block_breaking;
|
||||||
|
public Map<ResourceLocation, Boolean> other;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class DetailSettings {
|
||||||
|
public boolean sky;
|
||||||
|
public boolean sun_moon;
|
||||||
|
public boolean stars;
|
||||||
|
public boolean rain_snow;
|
||||||
|
public boolean biome_colors;
|
||||||
|
public boolean sky_colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class RenderSettings {
|
||||||
|
public int fog_distance;
|
||||||
|
public int fog_start;
|
||||||
|
public boolean multi_dimension_fog_control;
|
||||||
|
public Map<ResourceLocation, Integer> dimensionFogDistance;
|
||||||
|
public boolean use_linear_flat_color_blender;
|
||||||
|
public boolean light_updates;
|
||||||
|
public boolean item_frame;
|
||||||
|
public boolean armor_stand;
|
||||||
|
public boolean painting;
|
||||||
|
public boolean piston;
|
||||||
|
public boolean beacon_beam;
|
||||||
|
public boolean enchanting_table_book;
|
||||||
|
public boolean item_frame_name_tag;
|
||||||
|
public boolean player_name_tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ExtraSettings {
|
||||||
|
public String overlay_corner;
|
||||||
|
public String text_contrast;
|
||||||
|
public boolean show_fps;
|
||||||
|
public boolean show_f_p_s_extended;
|
||||||
|
public boolean show_coords;
|
||||||
|
public boolean reduce_resolution_on_mac;
|
||||||
|
public boolean use_adaptive_sync;
|
||||||
|
public int cloud_height;
|
||||||
|
public boolean toasts;
|
||||||
|
public boolean advancement_toast;
|
||||||
|
public boolean recipe_toast;
|
||||||
|
public boolean system_toast;
|
||||||
|
public boolean tutorial_toast;
|
||||||
|
public boolean instant_sneak;
|
||||||
|
public boolean prevent_shaders;
|
||||||
|
public boolean use_fast_random;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class NotificationSettings {
|
||||||
|
public boolean hide_r_s_o_recommendation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SuperSecretSettings {
|
||||||
|
public boolean fetch_sodium_extra_crowdin_translations;
|
||||||
|
public String sodium_extra_crowdin_project_identifier;
|
||||||
|
public boolean fetch_sodium_crowdin_translations;
|
||||||
|
public String sodium_crowdin_project_identifier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue