Better module display

This commit is contained in:
2025-05-06 23:46:26 +02:00
parent 7d649efa22
commit 984132991d
@@ -22,11 +22,14 @@ public class SaturnModule extends Element {
private static Property<Integer> barColor = theme.property("bar-color", new Property<Integer>(-1));
private static Property<Integer> settingsFg = theme.property("settings-fg", new Property<Integer>(-1));
private static Property<Integer> settingsBg = theme.property("settings-bg", new Property<Integer>(-16777216));
private static Property<Integer> iconFg = theme.property("icon-fg", new Property<Integer>(-1));
private static Property<Integer> cornerRadius = theme.property("corner-radius", new Property<Integer>(10));
private static Property<Integer> barWidth = theme.property("bar-width", new Property<Integer>(7));
private static Property<Integer> padding = theme.property("padding", new Property<Integer>(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());