From 9d914e51c43f1f8528420aa80dea3ca606693f32 Mon Sep 17 00:00:00 2001 From: austin Date: Sat, 6 Apr 2024 15:59:22 -0400 Subject: [PATCH] move window class --- .../controls/ControlHandler.java | 2 +- .../engine/loadingthreads/ClientLoading.java | 2 +- .../loadingthreads/DebugSPWorldLoading.java | 2 +- .../loadingthreads/LevelEditorLoading.java | 2 +- .../engine/loadingthreads/LevelLoading.java | 2 +- .../electrosphere/menu/MenuGenerators.java | 2 +- .../java/electrosphere/menu/WindowUtils.java | 2 +- .../menu/ingame/MenuGeneratorsInGame.java | 2 +- .../menu/ingame/MenuGeneratorsInventory.java | 2 +- .../ingame/MenuGeneratorsLevelEditor.java | 51 +++++++++++++++++++ .../menu/mainmenu/MenuGeneratorsDebug.java | 2 +- .../renderer/pipelines/UIPipeline.java | 2 +- .../renderer/ui/ElementManager.java | 1 + .../renderer/ui/WidgetUtils.java | 1 + .../renderer/ui/elements/Button.java | 14 +++++ .../renderer/ui/{ => elements}/Window.java | 2 +- 16 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 src/main/java/electrosphere/menu/ingame/MenuGeneratorsLevelEditor.java rename src/main/java/electrosphere/renderer/ui/{ => elements}/Window.java (99%) diff --git a/src/main/java/electrosphere/controls/ControlHandler.java b/src/main/java/electrosphere/controls/ControlHandler.java index 01e52599..a92e69c9 100644 --- a/src/main/java/electrosphere/controls/ControlHandler.java +++ b/src/main/java/electrosphere/controls/ControlHandler.java @@ -97,7 +97,7 @@ import electrosphere.menu.WindowUtils; import electrosphere.menu.ingame.MenuGeneratorsInGame; import electrosphere.menu.ingame.MenuGeneratorsInventory; import electrosphere.menu.mainmenu.MenuGeneratorsDebug; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.events.ClickEvent; import electrosphere.renderer.ui.events.KeyboardEvent; import electrosphere.renderer.ui.events.MenuEvent; diff --git a/src/main/java/electrosphere/engine/loadingthreads/ClientLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ClientLoading.java index 9ccad129..ab5214e3 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ClientLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ClientLoading.java @@ -36,7 +36,7 @@ import electrosphere.menu.WindowUtils; import electrosphere.menu.mainmenu.MenuGeneratorsMultiplayer; import electrosphere.net.NetUtils; import electrosphere.net.client.ClientNetworking; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.server.datacell.EntityDataCellMapper; public class ClientLoading { diff --git a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java index ddd99896..35197142 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java @@ -15,7 +15,7 @@ import electrosphere.menu.WindowStrings; import electrosphere.menu.WindowUtils; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.net.server.ServerConnectionHandler; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.server.content.ServerContentManager; import electrosphere.server.fluid.generation.ArenaFluidGenerator; import electrosphere.server.fluid.manager.ServerFluidManager; diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java index 8b8a659b..ff598790 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java @@ -11,7 +11,7 @@ import electrosphere.menu.WindowStrings; import electrosphere.menu.WindowUtils; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.net.server.ServerConnectionHandler; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.server.content.ServerContentManager; import electrosphere.server.fluid.generation.ArenaFluidGenerator; import electrosphere.server.fluid.manager.ServerFluidManager; diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java index 320e3efd..f3b31241 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java @@ -10,7 +10,7 @@ import electrosphere.menu.WindowStrings; import electrosphere.menu.WindowUtils; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.net.server.ServerConnectionHandler; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.server.content.ServerContentManager; import electrosphere.server.saves.SaveUtils; diff --git a/src/main/java/electrosphere/menu/MenuGenerators.java b/src/main/java/electrosphere/menu/MenuGenerators.java index f3a38ec4..8026e823 100644 --- a/src/main/java/electrosphere/menu/MenuGenerators.java +++ b/src/main/java/electrosphere/menu/MenuGenerators.java @@ -23,7 +23,6 @@ import electrosphere.renderer.actor.Actor; import electrosphere.renderer.actor.ActorStaticMorph; import electrosphere.renderer.actor.ActorUtils; import electrosphere.renderer.model.Model; -import electrosphere.renderer.ui.Window; import electrosphere.renderer.ui.elements.ActorPanel; import electrosphere.renderer.ui.elements.Button; import electrosphere.renderer.ui.elements.Div; @@ -33,6 +32,7 @@ import electrosphere.renderer.ui.elements.Label; import electrosphere.renderer.ui.elements.ScrollableContainer; import electrosphere.renderer.ui.elements.Slider; import electrosphere.renderer.ui.elements.TextInput; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ClickableElement; import electrosphere.renderer.ui.elementtypes.Element; import electrosphere.renderer.ui.elementtypes.NavigableElement.NavigationEventCallback; diff --git a/src/main/java/electrosphere/menu/WindowUtils.java b/src/main/java/electrosphere/menu/WindowUtils.java index 8752f8ed..a2c1cb9a 100644 --- a/src/main/java/electrosphere/menu/WindowUtils.java +++ b/src/main/java/electrosphere/menu/WindowUtils.java @@ -6,8 +6,8 @@ import electrosphere.entity.state.inventory.RelationalInventoryState; import electrosphere.entity.state.inventory.UnrelationalInventoryState; import electrosphere.menu.ingame.MenuGeneratorsInventory; import electrosphere.menu.mainmenu.MenuGeneratorsTitleMenu; -import electrosphere.renderer.ui.Window; import electrosphere.renderer.ui.elements.Label; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ContainerElement; import electrosphere.renderer.ui.elementtypes.DrawableElement; import electrosphere.renderer.ui.elementtypes.Element; diff --git a/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInGame.java b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInGame.java index 90f66400..549cc7af 100644 --- a/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInGame.java +++ b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInGame.java @@ -18,7 +18,6 @@ import electrosphere.renderer.RenderingEngine; import electrosphere.renderer.actor.Actor; import electrosphere.renderer.actor.ActorStaticMorph; import electrosphere.renderer.model.Model; -import electrosphere.renderer.ui.Window; import electrosphere.renderer.ui.elements.Button; import electrosphere.renderer.ui.elements.Div; import electrosphere.renderer.ui.elements.ImagePanel; @@ -27,6 +26,7 @@ import electrosphere.renderer.ui.elements.ScrollableContainer; import electrosphere.renderer.ui.elements.Slider; import electrosphere.renderer.ui.elements.TextInput; import electrosphere.renderer.ui.elements.VirtualScrollable; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ClickableElement; import electrosphere.renderer.ui.elementtypes.NavigableElement.NavigationEventCallback; import electrosphere.renderer.ui.elementtypes.ValueElement.ValueChangeEventCallback; diff --git a/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInventory.java b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInventory.java index dc4b366a..0db73e4b 100644 --- a/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInventory.java +++ b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsInventory.java @@ -19,6 +19,7 @@ import electrosphere.menu.WindowUtils; import electrosphere.renderer.ui.elements.Div; import electrosphere.renderer.ui.elements.ImagePanel; import electrosphere.renderer.ui.elements.Label; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.Element; import electrosphere.renderer.ui.elementtypes.ClickableElement.ClickEventCallback; import electrosphere.renderer.ui.elementtypes.DraggableElement.DragEventCallback; @@ -28,7 +29,6 @@ import electrosphere.renderer.ui.elementtypes.ValueElement.ValueChangeEventCallb import electrosphere.renderer.ui.events.ClickEvent; import electrosphere.renderer.ui.events.DragEvent; import electrosphere.renderer.ui.events.NavigationEvent; -import electrosphere.renderer.ui.Window; public class MenuGeneratorsInventory { diff --git a/src/main/java/electrosphere/menu/ingame/MenuGeneratorsLevelEditor.java b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsLevelEditor.java new file mode 100644 index 00000000..e0033aee --- /dev/null +++ b/src/main/java/electrosphere/menu/ingame/MenuGeneratorsLevelEditor.java @@ -0,0 +1,51 @@ +package electrosphere.menu.ingame; + +import org.lwjgl.util.yoga.Yoga; + +import electrosphere.engine.Globals; +import electrosphere.entity.EntityDataStrings; +import electrosphere.menu.WindowStrings; +import electrosphere.menu.WindowUtils; +import electrosphere.renderer.RenderingEngine; +import electrosphere.renderer.model.Model; +import electrosphere.renderer.ui.elements.Button; +import electrosphere.renderer.ui.elements.Label; +import electrosphere.renderer.ui.elements.TextInput; +import electrosphere.renderer.ui.elements.VirtualScrollable; +import electrosphere.renderer.ui.elements.Window; +import electrosphere.renderer.ui.elementtypes.ClickableElement; +import electrosphere.renderer.ui.elementtypes.ClickableElement.ClickEventCallback; +import electrosphere.renderer.ui.elementtypes.NavigableElement.NavigationEventCallback; +import electrosphere.renderer.ui.events.ClickEvent; +import electrosphere.renderer.ui.events.NavigationEvent; + +/** + * Menu generators for level editor + */ +public class MenuGeneratorsLevelEditor { + + public static Window createInGameDebugMainMenu(){ + float fontSize = 1.0f; + Window rVal = new Window(0,0,Globals.WINDOW_WIDTH,Globals.WINDOW_HEIGHT,true); + rVal.setAlignContent(Yoga.YGAlignFlexStart); + + VirtualScrollable scrollable = new VirtualScrollable(500, 800); + rVal.addChild(scrollable); + rVal.setOnNavigationCallback(new NavigationEventCallback() {public boolean execute(NavigationEvent event){ + // WindowUtils.replaceWindow(WindowStrings.WINDOW_MENU_INGAME_MAIN, createInGameMainMenu()); + return false; + }}); + + + rVal.addChild(Button.createButton("Close", new ClickEventCallback() {public boolean execute(ClickEvent event){ + System.out.println("close!"); + return false; + }})); + + + rVal.applyYoga(); + + return rVal; + } + +} diff --git a/src/main/java/electrosphere/menu/mainmenu/MenuGeneratorsDebug.java b/src/main/java/electrosphere/menu/mainmenu/MenuGeneratorsDebug.java index 8a021138..d4d0086b 100644 --- a/src/main/java/electrosphere/menu/mainmenu/MenuGeneratorsDebug.java +++ b/src/main/java/electrosphere/menu/mainmenu/MenuGeneratorsDebug.java @@ -8,9 +8,9 @@ import electrosphere.menu.WindowStrings; import electrosphere.menu.WindowUtils; import electrosphere.renderer.debug.DebugRendering; import electrosphere.renderer.ui.WidgetUtils; -import electrosphere.renderer.ui.Window; import electrosphere.renderer.ui.elements.Label; import electrosphere.renderer.ui.elements.ScrollableContainer; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ClickableElement; import electrosphere.renderer.ui.elementtypes.ContainerElement; import electrosphere.renderer.ui.elementtypes.Element; diff --git a/src/main/java/electrosphere/renderer/pipelines/UIPipeline.java b/src/main/java/electrosphere/renderer/pipelines/UIPipeline.java index 85aef5a7..cc26fc5e 100644 --- a/src/main/java/electrosphere/renderer/pipelines/UIPipeline.java +++ b/src/main/java/electrosphere/renderer/pipelines/UIPipeline.java @@ -7,7 +7,7 @@ import electrosphere.renderer.OpenGLState; import electrosphere.renderer.RenderPipelineState; import electrosphere.renderer.RenderingEngine; import electrosphere.renderer.texture.Texture; -import electrosphere.renderer.ui.Window; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.DrawableElement; import electrosphere.renderer.ui.elementtypes.Element; diff --git a/src/main/java/electrosphere/renderer/ui/ElementManager.java b/src/main/java/electrosphere/renderer/ui/ElementManager.java index e7a3de2c..0c18f532 100644 --- a/src/main/java/electrosphere/renderer/ui/ElementManager.java +++ b/src/main/java/electrosphere/renderer/ui/ElementManager.java @@ -8,6 +8,7 @@ import java.util.Stack; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ContainerElement; import electrosphere.renderer.ui.elementtypes.DraggableElement; import electrosphere.renderer.ui.elementtypes.Element; diff --git a/src/main/java/electrosphere/renderer/ui/WidgetUtils.java b/src/main/java/electrosphere/renderer/ui/WidgetUtils.java index bd964811..ebbdd58e 100644 --- a/src/main/java/electrosphere/renderer/ui/WidgetUtils.java +++ b/src/main/java/electrosphere/renderer/ui/WidgetUtils.java @@ -4,6 +4,7 @@ import electrosphere.controls.ControlHandler; import electrosphere.engine.Globals; import electrosphere.renderer.ui.elements.Button; import electrosphere.renderer.ui.elements.Label; +import electrosphere.renderer.ui.elements.Window; import electrosphere.renderer.ui.elementtypes.ClickableElement; import electrosphere.renderer.ui.elementtypes.DrawableElement; diff --git a/src/main/java/electrosphere/renderer/ui/elements/Button.java b/src/main/java/electrosphere/renderer/ui/elements/Button.java index 66f6d349..bf64f209 100644 --- a/src/main/java/electrosphere/renderer/ui/elements/Button.java +++ b/src/main/java/electrosphere/renderer/ui/elements/Button.java @@ -44,6 +44,20 @@ public class Button extends StandardContainerElement implements DrawableElement, super(); } + /** + * Creates a button with + * @param text + * @return + */ + public static Button createButton(String text, ClickableElement.ClickEventCallback callback){ + Button rVal = new Button(); + Label rValLabel = new Label(1.0f); + rValLabel.setText(text); + rVal.addChild(rValLabel); + rVal.setOnClick(callback); + return rVal; + } + public boolean getVisible() { return visible; } diff --git a/src/main/java/electrosphere/renderer/ui/Window.java b/src/main/java/electrosphere/renderer/ui/elements/Window.java similarity index 99% rename from src/main/java/electrosphere/renderer/ui/Window.java rename to src/main/java/electrosphere/renderer/ui/elements/Window.java index 48f5168d..46089dbd 100644 --- a/src/main/java/electrosphere/renderer/ui/Window.java +++ b/src/main/java/electrosphere/renderer/ui/elements/Window.java @@ -1,4 +1,4 @@ -package electrosphere.renderer.ui; +package electrosphere.renderer.ui.elements; import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT; import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;