Newer
Older
AlgebraicDataflowArchitectureModel / GameEngine / src / main / java / gameEngine / entites / gameComponents / TextMesh.java
package gameEngine.entites.gameComponents;

import gameEngine.entites.EditorEntity;
import gameEngine.entites.GameObject;
import gameEngine.input.Input;
import gameEngine.input.MouseInput;
import gameEngine.scenes.EditorScene;
import gameEngine.views.*;
import org.joml.Vector3f;

import static org.lwjgl.glfw.GLFW.*;

public class TextMesh extends GameComponent{

    private GameObject parent;
    private Text textRenderer;

    public TextMesh(GameObject parent, String text, int textSize) {
        this.parent = parent;
        this.textRenderer = new Text(parent.transform.position.x, parent.transform.position.y, text, textSize);
    }

    public TextMesh(TextMesh original, GameObject newParent) {
        this.parent = newParent;
        this.textRenderer = new Text(
                newParent.transform.position.x,
                newParent.transform.position.y,
                original.textRenderer.text,
                original.textRenderer.textSize
        );
    }

    @Override
    public GameComponent copy() {
        return this;
    }

    @Override
    public void init() {
        textRenderer.update();
    }

    @Override
    public void update() {
        Vector3f globalPosition = new Vector3f(parent.transform.position).add(localPosition);
        textRenderer.setPosition(globalPosition);
        Vector3f globalRotation = new Vector3f(parent.transform.rotation).add(localRotation);
        textRenderer.setRotation(globalRotation);
        Vector3f globalScale = new Vector3f(parent.transform.scale).add(localScale);
        textRenderer.setScale(globalScale);
        textRenderer.update();
    }

    public void setText(String newText){
        textRenderer.setText(newText);
    }

    public void setTextSize(int newTextSize) {
        textRenderer.setTextSize(newTextSize);
    }

    public void setColor(Color color){
        textRenderer.setColor(color);
    }

    public int getTextSize(){
        return textRenderer.textSize;
    }
}