From 86edabf4de0306d2221de8bf8bc5180301e8658a Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 20 Mar 2024 18:57:48 -0400 Subject: [PATCH] player entity debug menu --- docs/src/progress/renderertodo.md | 12 ++++++ .../client/fluid/cells/FluidCell.java | 5 +-- src/main/java/electrosphere/engine/Main.java | 2 +- .../ui/imgui => menu}/ImGuiWindowMacros.java | 42 ++++++++++++++++--- .../electrosphere/server/datacell/Realm.java | 2 +- 5 files changed, 52 insertions(+), 11 deletions(-) rename src/main/java/electrosphere/{renderer/ui/imgui => menu}/ImGuiWindowMacros.java (85%) diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 64918f81..e7023465 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -170,6 +170,12 @@ Cellular Automata Fluid Dynamics System - Advect force - Advect density - Diffuse density + - Do not bound to single chunks + +Fluid Chunk System + - Basic model creation + - Streaming chunks over network + - Only add compression when it starts to become an issue Fix character movement - Walking left or right while turning camera is very jittery @@ -181,6 +187,12 @@ Fix Character creation preview not working Clean up main method/class +Bring LWJGL version up to latest + +Include Remotery library + +Physics-controlled objects system + Shader library system - Abiltiy to include the shader library in individual files (ie implement #include) diff --git a/src/main/java/electrosphere/client/fluid/cells/FluidCell.java b/src/main/java/electrosphere/client/fluid/cells/FluidCell.java index 5e3fb33a..26cba915 100644 --- a/src/main/java/electrosphere/client/fluid/cells/FluidCell.java +++ b/src/main/java/electrosphere/client/fluid/cells/FluidCell.java @@ -113,9 +113,7 @@ public class FluidCell { * Fills in the internal arrays of data for generate terrain models */ private void fillInData(){ - if(worldPos.x == 1 && worldPos.y == 0 && worldPos.z == 0){ - System.out.println("aaaa"); - } + // //fill in data // @@ -293,7 +291,6 @@ public class FluidCell { currZ >= 0 && currZ < ServerTerrainChunk.CHUNK_DATA_GENERATOR_SIZE && (1 + weights[x][y][z]) < weights[currX][currY][currZ] ){ - System.out.println("set neighbor weight"); weights[x][y][z] = -(1 - weights[currX][currY][currZ]); } } diff --git a/src/main/java/electrosphere/engine/Main.java b/src/main/java/electrosphere/engine/Main.java index 5ba0f494..28a691b2 100644 --- a/src/main/java/electrosphere/engine/Main.java +++ b/src/main/java/electrosphere/engine/Main.java @@ -18,8 +18,8 @@ import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.game.config.UserSettings; import electrosphere.game.server.world.MacroData; import electrosphere.logger.LoggerInterface; +import electrosphere.menu.ImGuiWindowMacros; import electrosphere.renderer.RenderingEngine; -import electrosphere.renderer.ui.imgui.ImGuiWindowMacros; import electrosphere.server.simulation.MacroSimulation; diff --git a/src/main/java/electrosphere/renderer/ui/imgui/ImGuiWindowMacros.java b/src/main/java/electrosphere/menu/ImGuiWindowMacros.java similarity index 85% rename from src/main/java/electrosphere/renderer/ui/imgui/ImGuiWindowMacros.java rename to src/main/java/electrosphere/menu/ImGuiWindowMacros.java index 797089b8..99528fd0 100644 --- a/src/main/java/electrosphere/renderer/ui/imgui/ImGuiWindowMacros.java +++ b/src/main/java/electrosphere/menu/ImGuiWindowMacros.java @@ -1,11 +1,15 @@ -package electrosphere.renderer.ui.imgui; +package electrosphere.menu; import java.util.HashMap; import java.util.Map; import electrosphere.audio.VirtualAudioSource; import electrosphere.engine.Globals; +import electrosphere.entity.EntityUtils; import electrosphere.renderer.RenderingEngine; +import electrosphere.renderer.ui.imgui.ImGuiLinePlot; +import electrosphere.renderer.ui.imgui.ImGuiBarPlot; +import electrosphere.renderer.ui.imgui.ImGuiWindow; import electrosphere.renderer.ui.imgui.ImGuiLinePlot.ImGuiLinePlotDataset; import electrosphere.renderer.ui.imgui.ImGuiWindow.ImGuiWindowCallback; import imgui.ImGui; @@ -35,6 +39,9 @@ public class ImGuiWindowMacros { private static boolean showAllVirtualAudioChildren = false; private static boolean showMappedVirtualAudioChildren = true; + //player entity details + private static ImGuiWindow playerEntityWindow; + /** * Initializes imgui windows */ @@ -43,6 +50,7 @@ public class ImGuiWindowMacros { createFramerateGraph(); createServerFrametimeGraph(); createAudioDebugMenu(); + createPlayerEntityDebugWindow(); } /** @@ -126,7 +134,7 @@ public class ImGuiWindowMacros { */ private static void createAudioDebugMenu(){ audioDebugMenu = new ImGuiWindow("Audio"); - audioDebugMenu.callback = new ImGuiWindowCallback() { + audioDebugMenu.setCallback(new ImGuiWindowCallback() { @Override public void exec() { //audio engine details @@ -175,18 +183,38 @@ public class ImGuiWindowMacros { } } } - }; + }); audioDebugMenu.setOpen(false); RenderingEngine.addImGuiWindow(audioDebugMenu); } + /** + * Create player entity debug menu + */ + private static void createPlayerEntityDebugWindow(){ + playerEntityWindow = new ImGuiWindow("Player Entity"); + playerEntityWindow.setCallback(new ImGuiWindowCallback() { + @Override + public void exec() { + //audio engine details + ImGui.text("Player Entity Details"); + if(Globals.playerEntity != null){ + ImGui.text("Position: " + EntityUtils.getPosition(Globals.playerEntity)); + } + } + }); + playerEntityWindow.setOpen(false); + RenderingEngine.addImGuiWindow(playerEntityWindow); + } + + /** * Inits the main debug menu */ private static void createMainDebugMenu(){ mainDebugWindow = new ImGuiWindow("Debug"); - mainDebugWindow.callback = new ImGuiWindowCallback() { + mainDebugWindow.setCallback(new ImGuiWindowCallback() { @Override public void exec() { //show global framerate line graph @@ -201,12 +229,16 @@ public class ImGuiWindowMacros { if(ImGui.button("Show Audio Debug Menu")){ audioDebugMenu.setOpen(true); } + //show audio debug + if(ImGui.button("Show Player Entity Debug Menu")){ + playerEntityWindow.setOpen(true); + } //close button if(ImGui.button("Close")){ mainDebugWindow.setOpen(false); } } - }; + }); RenderingEngine.addImGuiWindow(mainDebugWindow); } diff --git a/src/main/java/electrosphere/server/datacell/Realm.java b/src/main/java/electrosphere/server/datacell/Realm.java index d7c0aba5..297f39ea 100644 --- a/src/main/java/electrosphere/server/datacell/Realm.java +++ b/src/main/java/electrosphere/server/datacell/Realm.java @@ -6,8 +6,8 @@ import electrosphere.engine.Main; import electrosphere.entity.Entity; import electrosphere.entity.Scene; import electrosphere.entity.types.hitbox.HitboxManager; +import electrosphere.menu.ImGuiWindowMacros; import electrosphere.net.parser.net.message.NetworkMessage; -import electrosphere.renderer.ui.imgui.ImGuiWindowMacros; import electrosphere.server.datacell.interfaces.DataCellManager; import java.util.HashSet;