custom font and mods

This commit is contained in:
2025-03-17 23:19:23 +01:00
parent 0dcf8585e4
commit 42bb2b534b
8 changed files with 70 additions and 22 deletions
@@ -43,6 +43,7 @@ public class Cloaks {
public static void setCloak(String uuid, String cloakName) {
SaturnSocket.setCloak(cloakName);
setCloakSilent(uuid, cloakName);
SaturnClient.LOGGER.info("Cloak set to " + cloakName);
}
/**
@@ -8,6 +8,7 @@ import org.saturnclient.ui.animations.FadeIn;
import org.saturnclient.ui.widgets.SaturnClickableSprite;
import org.saturnclient.ui.widgets.SaturnSprite;
import org.saturnclient.ui.widgets.SaturnImage;
import org.saturnclient.ui.widgets.SaturnScroll;
import net.minecraft.text.Text;
@@ -43,35 +44,39 @@ public class CloaksMenu extends SaturnUi {
int cloakWidth = 32;
int cloakHeight = 70;
int modX = rectX + 15;
int modY = rectY + 10;
int modX = 0;
int modY = 0;
int col = 0;
for (String cloak : Cloaks.availableCloaks) {
draw(new SaturnImage(Textures.getCloakPreview(cloak))
.setX(modX)
.setY(modY)
.setWidth(cloakWidth)
.setHeight(cloakHeight));
SaturnScroll modsScroll = new SaturnScroll();
draw(new SaturnClickableSprite(Textures.BUTTON_BORDER, () -> {
for (String cloak : Cloaks.availableCloaks) {
modsScroll.draw(new SaturnClickableSprite(Textures.BUTTON_BORDER, () -> {
Cloaks.setCloak(SaturnSocket.uuid, cloak);
})
.setColor(10526880)
.setX(modX - 3)
.setY(modY - 3)
.setX(modX)
.setY(modY)
.setWidth(cloakWidth + 6)
.setHeight(cloakHeight + 6));
modsScroll.draw(new SaturnImage(Textures.getCloakPreview(cloak))
.setX(modX + 3)
.setY(modY + 3)
.setWidth(cloakWidth)
.setHeight(cloakHeight));
col++;
if (col < 6) {
modX += cloakWidth + 21;
} else {
modX = rectX + 15;
modX = 0;
modY += cloakHeight + 20;
col = 0;
}
}
draw(modsScroll.setX(rectX + 17).setY(rectY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10));
}
}
@@ -1,11 +1,16 @@
package org.saturnclient.saturnclient.menus;
import org.saturnclient.saturnclient.SaturnClient;
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.widgets.SaturnClickableImage;
import org.saturnclient.ui.widgets.SaturnScroll;
import org.saturnclient.ui.widgets.SaturnSprite;
import org.saturnclient.ui.widgets.SaturnText;
import net.minecraft.text.Text;
@@ -26,7 +31,7 @@ public class SettingsMenu extends SaturnUi {
.setY(modsY)
.setWidth(rectWidth)
.setHeight(rectHeight)
.setAnimations(new FadeIn(1)));
.setAnimations(new Slide(1, 10)));
int tabsX = (width - 43) / 2;
int tabsY = modsY - 17;
@@ -36,7 +41,7 @@ public class SettingsMenu extends SaturnUi {
.setY(tabsY)
.setWidth(43)
.setHeight(15)
.setAnimations(new FadeIn(1)));
.setAnimations(new Slide(1, 10)));
int tabSize = 9;
tabsX = (width - tabSize) / 2;
@@ -73,14 +78,19 @@ public class SettingsMenu extends SaturnUi {
SaturnScroll modsScroll = new SaturnScroll();
for (int i = 0; i < 30; i++) {
for (SaturnMod mod : ModManager.MODS) {
modsScroll.draw(new SaturnClickableImage(Textures.MOD, (m) -> {
})
.setSelected(mod.isEnabled())
.setX(modX)
.setY(modY)
.setWidth(86)
.setHeight(20));
modsScroll.draw(new SaturnText(mod.getName()).setX(modX + 27)
.setY(modY + (21 - SaturnClient.textRenderer.fontHeight) / 2));
col++;
if (col < 3) {
@@ -92,6 +102,7 @@ public class SettingsMenu extends SaturnUi {
}
}
draw(modsScroll.setX(modsX + 17).setY(modsY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10));
draw(modsScroll.setX(modsX + 17).setY(modsY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10)
.setAnimations(new Slide(1, 10)));
}
}
@@ -9,6 +9,9 @@ import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
@@ -50,7 +53,8 @@ public class SaturnButton extends SaturnWidget {
if (alpha != 0.0f) {
int i = this.active ? 16777215 : 10526880;
context.drawText(minecraftClient.textRenderer, this.text,
context.drawText(minecraftClient.textRenderer,
Text.literal(text).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))),
this.x + ((this.width - minecraftClient.textRenderer.getWidth(this.text)) / 2),
this.y + ((this.height - minecraftClient.textRenderer.fontHeight + 1) / 2),
hovering ? hoverColor : i | MathHelper.ceil(this.alpha * 255.0F) << 24, false);
@@ -8,6 +8,9 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
public class SaturnInputBox extends SaturnWidget {
@@ -69,7 +72,7 @@ public class SaturnInputBox extends SaturnWidget {
String visibleText = text.substring(scrollOffset);
int textColor = focused ? 0xFFFFFF : 0xAAAAAA;
context.drawText(textRenderer, visibleText, x + 5, y + 5, textColor, false);
context.drawText(textRenderer, Text.literal(visibleText).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))), x + 5, y + 5, textColor, false);
if (focused) {
int cursorX = x + 5 + textRenderer.getWidth(visibleText.substring(0, cursorPosition - scrollOffset));
@@ -51,6 +51,8 @@ public class SaturnScroll extends SaturnWidget {
@Override
public void click(int mouseX, int mouseY) {
mouseX = mouseX - x;
mouseY = mouseY - y;
for (SaturnWidget child : children) {
boolean isMouseInside = child.x < mouseX && child.x + child.width > mouseX
&& child.y < mouseY && child.y + child.height > mouseY;
@@ -2,12 +2,16 @@ package org.saturnclient.ui.widgets;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.SaturnWidget;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
public class SaturnText extends SaturnWidget {
private String text;
private int color = ColorHelper.getWhite(1.0f);
public SaturnText(String text) {
this.text = text;
@@ -15,8 +19,15 @@ public class SaturnText extends SaturnWidget {
this.height = SaturnClient.textRenderer.fontHeight;
}
public SaturnText(String text, int color) {
this(text);
this.color = color;
}
@Override
public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) {
context.drawText(MinecraftClient.getInstance().textRenderer, text, x, y, ColorHelper.getWhite(alpha), false);
context.drawText(SaturnClient.textRenderer,
Text.literal(text).setStyle(Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))), x, y,
color | MathHelper.ceil(this.alpha * 255.0F) << 24, false);
}
}