Added text inteface

This commit is contained in:
2026-03-08 02:30:35 +01:00
parent 7eb705d802
commit 48494cd857
4 changed files with 32 additions and 7 deletions
@@ -1,8 +1,12 @@
package org.saturnclient.common.provider; package org.saturnclient.common.provider;
import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.asset.IdentifierRef;
import org.saturnclient.common.ref.render.TextRef;
public interface RefConstructorProvider { public interface RefConstructorProvider {
public abstract IdentifierRef identifier(String namespace, String path); public abstract IdentifierRef identifier(String namespace, String path);
public abstract IdentifierRef identifier(String fullPath); public abstract IdentifierRef identifier(String fullPath);
public abstract TextRef text(String text);
} }
@@ -10,8 +10,6 @@ public interface SaturnProvider {
public abstract boolean isKeyPressed(int key); public abstract boolean isKeyPressed(int key);
public abstract int getWidth(String text, int font);
public abstract void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi); public abstract void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi);
public abstract String getKeyName(int key); public abstract String getKeyName(int key);
@@ -0,0 +1,14 @@
package org.saturnclient.common.ref.render;
import org.saturnclient.common.provider.Providers;
import org.saturnclient.common.ref.asset.IdentifierRef;
public interface TextRef {
public TextRef withFont(IdentifierRef font);
public int getWidth();
public static TextRef literal(String text) {
return Providers.refConstructor.text(text);
}
}
@@ -1,7 +1,7 @@
package org.saturnclient.ui.resources; package org.saturnclient.ui.resources;
import org.saturnclient.common.provider.Providers;
import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.asset.IdentifierRef;
import org.saturnclient.common.ref.render.TextRef;
public class Fonts { public class Fonts {
public static final IdentifierRef INTER = IdentifierRef.ofSaturn("inter"); public static final IdentifierRef INTER = IdentifierRef.ofSaturn("inter");
@@ -19,16 +19,25 @@ public class Fonts {
} }
} }
public static TextRef setFont(String text, IdentifierRef font) {
return TextRef.literal(text).withFont(font);
}
public static TextRef setFont(String text, int font) {
return TextRef.literal(text).withFont(getFont(font));
}
public static int getWidth(String text, int font) { public static int getWidth(String text, int font) {
int w = 0; int w = 0;
for (String line : text.split("\n")) { for (String line : text.split("\n")) {
w = Math.max(w, Providers.saturn.getWidth(line, font)); w = Math.max(w, getWidth(line, setFont(text, font).getWidth()));
} }
if (font == 0) { if (font == 0) {
return w * 2; w *= 2;
} else {
return w;
} }
return w;
} }
public static int getHeight() { public static int getHeight() {