From 5e7ed4381e78ae1c74f8061b606a2929bc3c46bb Mon Sep 17 00:00:00 2001 From: Leo dev Date: Wed, 26 Mar 2025 17:50:38 +0100 Subject: [PATCH] hexidecimal --- .../saturnclient/SaturnClient.java | 25 ++- .../saturnclient/config/ConfigManager.java | 9 + .../saturnclient/config/Property.java | 52 +++-- .../saturnclient/menus/ConfigEditor.java | 21 ++ .../saturnclient/menus/ModMenu.java | 2 +- .../menus/SaturnConfigEditor.java | 204 ++++++++++++++++++ .../saturnmods/mods/ArmorDisplay.java | 7 +- .../saturnmods/mods/Coordinates.java | 9 +- .../ui/components/SaturnFloat.java | 4 +- .../saturnclient/ui/components/SaturnHex.java | 146 +++++++++++++ .../ui/components/SaturnInteger.java | 4 +- .../ui/components/SaturnModComp.java | 6 +- .../ui/components/SaturnString.java | 4 +- .../ui/components/SaturnToggle.java | 2 +- .../saturnclient/ui/widgets/SaturnButton.java | 3 +- .../ui/widgets/SaturnClickableImage.java | 2 +- .../ui/widgets/SaturnClickableSprite.java | 2 +- .../ui/widgets/SaturnImageButton.java | 3 +- 18 files changed, 475 insertions(+), 30 deletions(-) create mode 100644 src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java create mode 100644 src/main/java/org/saturnclient/ui/components/SaturnHex.java diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 52038d3..46ed962 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -7,6 +7,7 @@ import net.minecraft.util.math.ColorHelper; import org.saturnclient.saturnclient.auth.SaturnSocket; import org.saturnclient.saturnclient.cloaks.Cloaks; import org.saturnclient.saturnclient.config.ConfigManager; +import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.event.KeyInputHandler; import org.saturnclient.saturnmods.ModManager; import org.saturnclient.ui.SaturnAnimation; @@ -23,13 +24,31 @@ public class SaturnClient implements ModInitializer { public static final String MOD_ID = "saturnclient"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); - public static int COLOR = ColorHelper.getArgb(255, 251, 60, 79); + + public static ConfigManager config = new ConfigManager("Saturn Client"); + + public static Property COLOR = config.property( + "Primary color", + new Property( + ColorHelper.getArgb(255, 251, 60, 79), + Property.PropertyType.HEX + ) + ); + + public static Property NORMAL = config.property( + "Normal color", + new Property( + ColorHelper.getArgb(255, 182, 182, 182), + Property.PropertyType.HEX + ) + ); + + // public static int NORMAL = ColorHelper.getArgb(255, 182, 182, 182); public static int WHITE = ColorHelper.getArgb(255, 255, 255, 255); - public static int NORMAL = ColorHelper.getArgb(255, 182, 182, 182); public static TextRenderer textRenderer = null; public static int getWhite(float alpha) { - return ((int) (alpha * 255) << 24) | (NORMAL & 0x00FFFFFF); + return ((int) (alpha * 255) << 24) | (NORMAL.value & 0x00FFFFFF); } public static SaturnAnimation[] getAnimations() { diff --git a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java index 5badceb..0e26aca 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java +++ b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java @@ -41,6 +41,7 @@ public class ConfigManager { SaturnClient.LOGGER.info("Starting to load config..."); if (!configFile.exists()) { configFile.createNewFile(); + Files.write(configFile.toPath(), "{}".getBytes()); } JsonObject jsonObject = JsonParser.parseString( @@ -97,6 +98,9 @@ public class ConfigManager { case STRING: ((Property) p).value = c.getAsString(); break; + case HEX: + ((Property) p).value = c.getAsInt(); + break; default: break; } @@ -152,6 +156,11 @@ public class ConfigManager { (String) property.value ); break; + case HEX: + propertyValue = new JsonPrimitive( + (Integer) property.value + ); + break; default: SaturnClient.LOGGER.warn( "Unknown property type for: " + propertyName diff --git a/src/main/java/org/saturnclient/saturnclient/config/Property.java b/src/main/java/org/saturnclient/saturnclient/config/Property.java index f944751..a03e2e9 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/Property.java +++ b/src/main/java/org/saturnclient/saturnclient/config/Property.java @@ -10,12 +10,28 @@ public class Property { INTEGER, FLOAT, STRING, + HEX, } public T value; + private PropertyType type; public Property(T value) { this.value = value; + if (value instanceof Boolean) { + type = PropertyType.BOOLEAN; + } else if (value instanceof Integer) { + type = PropertyType.INTEGER; + } else if (value instanceof Float) { + type = PropertyType.FLOAT; + } else if (value instanceof String) { + type = PropertyType.STRING; + } + } + + public Property(T value, PropertyType type) { + this.value = value; + this.type = type; } public boolean getBool() { @@ -46,20 +62,26 @@ public class Property { throw new IllegalStateException("Property does not contain a string"); } - public PropertyType getType() { - if (value instanceof Boolean) { - return PropertyType.BOOLEAN; - } - if (value instanceof Integer) { - return PropertyType.INTEGER; - } - if (value instanceof Float) { - return PropertyType.FLOAT; - } + public int getHexString() { if (value instanceof String) { - return PropertyType.STRING; + String str = (String) value; + if (str.startsWith("0x") || str.startsWith("0X")) { + try { + return Integer.parseInt(str.substring(2), 16); + } catch (NumberFormatException e) { + throw new IllegalStateException( + "Invalid hexadecimal integer format" + ); + } + } } - return null; + throw new IllegalStateException( + "Property does not contain a valid hex integer" + ); + } + + public PropertyType getType() { + return type; } public boolean matchesJson(JsonElement element) { @@ -69,6 +91,12 @@ public class Property { if (value instanceof Integer && primitive.isNumber()) return true; if (value instanceof Float && primitive.isNumber()) return true; if (value instanceof String && primitive.isString()) return true; + + // Check if JSON string represents a valid hex integer + if (value instanceof String && primitive.isString()) { + String str = primitive.getAsString(); + return str.matches("0x[0-9A-Fa-f]+"); + } } return false; } diff --git a/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java b/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java index 36c3378..636487f 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/ConfigEditor.java @@ -8,6 +8,7 @@ import org.saturnclient.saturnclient.config.Property; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.Textures; import org.saturnclient.ui.components.SaturnFloat; +import org.saturnclient.ui.components.SaturnHex; import org.saturnclient.ui.components.SaturnInteger; import org.saturnclient.ui.components.SaturnString; import org.saturnclient.ui.components.SaturnToggle; @@ -151,6 +152,26 @@ public class ConfigEditor extends SaturnUi { ) ); break; + case HEX: + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX) + .setY(modY) + .setScale(0.8f) + ); + + configScroll.draw( + new SaturnHex( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70 + ) + ); + break; } if (full) { diff --git a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java index adfea19..e6d0859 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/ModMenu.java @@ -50,7 +50,7 @@ public class ModMenu extends SaturnUi { tabsX = (width - tabSize) / 2; draw( new SaturnClickableImage(Textures.SETTINGS, () -> { - System.out.println("Pressed"); + client.setScreen(new SaturnConfigEditor()); }) .setX(tabsX) .setY(tabsY + 3) diff --git a/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java new file mode 100644 index 0000000..0eaf73e --- /dev/null +++ b/src/main/java/org/saturnclient/saturnclient/menus/SaturnConfigEditor.java @@ -0,0 +1,204 @@ +package org.saturnclient.saturnclient.menus; + +import java.util.Map; +import net.minecraft.text.Text; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.ui.SaturnUi; +import org.saturnclient.ui.Textures; +import org.saturnclient.ui.components.SaturnFloat; +import org.saturnclient.ui.components.SaturnHex; +import org.saturnclient.ui.components.SaturnInteger; +import org.saturnclient.ui.components.SaturnString; +import org.saturnclient.ui.components.SaturnToggle; +import org.saturnclient.ui.widgets.SaturnScroll; +import org.saturnclient.ui.widgets.SaturnSprite; +import org.saturnclient.ui.widgets.SaturnText; + +public class SaturnConfigEditor extends SaturnUi { + + public SaturnConfigEditor() { + super(Text.of("Config editor")); + } + + @SuppressWarnings("unchecked") + @Override + protected void init() { + int rectWidth = 330; + int rectHeight = 228; + int rectX = (width - rectWidth) / 2; + int rectY = (height - rectHeight + 15) / 2; + + draw( + new SaturnSprite(Textures.SETTINGS_BG) + .setX(rectX) + .setY(rectY) + .setWidth(rectWidth) + .setHeight(rectHeight) + .setAnimations(SaturnClient.getAnimations()) + ); + + int tabsX = (width - 43) / 2; + int tabsY = rectY - 17; + + draw( + new SaturnSprite(Textures.TABS) + .setX(tabsX) + .setY(tabsY) + .setWidth(43) + .setHeight(15) + .setAnimations(SaturnClient.getAnimations()) + ); + + SaturnScroll configScroll = new SaturnScroll(); + + int row = 0; + int col = 0; + + for (Map.Entry> propEntry : SaturnClient.config + .getProperties() + .entrySet()) { + Property prop = propEntry.getValue(); + String propName = propEntry.getKey(); + + boolean full = isFull(prop); + + if (full && col > 0) { + col = 0; + row++; + } + + int modX = ((rectWidth / 2) - 17) * col; + int modY = 14 * row; + + switch (prop.getType()) { + case BOOLEAN: + configScroll.draw( + new SaturnToggle((Property) prop) + .setX(modX) + .setY(modY) + ); + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX + 18) + .setY(modY) + .setScale(0.8f) + ); + break; + case INTEGER: + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX) + .setY(modY) + .setScale(0.8f) + ); + + configScroll.draw( + new SaturnInteger( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70 + ) + ); + break; + case FLOAT: + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX) + .setY(modY) + .setScale(0.8f) + ); + + configScroll.draw( + new SaturnFloat( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70 + ) + ); + break; + case STRING: + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX) + .setY(modY) + .setScale(0.8f) + ); + + configScroll.draw( + new SaturnString( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70 + ) + ); + break; + case HEX: + configScroll.draw( + new SaturnText( + propName.substring(0, 1).toUpperCase() + + propName.substring(1) + ) + .setX(modX) + .setY(modY) + .setScale(0.8f) + ); + + configScroll.draw( + new SaturnHex( + (Property) prop, + (rectWidth / 2) - 17, + modY, + 70 + ) + ); + break; + } + + if (full) { + row++; + } else { + col++; + if (col > 1) { + col = 0; + row++; + } + } + } + + draw( + configScroll + .setX(rectX + 17) + .setY(rectY + 10) + .setWidth(rectWidth - 17) + .setHeight(rectHeight - 10) + .setAnimations(SaturnClient.getAnimations()) + ); + + super.init(); + } + + public static boolean isFull(Property prop) { + switch (prop.getType()) { + case BOOLEAN: + return false; + default: + return true; + } + } +} diff --git a/src/main/java/org/saturnclient/saturnmods/mods/ArmorDisplay.java b/src/main/java/org/saturnclient/saturnmods/mods/ArmorDisplay.java index 0986b6d..8099d23 100644 --- a/src/main/java/org/saturnclient/saturnmods/mods/ArmorDisplay.java +++ b/src/main/java/org/saturnclient/saturnmods/mods/ArmorDisplay.java @@ -31,6 +31,11 @@ public class ArmorDisplay implements SaturnMod, HudMod { 75 ); + public static Property fgColor = config.property( + "Foreground color", + new Property<>(SaturnClient.WHITE, Property.PropertyType.HEX) + ); + private boolean renderItem(DrawContext context, ItemStack item, int y) { if (item.isEmpty()) { return false; @@ -52,7 +57,7 @@ public class ArmorDisplay implements SaturnMod, HudMod { "" + (item.getMaxDamage() - item.getDamage()), 0, 0, - SaturnClient.WHITE, + fgColor.value, false ); diff --git a/src/main/java/org/saturnclient/saturnmods/mods/Coordinates.java b/src/main/java/org/saturnclient/saturnmods/mods/Coordinates.java index 4ef3a08..be434ce 100644 --- a/src/main/java/org/saturnclient/saturnmods/mods/Coordinates.java +++ b/src/main/java/org/saturnclient/saturnmods/mods/Coordinates.java @@ -21,6 +21,11 @@ public class Coordinates implements SaturnMod, HudMod { ); private static ModDimensions dimensions = new ModDimensions(config); + public static Property fgColor = config.property( + "Foreground color", + new Property<>(SaturnClient.WHITE, Property.PropertyType.HEX) + ); + public Coordinates() {} public void renderDummy(DrawContext context) { @@ -33,7 +38,7 @@ public class Coordinates implements SaturnMod, HudMod { playerX + " " + playerY + " " + playerZ, 0, 0, - SaturnClient.WHITE, + fgColor.value, false ); @@ -54,7 +59,7 @@ public class Coordinates implements SaturnMod, HudMod { playerX + " " + playerY + " " + playerZ, 0, 0, - SaturnClient.WHITE, + fgColor.value, false ); } diff --git a/src/main/java/org/saturnclient/ui/components/SaturnFloat.java b/src/main/java/org/saturnclient/ui/components/SaturnFloat.java index 4388038..544f6de 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnFloat.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnFloat.java @@ -108,7 +108,9 @@ public class SaturnFloat extends SaturnWidget { 0, this.width, this.height, - focused ? SaturnClient.COLOR : SaturnClient.getWhite(this.alpha) + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha) ); int scrollOffset = getScrollOffset(); diff --git a/src/main/java/org/saturnclient/ui/components/SaturnHex.java b/src/main/java/org/saturnclient/ui/components/SaturnHex.java new file mode 100644 index 0000000..c60ea73 --- /dev/null +++ b/src/main/java/org/saturnclient/ui/components/SaturnHex.java @@ -0,0 +1,146 @@ +package org.saturnclient.ui.components; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderLayer; +import org.lwjgl.glfw.GLFW; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.ui.SaturnUi; +import org.saturnclient.ui.SaturnWidget; +import org.saturnclient.ui.Textures; + +public class SaturnHex extends SaturnWidget { + + private String text = "#"; // Always starts with '#' + public Property prop; + public int cursorPosition = 1; // After '#' + private final TextRenderer textRenderer = MinecraftClient.getInstance() + .textRenderer; + + public SaturnHex(Property prop, int x, int y, int width) { + this.x = x; + this.y = y; + this.width = width; + this.prop = prop; + this.text = intToHex(prop.value); // Convert stored int to hex + this.height = textRenderer.fontHeight + 4; + this.scale = 0.8f; + } + + @Override + public void click(int mouseX, int mouseY) { + cursorPosition = Math.min(7, text.length()); // Keep cursor inside hex length + } + + @Override + public void charTyped(char chr) { + if (isHexChar(chr) && text.length() < 7) { // Limit to 6 hex digits + '#' + text = + text.substring(0, cursorPosition) + + chr + + text.substring(cursorPosition); + cursorPosition++; + + if (text.length() == 7) { // Only update value when full hex is entered + prop.value = hexToInt(text); + } + } + } + + @Override + public void keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == GLFW.GLFW_KEY_BACKSPACE && cursorPosition > 1) { // Prevent deleting '#' + text = + text.substring(0, cursorPosition - 1) + + text.substring(cursorPosition); + cursorPosition--; + } else if (keyCode == GLFW.GLFW_KEY_LEFT && cursorPosition > 1) { + cursorPosition--; + } else if ( + keyCode == GLFW.GLFW_KEY_RIGHT && cursorPosition < text.length() + ) { + cursorPosition++; + } + + if (text.length() == 1) { // Reset if empty (keep '#') + text = "#"; + cursorPosition = 1; + } + + if (text.length() == 7) { // Update only when valid hex + prop.value = hexToInt(text); + } + } + + @Override + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawGuiTexture( + RenderLayer::getGuiTextured, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha) + ); + + int textColor = focused ? 0xFFFFFF : 0xAAAAAA; + context.drawText( + textRenderer, + SaturnUi.text(text), + 2, + 2, + textColor, + false + ); + + if (focused) { + int cursorX = + 2 + + textRenderer.getWidth( + SaturnUi.text(text.substring(0, cursorPosition)) + ); + context.fill( + cursorX, + 2, + cursorX + 1, + textRenderer.fontHeight + 4, + 0xFFFFFFFF + ); + } + } + + public void clearText() { + text = "#"; + cursorPosition = 1; + prop.value = 0xFFFFFFFF; // Default white + } + + private boolean isHexChar(char chr) { + return ( + (chr >= '0' && chr <= '9') || + (chr >= 'A' && chr <= 'F') || + (chr >= 'a' && chr <= 'f') + ); + } + + public static int hexToInt(String hex) { + hex = hex.replace("#", ""); + int rgb = Integer.parseInt(hex, 16); + return (0xFF << 24) | rgb; + } + + public static String intToHex(int color) { + int rgb = color & 0xFFFFFF; + return String.format("#%06X", rgb).toLowerCase(); + } +} diff --git a/src/main/java/org/saturnclient/ui/components/SaturnInteger.java b/src/main/java/org/saturnclient/ui/components/SaturnInteger.java index 9664a9f..ff3bf28 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnInteger.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnInteger.java @@ -108,7 +108,9 @@ public class SaturnInteger extends SaturnWidget { 0, this.width, this.height, - focused ? SaturnClient.COLOR : SaturnClient.getWhite(this.alpha) + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha) ); int scrollOffset = getScrollOffset(); diff --git a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java index ca14cd8..c38b881 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java @@ -30,7 +30,7 @@ public class SaturnModComp extends SaturnWidget { boolean hovering_settings = settingsHovering(mouseX, mouseY); int color = !hovering_settings && (enabled || hovering) - ? SaturnClient.COLOR + ? SaturnClient.COLOR.value : SaturnClient.getWhite(alpha); int size = 12; @@ -47,7 +47,7 @@ public class SaturnModComp extends SaturnWidget { 20, 86, 20, - SaturnClient.COLOR + SaturnClient.COLOR.value ); } @@ -100,7 +100,7 @@ public class SaturnModComp extends SaturnWidget { 7, 7, hovering_settings - ? SaturnClient.COLOR + ? SaturnClient.COLOR.value : SaturnClient.getWhite(alpha) ); } diff --git a/src/main/java/org/saturnclient/ui/components/SaturnString.java b/src/main/java/org/saturnclient/ui/components/SaturnString.java index 69590b3..cfb980d 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnString.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnString.java @@ -92,7 +92,9 @@ public class SaturnString extends SaturnWidget { 0, this.width, this.height, - focused ? SaturnClient.COLOR : SaturnClient.getWhite(this.alpha) + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha) ); int scrollOffset = getScrollOffset(); diff --git a/src/main/java/org/saturnclient/ui/components/SaturnToggle.java b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java index 08cfa88..6e45f0d 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnToggle.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java @@ -25,7 +25,7 @@ public class SaturnToggle extends SaturnWidget { int mouseY ) { int color = prop.value - ? SaturnClient.COLOR + ? SaturnClient.COLOR.value : SaturnClient.getWhite(alpha); int w = 13; int h = 6; diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index 38b284b..fda753c 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -40,7 +40,8 @@ public class SaturnButton extends SaturnWidget { MinecraftClient minecraftClient = MinecraftClient.getInstance(); int hoverColor = - ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); + ((int) (alpha * 255) << 24) | + (SaturnClient.COLOR.value & 0x00FFFFFF); if (background) { RenderSystem.setShaderTexture(0, Textures.BUTTON); diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java index 3f1d871..823a741 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java @@ -14,7 +14,7 @@ public class SaturnClickableImage extends SaturnWidget { public boolean selected = false; public Consumer onPress; public int color = SaturnClient.getWhite(1.0f); - public int hoverColor = SaturnClient.COLOR; + public int hoverColor = SaturnClient.COLOR.value; public SaturnClickableImage( Identifier texture, diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java index 4f85715..8a79060 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java @@ -14,7 +14,7 @@ public class SaturnClickableSprite extends SaturnWidget { public boolean selected = false; public Consumer onPress; public int color = SaturnClient.getWhite(1.0f); - public int hoverColor = SaturnClient.COLOR; + public int hoverColor = SaturnClient.COLOR.value; public SaturnClickableSprite( Identifier sprite, diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java index 8220f19..f187f91 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java @@ -47,7 +47,8 @@ public class SaturnImageButton extends SaturnButton { super.render(context, hovering, mouseX, mouseY); int hoverColor = - ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); + ((int) (alpha * 255) << 24) | + (SaturnClient.COLOR.value & 0x00FFFFFF); context.drawTexture( RenderLayer::getGuiTextured,