81 lines
No EOL
3.7 KiB
Java
81 lines
No EOL
3.7 KiB
Java
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().notifications.hideDonationButton = configData.notifications.hide_donation_button;
|
|
|
|
SodiumClientMod.options().quality.cloudQuality = SodiumGameOptions.GraphicsQuality.valueOf(configData.quality.cloud_quality);
|
|
SodiumClientMod.options().quality.weatherQuality = SodiumGameOptions.GraphicsQuality.valueOf(configData.quality.weather_quality);
|
|
SodiumClientMod.options().quality.enableVignette = configData.quality.enable_vignette;
|
|
SodiumClientMod.options().quality.enableClouds = configData.quality.enable_clouds;
|
|
SodiumClientMod.options().quality.smoothLighting = SodiumGameOptions.LightingQuality.valueOf(configData.quality.smooth_lighting);
|
|
|
|
SodiumClientMod.options().advanced.useVertexArrayObjects = configData.advanced.use_vertex_array_objects;
|
|
SodiumClientMod.options().advanced.useChunkMultidraw = configData.advanced.use_advanced_staging_buffers;
|
|
SodiumClientMod.options().advanced.animateOnlyVisibleTextures = configData.advanced.animate_only_visible_textures;
|
|
SodiumClientMod.options().advanced.useEntityCulling = configData.advanced.use_entity_culling;
|
|
SodiumClientMod.options().advanced.useParticleCulling = configData.advanced.use_particle_culling;
|
|
SodiumClientMod.options().advanced.useFogOcclusion = configData.advanced.use_fog_occlusion;
|
|
SodiumClientMod.options().advanced.useCompactVertexFormat = configData.advanced.use_compact_vertex_format;
|
|
SodiumClientMod.options().advanced.useBlockFaceCulling = configData.advanced.use_block_face_culling;
|
|
SodiumClientMod.options().advanced.allowDirectMemoryAccess = configData.advanced.allow_direct_memory_access;
|
|
SodiumClientMod.options().advanced.ignoreDriverBlacklist = configData.advanced.ignore_driver_blacklist;
|
|
|
|
try {
|
|
SodiumClientMod.options().writeChanges();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static class ConfigData {
|
|
public Quality quality;
|
|
public Advanced advanced;
|
|
public Notifications notifications;
|
|
|
|
public static class Quality {
|
|
public String cloud_quality;
|
|
public String weather_quality;
|
|
public boolean enable_vignette;
|
|
public boolean enable_clouds;
|
|
public String smooth_lighting;
|
|
}
|
|
|
|
public static class Advanced {
|
|
public boolean use_vertex_array_objects;
|
|
public boolean use_advanced_staging_buffers;
|
|
public boolean animate_only_visible_textures;
|
|
public boolean use_entity_culling;
|
|
public boolean use_particle_culling;
|
|
public boolean use_fog_occlusion;
|
|
public boolean use_compact_vertex_format;
|
|
public boolean use_block_face_culling;
|
|
public boolean allow_direct_memory_access;
|
|
public boolean ignore_driver_blacklist;
|
|
}
|
|
|
|
public static class Notifications {
|
|
public boolean hide_donation_button;
|
|
}
|
|
}
|
|
} |