diff --git a/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java b/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java index ceff729..a9c9ca6 100644 --- a/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java +++ b/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java @@ -1,8 +1,12 @@ package org.saturnclient.common.provider; import org.saturnclient.common.ref.asset.IdentifierRef; +import org.saturnclient.common.ref.render.TextRef; public interface RefConstructorProvider { public abstract IdentifierRef identifier(String namespace, String path); + public abstract IdentifierRef identifier(String fullPath); + + public abstract TextRef text(String text); } diff --git a/src/main/java/org/saturnclient/common/provider/SaturnProvider.java b/src/main/java/org/saturnclient/common/provider/SaturnProvider.java index 7162c81..d093e2c 100644 --- a/src/main/java/org/saturnclient/common/provider/SaturnProvider.java +++ b/src/main/java/org/saturnclient/common/provider/SaturnProvider.java @@ -10,8 +10,6 @@ public interface SaturnProvider { public abstract boolean isKeyPressed(int key); - public abstract int getWidth(String text, int font); - public abstract void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi); public abstract String getKeyName(int key); diff --git a/src/main/java/org/saturnclient/common/ref/render/TextRef.java b/src/main/java/org/saturnclient/common/ref/render/TextRef.java new file mode 100644 index 0000000..8c72b92 --- /dev/null +++ b/src/main/java/org/saturnclient/common/ref/render/TextRef.java @@ -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); + } +} diff --git a/src/main/java/org/saturnclient/ui/resources/Fonts.java b/src/main/java/org/saturnclient/ui/resources/Fonts.java index c0dd19a..e624bdf 100644 --- a/src/main/java/org/saturnclient/ui/resources/Fonts.java +++ b/src/main/java/org/saturnclient/ui/resources/Fonts.java @@ -1,7 +1,7 @@ package org.saturnclient.ui.resources; -import org.saturnclient.common.provider.Providers; import org.saturnclient.common.ref.asset.IdentifierRef; +import org.saturnclient.common.ref.render.TextRef; public class Fonts { 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) { int w = 0; 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) { - return w * 2; - } else { - return w; + w *= 2; } + + return w; } public static int getHeight() {