settings icon in the mods menu (not functional)

This commit is contained in:
2025-03-19 16:08:35 +01:00
parent 9a00ec73ad
commit 130560d5c1
5 changed files with 24 additions and 112 deletions
@@ -24,8 +24,8 @@ public class MainMenu extends SaturnUi {
int buttonHeight = 25;
draw(
new SaturnButton("Settings", () -> {
client.setScreen(new SettingsMenu());
new SaturnButton("Mods", () -> {
client.setScreen(new ModMenu());
}).setX((width - buttonWidth) / 2).setY((height - buttonHeight) /
2).setWidth(buttonWidth)
.setHeight(buttonHeight)
@@ -1,105 +0,0 @@
package org.saturnclient.saturnclient.menus;
import org.saturnclient.saturnmods.ModManager;
import org.saturnclient.saturnmods.SaturnMod;
import org.saturnclient.ui.SaturnUi;
import org.saturnclient.ui.Textures;
import org.saturnclient.ui.animations.FadeIn;
import org.saturnclient.ui.animations.Slide;
import org.saturnclient.ui.components.SaturnModComp;
import org.saturnclient.ui.widgets.SaturnClickableImage;
import org.saturnclient.ui.widgets.SaturnScroll;
import org.saturnclient.ui.widgets.SaturnSprite;
import net.minecraft.text.Text;
public class SettingsMenu extends SaturnUi {
public SettingsMenu() {
super(Text.literal("Settings"));
}
@Override
protected void init() {
int rectWidth = 330;
int rectHeight = 228;
int modsX = (width - rectWidth) / 2;
int modsY = (height - rectHeight + 15) / 2;
draw(new SaturnSprite(Textures.SETTINGS_BG)
.setX(modsX)
.setY(modsY)
.setWidth(rectWidth)
.setHeight(rectHeight)
.setAnimations(new Slide(1, 10)));
int tabsX = (width - 43) / 2;
int tabsY = modsY - 17;
draw(new SaturnSprite(Textures.TABS)
.setX(tabsX)
.setY(tabsY)
.setWidth(43)
.setHeight(15)
.setAnimations(new Slide(1, 10)));
int tabSize = 9;
tabsX = (width - tabSize) / 2;
draw(new SaturnClickableImage(Textures.SETTINGS_TAB, () -> {
System.out.println("Pressed");
})
.setX(tabsX)
.setY(tabsY + 3)
.setWidth(tabSize)
.setHeight(tabSize)
.setAnimations(new FadeIn(2))
.setAnimations(new Slide(1, 10)));
draw(new SaturnClickableImage(Textures.MODS_TAB, () -> {
System.out.println("Pressed");
})
.setX(tabsX - 12)
.setY(tabsY + 3)
.setWidth(tabSize)
.setHeight(tabSize)
.setAnimations(new FadeIn(2))
.setAnimations(new Slide(1, 10)));
draw(new SaturnClickableImage(Textures.SEARCH, () -> {
System.out.println("Pressed");
})
.setX(tabsX + 12)
.setY(tabsY + 3)
.setWidth(tabSize)
.setHeight(tabSize)
.setAnimations(new FadeIn(2))
.setAnimations(new Slide(1, 10)));
int modX = 0;
int modY = 0;
int col = 0;
SaturnScroll modsScroll = new SaturnScroll();
for (SaturnMod mod : ModManager.MODS) {
modsScroll.draw(new SaturnModComp(mod)
.setX(modX)
.setY(modY)
.setWidth(86)
.setHeight(20));
col++;
if (col < 3) {
modX += 86 + 18;
} else {
modX = 0;
modY += 20 + 20;
col = 0;
}
}
draw(modsScroll.setX(modsX + 17).setY(modsY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10)
.setAnimations(new Slide(1, 10)));
super.init();
}
}
@@ -3,14 +3,13 @@ package org.saturnclient.ui;
import net.minecraft.util.Identifier;
public class Textures {
public static final Identifier SETTINGS = Identifier.of("saturnclient", "textures/gui/components/settings.png");
public static final Identifier COSMETICS = Identifier.of("saturnclient", "textures/gui/components/cosmetics.png");
public static final Identifier HUD_ICON = Identifier.of("saturnclient", "textures/gui/components/hud.png");
public static final Identifier SEARCH = Identifier.of("saturnclient", "textures/gui/components/search.png");
public static final Identifier CLOSE = Identifier.of("saturnclient", "textures/gui/components/close.png");
public static final Identifier MODS_TAB = Identifier.of("saturnclient", "textures/gui/components/mods_tab.png");
public static final Identifier SETTINGS_TAB = Identifier.of("saturnclient",
"textures/gui/components/settings_tab.png");
public static final Identifier SETTINGS = Identifier.of("saturnclient",
"textures/gui/components/settings.png");
public static final Identifier LOGO = Identifier.of("saturnclient", "textures/logo/logo.png");
public static final Identifier LOGO_TEXT = Identifier.of("saturnclient", "textures/logo/text.png");
@@ -21,7 +21,9 @@ public class SaturnModComp extends SaturnWidget {
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
boolean enabled = mod.isEnabled();
int color = enabled || hovering ? SaturnClient.COLOR : ColorHelper.getWhite(alpha);
boolean hovering_settings = settingsHovering(mouseX, mouseY);
int color = !hovering_settings && (enabled || hovering) ? SaturnClient.COLOR : ColorHelper.getWhite(alpha);
int size = 12;
@@ -40,10 +42,26 @@ public class SaturnModComp extends SaturnWidget {
context.drawText(SaturnClient.textRenderer, SaturnUi.text(mod.getName()), x + 20,
y + (21 - SaturnClient.textRenderer.fontHeight) / 2,
color, false);
context.drawTexture(RenderLayer::getGuiTextured, Textures.SETTINGS, x + 77,
y + 11, 0, 0, 7, 7, 7, 7, hovering_settings ? SaturnClient.COLOR : ColorHelper.getWhite(alpha));
}
@Override
public void click(int mouseX, int mouseY) {
if (settingsHovering(mouseX, mouseY)) {
// TODO: make a config thingy, and implement it on the mods
} else {
mod.setEnabled(!mod.isEnabled());
}
}
public boolean settingsHovering(int mouseX, int mouseY) {
int sX = x + 77;
int sY = y + 11;
int size = 7;
return sX < mouseX && sX + size > mouseX
&& sY < mouseY && sY + size > mouseY;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB