feat: iris support (#25)
This commit is contained in:
parent
0d5b6be82f
commit
3b91880e41
3 changed files with 44 additions and 2 deletions
|
|
@ -25,5 +25,6 @@ dependencies {
|
||||||
// Mod implementations
|
// Mod implementations
|
||||||
modImplementation "maven.modrinth:sodium:mc1.21.4-0.6.3-fabric" // Sodium
|
modImplementation "maven.modrinth:sodium:mc1.21.4-0.6.3-fabric" // Sodium
|
||||||
modImplementation "maven.modrinth:sodium-extra:mc1.21.4-0.6.1+fabric" // Sodium Extra
|
modImplementation "maven.modrinth:sodium-extra:mc1.21.4-0.6.1+fabric" // Sodium Extra
|
||||||
|
modImplementation "maven.modrinth:iris:1.8.5+1.21.4-fabric" // Iris
|
||||||
modImplementation "maven.modrinth:distanthorizons:2.2.1-a-1.21.1" // Distant Horizons
|
modImplementation "maven.modrinth:distanthorizons:2.2.1-a-1.21.1" // Distant Horizons
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.axolotlmaid.optionsprofiles.profiles;
|
||||||
|
|
||||||
import com.axolotlmaid.optionsprofiles.OptionsProfilesMod;
|
import com.axolotlmaid.optionsprofiles.OptionsProfilesMod;
|
||||||
import com.axolotlmaid.optionsprofiles.profiles.loaders.DistantHorizonsLoader;
|
import com.axolotlmaid.optionsprofiles.profiles.loaders.DistantHorizonsLoader;
|
||||||
|
import com.axolotlmaid.optionsprofiles.profiles.loaders.IrisLoader;
|
||||||
import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumExtraLoader;
|
import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumExtraLoader;
|
||||||
import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumLoader;
|
import com.axolotlmaid.optionsprofiles.profiles.loaders.SodiumLoader;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
@ -22,6 +23,7 @@ public class Profiles {
|
||||||
public static final Path OPTIFINE_OPTIONS_FILE = Paths.get("optionsof.txt");
|
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_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 SODIUM_EXTRA_OPTIONS_FILE = Paths.get("config/sodium-extra-options.json");
|
||||||
|
public static final Path IRIS_OPTIONS_FILE = Paths.get("config/iris.properties");
|
||||||
public static final Path DISTANT_HORIZONS_OPTIONS_FILE = Paths.get("config/DistantHorizons.toml");
|
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
|
// This function goes through every profile and updates / adds the configuration file if it doesn't exist
|
||||||
|
|
@ -123,6 +125,7 @@ public class Profiles {
|
||||||
copyOptionFile(profile, OPTIFINE_OPTIONS_FILE);
|
copyOptionFile(profile, OPTIFINE_OPTIONS_FILE);
|
||||||
copyOptionFile(profile, SODIUM_OPTIONS_FILE);
|
copyOptionFile(profile, SODIUM_OPTIONS_FILE);
|
||||||
copyOptionFile(profile, SODIUM_EXTRA_OPTIONS_FILE);
|
copyOptionFile(profile, SODIUM_EXTRA_OPTIONS_FILE);
|
||||||
|
copyOptionFile(profile, IRIS_OPTIONS_FILE);
|
||||||
copyOptionFile(profile, DISTANT_HORIZONS_OPTIONS_FILE);
|
copyOptionFile(profile, DISTANT_HORIZONS_OPTIONS_FILE);
|
||||||
|
|
||||||
if (!overwriting) {
|
if (!overwriting) {
|
||||||
|
|
@ -155,6 +158,7 @@ public class Profiles {
|
||||||
Optional.of(OPTIFINE_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
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_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
||||||
Optional.of(SODIUM_EXTRA_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
Optional.of(SODIUM_EXTRA_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
||||||
|
Optional.of(IRIS_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
||||||
Optional.of(DISTANT_HORIZONS_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
|
// Check if the original option file and the profile option file have the same content
|
||||||
|
|
@ -281,6 +285,7 @@ public class Profiles {
|
||||||
loadOptionFile(profileName, OPTIFINE_OPTIONS_FILE);
|
loadOptionFile(profileName, OPTIFINE_OPTIONS_FILE);
|
||||||
loadOptionFile(profileName, SODIUM_OPTIONS_FILE, SodiumLoader::load);
|
loadOptionFile(profileName, SODIUM_OPTIONS_FILE, SodiumLoader::load);
|
||||||
loadOptionFile(profileName, SODIUM_EXTRA_OPTIONS_FILE, SodiumExtraLoader::load);
|
loadOptionFile(profileName, SODIUM_EXTRA_OPTIONS_FILE, SodiumExtraLoader::load);
|
||||||
|
loadOptionFile(profileName, IRIS_OPTIONS_FILE, IrisLoader::load);
|
||||||
|
|
||||||
loadOptionFile(profileName, DISTANT_HORIZONS_OPTIONS_FILE); // Overwrite / load original Disant Horizons option file
|
loadOptionFile(profileName, DISTANT_HORIZONS_OPTIONS_FILE); // Overwrite / load original Disant Horizons option file
|
||||||
loadOptionFile(profileName, DISTANT_HORIZONS_OPTIONS_FILE, DistantHorizonsLoader::load); // Tell Distant Horizons mod to reload configuration
|
loadOptionFile(profileName, DISTANT_HORIZONS_OPTIONS_FILE, DistantHorizonsLoader::load); // Tell Distant Horizons mod to reload configuration
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.axolotlmaid.optionsprofiles.profiles.loaders;
|
||||||
|
|
||||||
|
import com.axolotlmaid.optionsprofiles.OptionsProfilesMod;
|
||||||
|
import net.irisshaders.iris.Iris;
|
||||||
|
import net.irisshaders.iris.api.v0.IrisApi;
|
||||||
|
import net.irisshaders.iris.gui.option.IrisVideoSettings;
|
||||||
|
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class IrisLoader {
|
||||||
|
public static void load(Path file) {
|
||||||
|
try (FileReader reader = new FileReader(file.toFile())) {
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.load(reader);
|
||||||
|
|
||||||
|
apply(properties);
|
||||||
|
} catch (IOException e) {
|
||||||
|
OptionsProfilesMod.LOGGER.error("An error occurred when reading and loading Iris's configuration", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void apply(Properties properties) {
|
||||||
|
Iris.getIrisConfig().setShaderPackName(properties.getProperty("shaderPack"));
|
||||||
|
Iris.getIrisConfig().setDebugEnabled("true".equals(properties.getProperty("enableDebugOptions")));
|
||||||
|
IrisApi.getInstance().getConfig().setShadersEnabledAndApply("true".equals(properties.getProperty("enableShaders")));
|
||||||
|
|
||||||
|
try {
|
||||||
|
Iris.getIrisConfig().save();
|
||||||
|
} catch (IOException e) {
|
||||||
|
OptionsProfilesMod.LOGGER.error("An error occurred when loading Sodium's configuration", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue