From 34ea6d45cf3a8b1d5c4e01402718ae1ce408419d Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 17 Mar 2022 00:18:51 -0400 Subject: [PATCH] Debug menu additions --- .../game/config/UserSettings.java | 17 ++++++- .../electrosphere/menu/MenuGenerators.java | 48 +++++++++++++++++++ .../java/electrosphere/renderer/Model.java | 20 ++++---- 3 files changed, 75 insertions(+), 10 deletions(-) diff --git a/src/main/java/electrosphere/game/config/UserSettings.java b/src/main/java/electrosphere/game/config/UserSettings.java index a2dafb65..51716b77 100644 --- a/src/main/java/electrosphere/game/config/UserSettings.java +++ b/src/main/java/electrosphere/game/config/UserSettings.java @@ -95,7 +95,22 @@ public class UserSettings { return graphicsDebugDrawNavmesh; } - + + public void setGraphicsDebugDrawCollisionSpheres(boolean draw){ + this.graphicsDebugDrawCollisionSpheres = draw; + } + + public void setGraphicsDebugDrawPhysicsObjects(boolean draw){ + this.graphicsDebugDrawPhysicsObjects = draw; + } + + public void setGraphicsDebugDrawMovementVectors(boolean draw){ + this.graphicsDebugDrawMovementVectors = draw; + } + + public void setGraphicsDebugDrawNavmesh(boolean draw){ + this.graphicsDebugDrawNavmesh = draw; + } diff --git a/src/main/java/electrosphere/menu/MenuGenerators.java b/src/main/java/electrosphere/menu/MenuGenerators.java index 348088d4..f03b4d13 100644 --- a/src/main/java/electrosphere/menu/MenuGenerators.java +++ b/src/main/java/electrosphere/menu/MenuGenerators.java @@ -573,6 +573,54 @@ public class MenuGenerators { return false; }}); + //label (toggle draw collision spheres) + Button toggleCollisionSpheresButton = new Button(); + Label toggleCollisionSpheresLabel = new Label(100,1350,fontSize); + toggleCollisionSpheresLabel.setText("Toggle draw collision spheres"); + toggleCollisionSpheresButton.addChild(toggleCollisionSpheresLabel); + scrollable.addChild(toggleCollisionSpheresButton); + toggleCollisionSpheresButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){ + // Main.running = false; + Globals.userSettings.setGraphicsDebugDrawCollisionSpheres(!Globals.userSettings.graphicsDebugDrawCollisionSpheres()); + return false; + }}); + + //label (toggle draw physics objects) + Button togglePhysicsObjectsButton = new Button(); + Label togglePhysicsObjectsLabel = new Label(100,1450,fontSize); + togglePhysicsObjectsLabel.setText("Toggle draw physics objects"); + togglePhysicsObjectsButton.addChild(togglePhysicsObjectsLabel); + scrollable.addChild(togglePhysicsObjectsButton); + togglePhysicsObjectsButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){ + // Main.running = false; + Globals.userSettings.setGraphicsDebugDrawPhysicsObjects(!Globals.userSettings.graphicsDebugDrawPhysicsObjects()); + return false; + }}); + + //label (toggle draw movement vectors) + Button toggleMovementVectorsButton = new Button(); + Label toggleMovementVectorsLabel = new Label(100,1550,fontSize); + toggleMovementVectorsLabel.setText("Toggle draw movement vectors"); + toggleMovementVectorsButton.addChild(toggleMovementVectorsLabel); + scrollable.addChild(toggleMovementVectorsButton); + toggleMovementVectorsButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){ + // Main.running = false; + Globals.userSettings.setGraphicsDebugDrawMovementVectors(!Globals.userSettings.graphicsDebugDrawMovementVectors()); + return false; + }}); + + //label (toggle draw navmesh) + Button toggleNavmeshButton = new Button(); + Label toggleNavmeshLabel = new Label(100,1650,fontSize); + toggleNavmeshLabel.setText("Toggle draw navmesh"); + toggleNavmeshButton.addChild(toggleNavmeshLabel); + scrollable.addChild(toggleNavmeshButton); + toggleNavmeshButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){ + // Main.running = false; + Globals.userSettings.setGraphicsDebugDrawNavmesh(!Globals.userSettings.graphicsDebugDrawNavmesh()); + return false; + }}); + return rVal; } diff --git a/src/main/java/electrosphere/renderer/Model.java b/src/main/java/electrosphere/renderer/Model.java index 39045791..168cb8a4 100644 --- a/src/main/java/electrosphere/renderer/Model.java +++ b/src/main/java/electrosphere/renderer/Model.java @@ -204,7 +204,7 @@ public class Model { Iterator mesh_Iterator = meshes.iterator(); while(mesh_Iterator.hasNext()){ Mesh currentMesh = mesh_Iterator.next(); - if(!meshMask.isBlockedMesh(currentMesh.nodeID)){ + if(meshMask == null || (meshMask != null && !meshMask.isBlockedMesh(currentMesh.nodeID))){ //set shader ShaderProgram original = currentMesh.shader; ShaderProgram shader = getCorrectShader(shaderMask, currentMesh, currentMesh.shader); @@ -221,14 +221,16 @@ public class Model { currentMesh.shader = original; } } - for(Mesh toDraw : meshMask.getToDrawMeshes()){ - toDraw.bones = bones; - toDraw.parent = this; - ShaderProgram original = toDraw.shader; - ShaderProgram shader = getCorrectShader(shaderMask, toDraw, toDraw.shader); - toDraw.shader = shader; - toDraw.complexDraw(setShader, bufferStandardUniforms, bufferNonStandardUniforms, useMaterial, useShadowMap, setBones, useLight); - toDraw.shader = original; + if(meshMask != null){ + for(Mesh toDraw : meshMask.getToDrawMeshes()){ + toDraw.bones = bones; + toDraw.parent = this; + ShaderProgram original = toDraw.shader; + ShaderProgram shader = getCorrectShader(shaderMask, toDraw, toDraw.shader); + toDraw.shader = shader; + toDraw.complexDraw(setShader, bufferStandardUniforms, bufferNonStandardUniforms, useMaterial, useShadowMap, setBones, useLight); + toDraw.shader = original; + } } }