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); } }