diff --git a/src/main/java/org/saturnclient/ui2/components/Sidebar.java b/src/main/java/org/saturnclient/ui2/components/Sidebar.java index 5fb5f1f..c15822f 100644 --- a/src/main/java/org/saturnclient/ui2/components/Sidebar.java +++ b/src/main/java/org/saturnclient/ui2/components/Sidebar.java @@ -1,6 +1,7 @@ package org.saturnclient.ui2.components; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.SaturnClientConfig; import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.ThemeManager; import org.saturnclient.ui2.resources.Textures; @@ -9,9 +10,9 @@ import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.Utils; import org.saturnclient.ui2.screens.CloakMenu; +import org.saturnclient.ui2.screens.ConfigEditor; import org.saturnclient.ui2.screens.HatMenu; import org.saturnclient.ui2.screens.ModMenu; -import org.saturnclient.ui2.screens.SaturnConfigEditor; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; @@ -48,7 +49,7 @@ public class Sidebar extends Element { SaturnClient.client.setScreen(new ModMenu()); }, false), new Sidebar.SidebarComponent(Textures.SETTINGS, () -> { - SaturnClient.client.setScreen(new SaturnConfigEditor()); + SaturnClient.client.setScreen(new ConfigEditor(SaturnClientConfig.config)); }, false), new Sidebar.SidebarComponent(Textures.CLOAK, () -> { diff --git a/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java b/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java index 59990a4..e46fcb6 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java +++ b/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java @@ -38,7 +38,7 @@ public class ConfigEditor extends SaturnScreen { draw(scroll.dimensions(scrollWidth, 350).center(width, height)); - draw(new Sidebar(0, this::close).centerOffset(width, height, -(scrollWidth / 2 + 20), 0)); + draw(new Sidebar(1, this::close).centerOffset(width, height, -(scrollWidth / 2 + 20), 0)); } @SuppressWarnings("unchecked") diff --git a/src/main/java/org/saturnclient/ui2/screens/SaturnConfigEditor.java b/src/main/java/org/saturnclient/ui2/screens/SaturnConfigEditor.java deleted file mode 100644 index e2be0d3..0000000 --- a/src/main/java/org/saturnclient/ui2/screens/SaturnConfigEditor.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.saturnclient.ui2.screens; - -import java.util.Map; - -import org.saturnclient.saturnclient.SaturnClientConfig; -import org.saturnclient.saturnclient.config.Property; -import org.saturnclient.ui2.SaturnScreen; -import org.saturnclient.ui2.components.Sidebar; -import org.saturnclient.ui2.components.inputs.FloatInput; -import org.saturnclient.ui2.components.inputs.HexInput; -import org.saturnclient.ui2.components.inputs.IntInput; -import org.saturnclient.ui2.components.inputs.Select; -import org.saturnclient.ui2.components.inputs.Toggle; -import org.saturnclient.ui2.elements.Scroll; -import org.saturnclient.ui2.elements.Text; -import org.saturnclient.ui2.resources.Fonts; - -public class SaturnConfigEditor extends SaturnScreen { - public SaturnConfigEditor() { - super("Saturn Config Editor"); - } - - @Override - public void ui() { - int p = 10; - int g = 10; - - Scroll scroll = new Scroll(p); - - drawProperties(scroll, SaturnClientConfig.config.getProperties(), 0, 0, 480 + 10 + (g * 2)); - - int scrollWidth = 480 + 10 + (g * 2) + (p * 2); - - draw(scroll.dimensions(scrollWidth, 350).center(width, height)); - - draw(new Sidebar(1, this::close).centerOffset(width, height, -(scrollWidth / 2 + 20), 0)); - } - - @SuppressWarnings("unchecked") - private int drawProperties(Scroll configScroll, Map> properties, int row, int col, int w) { - for (Map.Entry> propEntry : properties.entrySet()) { - Property prop = propEntry.getValue(); - String propName = propEntry.getKey(); - boolean full = isFull(prop); - - // Always reset to col 0 if full-width component needs to be drawn mid-row - if (full && col != 0) { - col = 0; - row++; - } - - int modX = (w / 2) * col; // two-column layout - int modY = 25 * row; - - if (prop.getType() == Property.PropertyType.NAMESPACE) { - configScroll.draw( - new Text( - propName - ).position(Fonts.centerX(520, propName, Text.font.value), modY + 1).scale(0.7f)); - } else { - configScroll.draw( - new Text( - propName - ).position(modX, modY + 1).scale(0.7f)); - } - - switch (prop.getType()) { - case BOOLEAN: - configScroll.draw( - new Toggle((Property) prop) - .position(modX + (w / 2) - 40, modY) - .scale(0.5f)); - break; - - case HEX: - configScroll.draw(new HexInput((Property) prop, this).position(w / 2, modY)); - break; - - case INTEGER: - configScroll.draw(new IntInput((Property) prop).position(w / 2, modY)); - break; - - case FLOAT: - configScroll.draw(new FloatInput((Property) prop).position(w / 2, modY)); - break; - - case NAMESPACE: - Map> nestedProperties = (Map>) prop.value; - row = drawProperties(configScroll, nestedProperties, row + 1, col, w); - break; - - case SELECT: - configScroll.draw(new Select((Property) prop).position(w / 2, modY)); - - case STRING: - } - - if (full) { - row++; // full-width takes a whole row - col = 0; - } else { - col++; - if (col > 1) { // max 2 columns - col = 0; - row++; - } - } - } - - return row; - } - - public static boolean isFull(Property prop) { - switch (prop.getType()) { - case BOOLEAN: - return false; - default: - return true; - } - } -}