diff --git a/src/main/java/org/saturnclient/ui2/components/SaturnModule.java b/src/main/java/org/saturnclient/ui2/components/SaturnModule.java index 4b68d35..1d7eae7 100644 --- a/src/main/java/org/saturnclient/ui2/components/SaturnModule.java +++ b/src/main/java/org/saturnclient/ui2/components/SaturnModule.java @@ -22,11 +22,14 @@ public class SaturnModule extends Element { private static Property barColor = theme.property("bar-color", new Property(-1)); private static Property settingsFg = theme.property("settings-fg", new Property(-1)); private static Property settingsBg = theme.property("settings-bg", new Property(-16777216)); + private static Property iconFg = theme.property("icon-fg", new Property(-1)); private static Property cornerRadius = theme.property("corner-radius", new Property(10)); private static Property barWidth = theme.property("bar-width", new Property(7)); private static Property padding = theme.property("padding", new Property(10)); + int settingsHeight = 26; + static { theme.propertyStateDefault("enabled", "bar-color", -7643914); theme.propertyStateDefault("hovering", "name-color", -7643914); @@ -44,13 +47,15 @@ public class SaturnModule extends Element { @Override public void render(RenderScope renderScope, RenderContext ctx) { + renderScope.setRenderLayer(RenderLayer::getGuiTextured); + if (mod.isEnabled()) { theme.setState("enabled"); } else { theme.setState(null); } - if (ctx.isHovering(barWidth.value + padding.value, height - padding.value - 16, width - barWidth.value - (padding.value * 2), 16)) { + if (ctx.isHovering(barWidth.value + padding.value, height - padding.value - settingsHeight, width - barWidth.value - (padding.value * 2), settingsHeight)) { theme.applyState("settings-hovering"); } else if (ctx.isHovering()) { theme.applyState("hovering"); @@ -62,28 +67,30 @@ public class SaturnModule extends Element { renderScope.drawRoundedRectangle(0, 0, barWidth.value * 2, height, cornerRadius.value, barColor.value); renderScope.disableScissor(); - renderScope.drawText(mod.getName(), padding.value + barWidth.value, padding.value, true, nameColor.value); + renderScope.drawTexture(mod.getIconTexture(), barWidth.value + padding.value, padding.value, 0, 0, 21, 21, iconFg.value); + renderScope.drawText(mod.getName(), (int) (padding.value * 1.5f) + 21 + barWidth.value, padding.value + ((23 - Fonts.getHeight()) / 2), true, nameColor.value); renderScope.matrices.push(); - renderScope.matrices.translate(padding.value + barWidth.value, 30, 0); + renderScope.matrices.translate(padding.value + barWidth.value, 42, 0); renderScope.matrices.scale(0.7f, 0.7f, 1.0f); renderScope.drawText(formatText(mod.getDescription(), width - barWidth.value - padding.value), 0, 0, false, descriptionColor.value); renderScope.matrices.pop(); + renderScope.drawRoundedRectangle(barWidth.value + padding.value, height - padding.value - settingsHeight, width - (padding.value * 2) - barWidth.value, settingsHeight, 10, settingsBg.value); + + renderScope.drawTexture(Textures.SETTINGS, barWidth.value + (padding.value * 2), height - padding.value - settingsHeight + 5, 0, 0, 16, 16); - renderScope.setRenderLayer(RenderLayer::getGuiTextured); - renderScope.drawRoundedRectangle(barWidth.value + padding.value, height - padding.value - 13, width - (padding.value * 2) - barWidth.value, 16, 10, settingsBg.value); - renderScope.drawTexture(Textures.SETTINGS, barWidth.value + (padding.value * 2), height - padding.value - 10, 0, 0, 10, 10, settingsFg.value); renderScope.matrices.push(); - renderScope.matrices.translate(barWidth.value + (padding.value * 2) + 14, height - padding.value - 10, 0); - renderScope.matrices.scale(0.7f, 0.7f, 1.0f); + renderScope.matrices.translate(barWidth.value + (padding.value * 2) + 20, height - padding.value - (settingsHeight / 2), 0); + renderScope.matrices.scale(0.7f, 0.7f, 1); + renderScope.matrices.translate(0, -(Fonts.getHeight() / 2) + 2, 0); renderScope.drawText("Settings", 0, 0, false, settingsFg.value); renderScope.matrices.pop(); } @Override public void click(int mouseX, int mouseY) { - if (Utils.isHovering(mouseX - (barWidth.value + padding.value), mouseY - (height - padding.value - 16), width - barWidth.value - (padding.value * 2), 16, scale)) { + if (Utils.isHovering(mouseX - (barWidth.value + padding.value), mouseY - (height - padding.value - settingsHeight), width - barWidth.value - (padding.value * 2), settingsHeight, scale)) { SaturnClient.client.setScreen(new ConfigEditor(mod.getConfig())); } else { mod.setEnabled(!mod.isEnabled());