Newer
Older
AlgebraicDataflowArchitectureModel / GameEngine / src / main / java / gameEngine / GameEditor.java
package gameEngine;

import gameEngine.views.Button;
import gameEngine.scenes.Scene;
import gameEngine.views.Sprite;
import gameEngine.views.Text;
import gameEngine.views.Window;

public class GameEditor {
    private Scene scene;
    private final String frameImagePath = "GameEngine/resources/EditorFrame.png";

    private Sprite[] EditorFrameSprite = new Sprite[4];

    private Button playButton;
    private Text playButtonText;

    private Button openButton;
    private Text openButtonText;

    private Button createObjectButton;
    private Text createObjectButtonText;

    private Button createTextButton;
    private Text createTextButtonText;

    public GameEditor(Scene scene) {
        this.scene = scene;
        initializeEditorComponents();
    }

    private void initializeEditorComponents() {
        createFrame();

        playButton = new Button(Window.get().width/ 2 -16 , 3, 1, 0.4f);
        playButtonText = new Text(Window.get().width/ 2 - 11.25f, 1, "Play", 24);

        openButton = new Button(50, 3, 0.4f, 0.4f);
        openButtonText = new Text(50 +5.25f, 0.4f, "+", 24);

        createObjectButton = new Button(20, 73, 3.2f, 0.5f);
        createObjectButtonText = new Text(20 +5.25f, 70.4f, "Add GameObject", 24);

        createTextButton = new Button(20, 33, 3.2f, 0.5f);
        createTextButtonText = new Text(20 +5.25f, 30.4f, "Add TextMesh", 24);

        setButtonListeners();
    }

    private void setButtonListeners() {
        playButton.clearListeners();
        playButton.addListener(scene::changeSceneStart);

        createObjectButton.clearListeners();
        createObjectButton.addListener(scene::addNewObject);

        createTextButton.clearListeners();
        createTextButton.addListener(scene::addNewTextMesh);
    }

    public void setScene(Scene newScene) {
        this.scene = newScene;
        setButtonListeners();
    }

    public void update() {
        for(Sprite editorFrameSprites : EditorFrameSprite) editorFrameSprites.update();
        playButton.update();
        playButtonText.update();
        createObjectButton.update();
        createObjectButtonText.update();
        createTextButton.update();
        createTextButtonText.update();
    }

    private void createFrame(){
        EditorFrameSprite[0] = new Sprite(frameImagePath, 0, 0, 20, 0.5f);
        EditorFrameSprite[1] = new Sprite(frameImagePath, 0, 0, 0.25f, 20);
        EditorFrameSprite[2] = new Sprite(frameImagePath, Window.get().width-16, 0, 0.25f, 20);
        EditorFrameSprite[3] = new Sprite(frameImagePath, 0, Window.get().height-16, 20, 0.5f);
    }
}