Added text inteface
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user