summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/Minecraft/UI/UIText.java
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-04-17 12:12:01 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-04-17 12:12:01 -0400
commit180aad05decc7eefa87e4e45d6747c48f40e5361 (patch)
tree51545197f7c94b4022acab880772c9f4fc65db0e /src/main/java/net/tylermurphy/Minecraft/UI/UIText.java
downloadminecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.gz
minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.bz2
minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.zip
Diffstat (limited to 'src/main/java/net/tylermurphy/Minecraft/UI/UIText.java')
-rwxr-xr-xsrc/main/java/net/tylermurphy/Minecraft/UI/UIText.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/Minecraft/UI/UIText.java b/src/main/java/net/tylermurphy/Minecraft/UI/UIText.java
new file mode 100755
index 0000000..fa2e0bc
--- /dev/null
+++ b/src/main/java/net/tylermurphy/Minecraft/UI/UIText.java
@@ -0,0 +1,110 @@
+package net.tylermurphy.Minecraft.UI;
+
+import net.tylermurphy.Minecraft.Render.Data.Mesh;
+import org.joml.Vector3f;
+
+import net.tylermurphy.Minecraft.UI.Text.TextMaster;
+import net.tylermurphy.Minecraft.UI.Text.TextMeshData;
+
+public class UIText extends UIComponent{
+
+ private String textString;
+ private final float fontSize;
+
+ private final Vector3f colour = new Vector3f(255f, 255f, 255f);
+
+ private final float lineMaxSize;
+ private int numberOfLines;
+ private double maxX;
+
+ private final UIFont font;
+
+ private final boolean centerText;
+ private boolean stretchBackdrop = false;
+
+ private Mesh mesh;
+
+ public UIText(String text, float fontSize, UIFont font, float maxLineLength ,boolean centered) {
+ this.textString = text;
+ this.fontSize = fontSize;
+ this.font = font;
+ this.lineMaxSize = maxLineLength;
+ this.centerText = centered;
+ TextMeshData data = font.loadText(this);
+ this.mesh = new Mesh(data.getVertexPositions().length).store(data.getVertexPositions(), 2).store(data.getTextureCoords(), 2).finish();
+ TextMaster.loadText(this);
+ }
+
+ public void remove() {
+ TextMaster.removeText(this);
+ }
+
+ public UIFont getFont() {
+ return font;
+ }
+
+ public void setColour(float r, float g, float b) {
+ colour.set(r, g, b);
+ }
+
+ public Vector3f getColour() {
+ return colour;
+ }
+
+ public int getNumberOfLines() {
+ return numberOfLines;
+ }
+
+ public int getMesh() {
+ return mesh.getID();
+ }
+
+ public int getVertexCount() {
+ return mesh.getVertexCount();
+ }
+
+ public float getFontSize() {
+ return fontSize;
+ }
+
+ public void setNumberOfLines(int number) {
+ this.numberOfLines = number;
+ }
+
+ public boolean isCentered() {
+ return centerText;
+ }
+
+ public float getMaxLineSize() {
+ return lineMaxSize;
+ }
+
+ public String getTextString() {
+ return textString;
+ }
+
+ public void setText(String textString) {
+ this.textString = textString;
+
+ mesh.delete();
+ TextMeshData data = font.loadText(this);
+ this.mesh = new Mesh(data.getVertexPositions().length).store(data.getVertexPositions(), 2).store(data.getTextureCoords(), 2).finish();
+ }
+
+ public void setMaxX(double maxX) {
+ this.maxX = maxX;
+ }
+
+ public double getMaxX() {
+ return maxX;
+ }
+
+ public void setStretchBackdrop(boolean stretchBackdrop) {
+ this.stretchBackdrop = stretchBackdrop;
+ }
+
+ public boolean getStretchBackdrop() {
+ return this.stretchBackdrop;
+ }
+
+}