Преглед изворни кода

Now EVERY ui is R E F L E C T I O N

____tbvns____ пре 6 месеци
родитељ
комит
df722aa912

+ 1 - 1
PowerGDEditor/src/main/java/xyz/tbvns/Main.java

@@ -16,9 +16,9 @@ import xyz.tbvns.Inputs.Shortcut;
 import xyz.tbvns.Inputs.inputManager;
 import xyz.tbvns.LWJGL3.CustomViewport;
 import xyz.tbvns.Managers.TexturesManager;
-import xyz.tbvns.ui.Elements.LevelSelector;
 import xyz.tbvns.ui.UIManager;
 import xyz.tbvns.ui.Ui;
+import xyz.tbvns.ui.Windows.LevelSelector;
 
 import static org.lwjgl.opengl.GL11.GL_CULL_FACE;
 

+ 1 - 1
PowerGDEditor/src/main/java/xyz/tbvns/ui/UIElement.java → PowerGDEditor/src/main/java/xyz/tbvns/ui/Element.java

@@ -2,7 +2,7 @@ package xyz.tbvns.ui;
 
 import imgui.ImGui;
 
-public interface UIElement {
+public interface Element {
     default void render() {
         ImGui.begin("Default UIElement");
         ImGui.text("This is the default UI !");

+ 16 - 0
PowerGDEditor/src/main/java/xyz/tbvns/ui/Elements/ModelsList.java

@@ -0,0 +1,16 @@
+package xyz.tbvns.ui.Elements;
+
+import com.badlogic.gdx.Gdx;
+import imgui.ImGui;
+import imgui.flag.ImGuiWindowFlags;
+import xyz.tbvns.ui.Element;
+
+public class ModelsList implements Element {
+    @Override
+    public void render() {
+        ImGui.begin("Menu", ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove);
+        ImGui.setWindowSize(200, Gdx.graphics.getHeight() - 19 - 200);
+        ImGui.setWindowPos(0, 19);
+        ImGui.end();
+    }
+}

+ 16 - 0
PowerGDEditor/src/main/java/xyz/tbvns/ui/Elements/Timeline.java

@@ -0,0 +1,16 @@
+package xyz.tbvns.ui.Elements;
+
+import com.badlogic.gdx.Gdx;
+import imgui.ImGui;
+import imgui.flag.ImGuiWindowFlags;
+import xyz.tbvns.ui.Element;
+
+public class Timeline implements Element {
+    @Override
+    public void render() {
+        ImGui.begin("TimeMenu", ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove);
+        ImGui.setWindowSize(Gdx.graphics.getWidth(), 201);
+        ImGui.setWindowPos(0, Gdx.graphics.getHeight() - 201);
+        ImGui.end();
+    }
+}

+ 1 - 2
PowerGDEditor/src/main/java/xyz/tbvns/ui/MenuBarTabs/SaveMenu.java

@@ -2,10 +2,9 @@ package xyz.tbvns.ui.MenuBarTabs;
 
 import imgui.ImGui;
 import xyz.tbvns.Main;
-import xyz.tbvns.ui.Elements.LevelSelector;
 import xyz.tbvns.ui.MenuBarTab;
-import xyz.tbvns.ui.UIElement;
 import xyz.tbvns.ui.UIManager;
+import xyz.tbvns.ui.Windows.LevelSelector;
 
 public class SaveMenu implements MenuBarTab {
     @Override

+ 14 - 8
PowerGDEditor/src/main/java/xyz/tbvns/ui/UIManager.java

@@ -3,22 +3,28 @@ package xyz.tbvns.ui;
 import lombok.Getter;
 import org.reflections.Reflections;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.*;
 
 public class UIManager {
-    private static List<UIElement> registeredUiElements = new ArrayList<>();
+    private static List<Element> registeredElements = new ArrayList<>();
     private static List<MenuBarTab> registeredMenuBarTabs = new ArrayList<>();
     @Getter
     private static final HashMap<Class, Boolean> activeUI = new HashMap<>();
 
     public static void loadUi() {
         try {
-            Reflections reflections = new Reflections("xyz.tbvns.ui.Elements");
-            Set<Class<? extends UIElement>> elements = reflections.getSubTypesOf(UIElement.class);
-            for (Class<? extends UIElement> element : elements) {
-                registeredUiElements.add(element.getDeclaredConstructor().newInstance());
-                activeUI.put(element.getClass(), false);
+            Reflections reflections = new Reflections("xyz.tbvns.ui.Windows");
+            Set<Class<? extends Element>> windows = reflections.getSubTypesOf(Element.class);
+            for (Class<? extends Element> element : windows) {
+                registeredElements.add(element.getDeclaredConstructor().newInstance());
+                activeUI.put(element.asSubclass(Element.class), false);
+            }
+
+            reflections = new Reflections("xyz.tbvns.ui.Elements");
+            Set<Class<? extends Element>> elements = reflections.getSubTypesOf(Element.class);
+            for (Class<? extends Element> element : elements) {
+                registeredElements.add(element.getDeclaredConstructor().newInstance());
+                activeUI.put(element.asSubclass(Element.class), true);
             }
 
             reflections = new Reflections("xyz.tbvns.ui.MenuBarTabs");
@@ -33,7 +39,7 @@ public class UIManager {
     }
 
     public static void render() {
-        for (UIElement element : registeredUiElements) {
+        for (Element element : registeredElements) {
             boolean isEnabled = activeUI.get(element.getClass());
             if (isEnabled) {
                 element.render();

+ 0 - 16
PowerGDEditor/src/main/java/xyz/tbvns/ui/Ui.java

@@ -8,8 +8,6 @@ import imgui.ImGuiIO;
 import imgui.flag.ImGuiWindowFlags;
 import imgui.gl3.ImGuiImplGl3;
 import imgui.glfw.ImGuiImplGlfw;
-import xyz.tbvns.Main;
-import xyz.tbvns.ui.Elements.LevelSelector;
 
 public class Ui {
     static private ImGuiImplGlfw imGuiGlfw;
@@ -18,24 +16,10 @@ public class Ui {
 
     public static void render() {
         startImGui();
-
-        //TODO: Add functionality
         ImGui.beginMainMenuBar();
         UIManager.renderMenuBarTabs();
         ImGui.endMainMenuBar();
-
-        ImGui.begin("Menu", ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove);
-        ImGui.setWindowSize(200, Gdx.graphics.getHeight() - 19 - 200);
-        ImGui.setWindowPos(0, 19);
-        ImGui.end();
-
-        ImGui.begin("TimeMenu", ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove);
-        ImGui.setWindowSize(Gdx.graphics.getWidth(), 201);
-        ImGui.setWindowPos(0, Gdx.graphics.getHeight() - 201);
-        ImGui.end();
-
         UIManager.render();
-
         endImGui();
     }
 

+ 3 - 4
PowerGDEditor/src/main/java/xyz/tbvns/ui/Elements/LevelSelector.java → PowerGDEditor/src/main/java/xyz/tbvns/ui/Windows/LevelSelector.java

@@ -1,4 +1,4 @@
-package xyz.tbvns.ui.Elements;
+package xyz.tbvns.ui.Windows;
 
 import imgui.ImGui;
 import imgui.flag.ImGuiInputTextFlags;
@@ -10,14 +10,13 @@ import xyz.tbvns.GeometryDash.LevelUtils;
 import xyz.tbvns.LevelInfo;
 import xyz.tbvns.Main;
 import xyz.tbvns.Objects.Level;
-import xyz.tbvns.ui.UIElement;
+import xyz.tbvns.ui.Element;
 import xyz.tbvns.ui.UIManager;
-import xyz.tbvns.ui.Ui;
 
 import java.io.IOException;
 import java.util.List;
 
-public class LevelSelector implements UIElement {
+public class LevelSelector implements Element {
     private static List<Level> levelList;
     static {
         try {