diff options
Diffstat (limited to 'src/main')
46 files changed, 439 insertions, 159 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/OneConfig.java b/src/main/java/io/polyfrost/oneconfig/OneConfig.java index 0f8fed9..f3668d8 100644 --- a/src/main/java/io/polyfrost/oneconfig/OneConfig.java +++ b/src/main/java/io/polyfrost/oneconfig/OneConfig.java @@ -52,17 +52,21 @@ public class OneConfig { @Mod.EventHandler public void onPostFMLInit(FMLPostInitializationEvent event) { + reloadModsList(); + } + + public static void reloadModsList() { loadedMods.addAll(ConfigCore.settings.keySet()); LinkedHashSet<ModData> modData = new LinkedHashSet<>(ConfigCore.settings.keySet()); - for(ModContainer mod : Loader.instance().getActiveModList()) { + for (ModContainer mod : Loader.instance().getActiveModList()) { ModMetadata metadata = mod.getMetadata(); loadedOtherMods.add(metadata); String author = metadata.authorList.size() > 0 ? metadata.authorList.get(0) : ""; ModData newMod = new ModData(metadata.name, ModType.OTHER, author, metadata.version); - if(newMod.name.equals("OneConfig") || newMod.name.equals("Minecraft Coder Pack") || newMod.name.equals("Forge Mod Loader") || newMod.name.equals("Minecraft Forge")) { + if (newMod.name.equals("Minecraft Coder Pack") || newMod.name.equals("Forge Mod Loader") || newMod.name.equals("Minecraft Forge")) { // TODO add oneconfig continue; } - if(modData.add(newMod)) loadedMods.add(newMod); // anti duplicate fix + if (modData.add(newMod)) loadedMods.add(newMod); // anti duplicate fix } } } diff --git a/src/main/java/io/polyfrost/oneconfig/config/OneConfigConfig.java b/src/main/java/io/polyfrost/oneconfig/config/OneConfigConfig.java index 3ebc876..bfb123a 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/OneConfigConfig.java +++ b/src/main/java/io/polyfrost/oneconfig/config/OneConfigConfig.java @@ -14,7 +14,7 @@ public class OneConfigConfig extends Config { public static String currentProfile = "Default Profile"; // TODO i dont know how this works so this is just gonna be here for now - public static final int TRANSPARENT = new Color(0,0,0,0).getRGB(); // Transparent // button sidebar normal + public static final int TRANSPARENT = new Color(0, 0, 0, 0).getRGB(); // Transparent // button sidebar normal public static final int GRAY_900 = new Color(13, 14, 15, 255).getRGB(); // Gray 900 public static final int GRAY_900_80 = new Color(13, 14, 15, 204).getRGB(); // Gray 900 80% @@ -43,12 +43,6 @@ public class OneConfigConfig extends Config { public static float CORNER_RADIUS = 12f; - - - - - - public OneConfigConfig() { super(null, "OneConfig.json"); } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/Button.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/Button.java index 449d297..3ba1078 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/Button.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/Button.java @@ -9,6 +9,10 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface Button { String name(); + String description() default ""; + String text() default "Button"; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/Category.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/Category.java index 05b5277..83b7af4 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/Category.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/Category.java @@ -9,5 +9,8 @@ import java.lang.annotation.Target; @Target(ElementType.TYPE) public @interface Category { String name(); + String description() default ""; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/ColorPicker.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/ColorPicker.java index feee4b4..6854bc2 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/ColorPicker.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/ColorPicker.java @@ -9,6 +9,10 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface ColorPicker { String name(); + String description() default ""; + boolean allowAlpha() default true; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/HudComponent.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/HudComponent.java index 5e1cd62..00a2e74 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/HudComponent.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/HudComponent.java @@ -9,5 +9,8 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface HudComponent { String name(); + String description() default ""; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/Selector.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/Selector.java index 8b476ab..00d88d8 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/Selector.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/Selector.java @@ -9,7 +9,12 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface Selector { String name(); + String description() default ""; + String[] options(); + int defaultSelection() default 0; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/Slider.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/Slider.java index cf8bfcd..ea19da5 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/Slider.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/Slider.java @@ -9,8 +9,14 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface Slider { String name(); + String description() default ""; + float min(); + float max(); + float precision(); + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/Switch.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/Switch.java index 19ec1db..8ff2f11 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/Switch.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/Switch.java @@ -9,5 +9,8 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface Switch { String name(); + String description() default ""; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/annotations/TextField.java b/src/main/java/io/polyfrost/oneconfig/config/annotations/TextField.java index 7b5837c..0df1426 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/annotations/TextField.java +++ b/src/main/java/io/polyfrost/oneconfig/config/annotations/TextField.java @@ -9,7 +9,12 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface TextField { String name(); + String description() default ""; + String placeholder() default ""; + boolean hideText() default false; + + int size() default 1; } diff --git a/src/main/java/io/polyfrost/oneconfig/config/data/ModType.java b/src/main/java/io/polyfrost/oneconfig/config/data/ModType.java index 8b6e7de..d2c5549 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/data/ModType.java +++ b/src/main/java/io/polyfrost/oneconfig/config/data/ModType.java @@ -1,10 +1,11 @@ package io.polyfrost.oneconfig.config.data; public enum ModType { - PVP, PERFORMANCE, + PVP, HUD, - QOL, + UTIL_QOL, HYPIXEL, + SKYBLOCK, OTHER } 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 049ad3e..f0efcb0 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java +++ b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Config.java @@ -13,6 +13,7 @@ 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; @@ -42,7 +43,7 @@ public class Config { * Save current config to file */ public void save() { - try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(Profiles.getProfileFile(configFile)), StandardCharsets.UTF_8))) { + try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(Files.newOutputStream(Profiles.getProfileFile(configFile).toPath()), StandardCharsets.UTF_8))) { writer.write(gson.toJson(this.getClass())); } catch (IOException e) { e.printStackTrace(); @@ -53,7 +54,7 @@ public class Config { * Load file and overwrite current values */ public void load() { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(Profiles.getProfileFile(configFile)), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(Profiles.getProfileFile(configFile).toPath()), StandardCharsets.UTF_8))) { deserializePart(new JsonParser().parse(reader).getAsJsonObject(), this.getClass()); } catch (IOException e) { e.printStackTrace(); @@ -71,31 +72,31 @@ public class Config { for (Class<?> innerClass : clazz.getClasses()) { if (innerClass.isAnnotationPresent(Category.class)) { Category category = innerClass.getAnnotation(Category.class); - options.add(new OConfigCategory(category.name(), category.description(), generateOptionList(innerClass))); + options.add(new OConfigCategory(category.name(), category.description(), generateOptionList(innerClass), category.size())); } } for (Field field : clazz.getFields()) { if (field.isAnnotationPresent(Button.class)) { Button button = field.getAnnotation(Button.class); - options.add(new OConfigButton(field, button.name(), button.description(), button.text())); + options.add(new OConfigButton(field, button.name(), button.description(), button.text(), button.size())); } else if (field.isAnnotationPresent(ColorPicker.class)) { ColorPicker colorPicker = field.getAnnotation(ColorPicker.class); - options.add(new OConfigColor(field, colorPicker.name(), colorPicker.description(), colorPicker.allowAlpha())); + options.add(new OConfigColor(field, colorPicker.name(), colorPicker.description(), colorPicker.allowAlpha(), colorPicker.size())); } else if (field.isAnnotationPresent(Selector.class)) { Selector selector = field.getAnnotation(Selector.class); - options.add(new OConfigSelector(field, selector.name(), selector.description(), selector.options(), selector.defaultSelection())); + options.add(new OConfigSelector(field, selector.name(), selector.description(), selector.options(), selector.defaultSelection(), selector.size())); } else if (field.isAnnotationPresent(Slider.class)) { Slider slider = field.getAnnotation(Slider.class); - options.add(new OConfigSlider(field, slider.name(), slider.description(), slider.min(), slider.max(), slider.precision())); + options.add(new OConfigSlider(field, slider.name(), slider.description(), slider.min(), slider.max(), slider.precision(), slider.size())); } else if (field.isAnnotationPresent(Switch.class)) { Switch aSwitch = field.getAnnotation(Switch.class); - options.add(new OConfigSwitch(field, aSwitch.name(), aSwitch.description())); + options.add(new OConfigSwitch(field, aSwitch.name(), aSwitch.description(), aSwitch.size())); } else if (field.isAnnotationPresent(TextField.class)) { TextField textField = field.getAnnotation(TextField.class); - options.add(new OConfigText(field, textField.name(), textField.description(), textField.placeholder(), textField.hideText())); + options.add(new OConfigText(field, textField.name(), textField.description(), textField.placeholder(), textField.hideText(), textField.size())); } else if (field.isAnnotationPresent(HudComponent.class)) { HudComponent hudComponent = field.getAnnotation(HudComponent.class); - options.add(new OConfigHud(field, hudComponent.name(), hudComponent.description())); + options.add(new OConfigHud(field, hudComponent.name(), hudComponent.description(), hudComponent.size())); try { Object hud = field.get(BasicHud.class); HudCore.huds.add((BasicHud) hud); diff --git a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Option.java b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Option.java index 99cf656..bd9c034 100644 --- a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Option.java +++ b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Option.java @@ -7,6 +7,7 @@ public abstract class Option { protected final Field field; protected final String name; protected final String description; + public final int size; /** * Initialize option @@ -14,11 +15,13 @@ public abstract class Option { * @param field variable attached to option (null for category) * @param name name of option * @param description description of option + * @param size size of option, 0 for single column, 1 for double. */ - public Option(Field field, String name, String description) { + public Option(Field field, String name, String description, int size) { this.field = field; this.name = name; this.description = description; + this.size = size; if (field != null) field.setAccessible(true); } @@ -46,13 +49,13 @@ public abstract class Option { /** * Function that gets called when drawing option * + * @param vg NanoVG context * @param x x position * @param y y position - * @param width width of menu * @param mouseX x position of mouse * @param mouseY y position of mouse */ - public abstract void draw(int x, int y, int width, int mouseX, int mouseY); + public abstract void draw(long vg, int x, int y, int mouseX, int mouseY); /** * Function that gets called when mouse is clicked diff --git a/src/main/java/io/polyfrost/oneconfig/config/interfaces/Size.java b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Size.java new file mode 100644 index 0000000..4802ec5 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/config/interfaces/Size.java @@ -0,0 +1,6 @@ +package io.polyfrost.oneconfig.config.interfaces; + +public enum Size { + SINGLE_COLUMN, // A single column, 480x32 + DOUBLE_COLUMN // A double column, 992x32 +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/HudGui.java b/src/main/java/io/polyfrost/oneconfig/gui/HudGui.java index 12b9755..32e401b 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/HudGui.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/HudGui.java @@ -3,7 +3,6 @@ package io.polyfrost.oneconfig.gui; import io.polyfrost.oneconfig.hud.HudCore; import io.polyfrost.oneconfig.hud.interfaces.BasicHud; import io.polyfrost.oneconfig.lwjgl.RenderManager; -import io.polyfrost.oneconfig.test.TestHud; import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.GuiScreen; import org.lwjgl.input.Keyboard; diff --git a/src/main/java/io/polyfrost/oneconfig/gui/OneConfigGui.java b/src/main/java/io/polyfrost/oneconfig/gui/OneConfigGui.java index 6f8aeea..fd0ef47 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/OneConfigGui.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/OneConfigGui.java @@ -12,7 +12,8 @@ import net.minecraft.client.gui.GuiScreen; import org.jetbrains.annotations.NotNull; import org.lwjgl.input.Keyboard; -import static org.lwjgl.nanovg.NanoVG.*; +import static org.lwjgl.nanovg.NanoVG.nvgResetScissor; +import static org.lwjgl.nanovg.NanoVG.nvgScissor; public class OneConfigGui extends GuiScreen { public static OneConfigGui INSTANCE; @@ -33,13 +34,15 @@ public class OneConfigGui extends GuiScreen { public OneConfigGui() { INSTANCE = this; } + @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { super.drawScreen(mouseX, mouseY, partialTicks); + long start = System.nanoTime(); RenderManager.setupAndDraw((vg) -> { - if(currentPage == null) currentPage = new HomePage(); + if (currentPage == null) currentPage = new HomePage(); //nvgScale(vg, 0.5f, 0.5f); - if(OneConfigConfig.ROUNDED_CORNERS) { + if (OneConfigConfig.ROUNDED_CORNERS) { RenderManager.drawRoundedRect(vg, 544, 140, 1056, 800, OneConfigConfig.GRAY_800, OneConfigConfig.CORNER_RADIUS_WIN); RenderManager.drawRoundedRect(vg, 320, 140, 244, 800, OneConfigConfig.GRAY_900_80, OneConfigConfig.CORNER_RADIUS_WIN); RenderManager.drawRect(vg, 544, 140, 20, 800, OneConfigConfig.GRAY_800); @@ -48,21 +51,22 @@ public class OneConfigGui extends GuiScreen { // L; } - RenderManager.drawLine(vg, 544, 212, 1600, 212, 1, OneConfigConfig.GRAY_700); + RenderManager.drawLine(vg, 544, 212, 1600, 212, 1, OneConfigConfig.GRAY_700); RenderManager.drawLine(vg, 544, 140, 544, 940, 1, OneConfigConfig.GRAY_700); RenderManager.drawImage(vg, "/assets/oneconfig/textures/icon.png", x + 19, y + 19, 42, 42); RenderManager.drawString(vg, "OneConfig", x + 69, y + 32, OneConfigConfig.WHITE, 18f, Fonts.INTER_BOLD); // added half line height to center text RenderManager.drawString(vg, "By Polyfrost", x + 69, y + 51, OneConfigConfig.WHITE, 12f, Fonts.INTER_REGULAR); + textInputField.draw(vg, x + 400, y + 200); //element.setColorPalette(0); sideBar.draw(vg, x, y); nvgScissor(vg, x + 224, y + 72, 1056, 728); - if(prevPage != null) { + if (prevPage != null) { pageProgress = MathUtils.easeInOutCirc(50, pageProgress, 832 - pageProgress, 220); prevPage.draw(vg, (int) (x - pageProgress), y + 72); RenderManager.drawLine(vg, (int) (x - pageProgress + 1055), y + 72, (int) (x - pageProgress + 1057), y + 800, 2, OneConfigConfig.GRAY_700); // TODO might remove this currentPage.draw(vg, (int) (x - pageProgress + 1056), y + 72); - if(pageProgress > 828f) { + if (pageProgress > 828f) { prevPage = null; pageProgress = -224f; } @@ -70,14 +74,19 @@ public class OneConfigGui extends GuiScreen { currentPage.draw(vg, (int) (x - pageProgress), y + 72); } nvgResetScissor(vg); + long end = System.nanoTime() - start; + String s = (" draw: " + end / 1000000f + "ms"); RenderManager.drawString(vg, currentPage.getTitle(), x + 336, y + 36, OneConfigConfig.WHITE_90, 32f, Fonts.INTER_SEMIBOLD); + RenderManager.drawString(vg, s, x + 1170, y + 790, OneConfigConfig.GRAY_300, 10f, Fonts.INTER_MEDIUM); + - //textInputField.draw(vg, 792, 548); - //btn.draw(vg, 976, 870); + //textInputField.draw(vg, 792, 548); + //btn.draw(vg, 976, 870); //RenderManager.drawGradientRoundedRect(vg, 100, 100, 500, 100, OneConfigConfig.BLUE_600, OneConfigConfig.BLUE_500, OneConfigConfig.CORNER_RADIUS_WIN); }); + } protected void keyTyped(char key, int keyCode) { @@ -91,7 +100,8 @@ public class OneConfigGui extends GuiScreen { } public void openPage(@NotNull Page page) { - if(prevPage == null) { + currentPage.finishUpAndClose(); + if (prevPage == null) { prevPage = currentPage; } currentPage = page; diff --git a/src/main/java/io/polyfrost/oneconfig/gui/SideBar.java b/src/main/java/io/polyfrost/oneconfig/gui/SideBar.java index fd8f92e..f6ec15f 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/SideBar.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/SideBar.java @@ -4,12 +4,11 @@ import io.polyfrost.oneconfig.config.OneConfigConfig; import io.polyfrost.oneconfig.gui.elements.BasicButton; import io.polyfrost.oneconfig.gui.pages.HomePage; import io.polyfrost.oneconfig.gui.pages.ModsPage; +import io.polyfrost.oneconfig.gui.pages.PerformanceModsPage; import io.polyfrost.oneconfig.lwjgl.RenderManager; import io.polyfrost.oneconfig.lwjgl.font.Fonts; import io.polyfrost.oneconfig.utils.MathUtils; -import io.polyfrost.oneconfig.utils.TickDelay; import net.minecraft.client.Minecraft; -import scala.collection.parallel.ParIterableLike; import java.util.ArrayList; import java.util.List; @@ -23,7 +22,7 @@ public class SideBar { btnList.add(new BasicButton(192, 36, "Dashboard", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT, new HomePage())); btnList.add(new BasicButton(192, 36, "Global Search", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT)); btnList.add(new BasicButton(192, 36, "Mods", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT, new ModsPage())); - btnList.add(new BasicButton(192, 36, "Performance", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT)); + btnList.add(new BasicButton(192, 36, "Performance Mods", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT, new PerformanceModsPage())); btnList.add(new BasicButton(192, 36, "Profiles", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT)); btnList.add(new BasicButton(192, 36, "Updates", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT)); btnList.add(new BasicButton(192, 36, "Screenshots", "/assets/oneconfig/textures/share.png", null, -3, BasicButton.ALIGNMENT_LEFT)); @@ -60,13 +59,10 @@ public class SideBar { } if (btn.isClicked()) { - if(i < 520) targetY = btn.y; + if (i < 520) targetY = btn.y; } } - - - } } |
