From aad5111d45a66d943f0bcbe885ccb28249441d11 Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Tue, 26 Apr 2022 20:35:35 +0200 Subject: config system rewrite --- .../oneconfig/config/interfaces/Config.java | 101 +++++++++------------ 1 file changed, 43 insertions(+), 58 deletions(-) (limited to 'src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java') diff --git a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java index f0efcb0..c68162e 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java +++ b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java @@ -1,23 +1,20 @@ package io.polyfrost.oneconfig.config.interfaces; import com.google.gson.*; -import io.polyfrost.oneconfig.config.annotations.*; -import io.polyfrost.oneconfig.config.core.ConfigCore; -import io.polyfrost.oneconfig.config.data.ModData; +import io.polyfrost.oneconfig.config.annotations.Option; +import io.polyfrost.oneconfig.config.data.Mod; +import io.polyfrost.oneconfig.config.data.OptionPage; import io.polyfrost.oneconfig.config.profiles.Profiles; -import io.polyfrost.oneconfig.gui.elements.config.*; -import io.polyfrost.oneconfig.hud.HudCore; -import io.polyfrost.oneconfig.hud.interfaces.BasicHud; +import io.polyfrost.oneconfig.gui.elements.config.ConfigPage; +import io.polyfrost.oneconfig.gui.elements.config.ConfigSwitch; +import io.polyfrost.oneconfig.test.TestConfig; import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Map; -import java.util.Optional; +import java.util.*; public class Config { protected final String configFile; @@ -27,16 +24,16 @@ public class Config { * @param modData information about the mod * @param configFile file where config is stored */ - public Config(ModData modData, String configFile) { + public Config(Mod modData, String configFile) { this.configFile = configFile; init(modData); } - public void init(ModData modData) { + public void init(Mod mod) { if (Profiles.getProfileFile(configFile).exists()) load(); else save(); - modData.config = this; - ConfigCore.settings.put(modData, generateOptionList(this.getClass())); + mod.config = this; + generateOptionList(this.getClass(), mod.defaultPage); } /** @@ -62,63 +59,51 @@ public class Config { } /** - * Generate the option list for internal use only + * Generate the option list, for internal use only * * @param clazz target class - * @return list of options + * @param page page to add options too */ - protected ArrayList