From 082912405a8c1bfc0bce81b489868905a700b3cb Mon Sep 17 00:00:00 2001 From: fgnm Date: Mon, 7 Aug 2023 12:54:14 +0200 Subject: [PATCH] Allow to enable/disable bounding boxes debug view --- hyperlap2d-common-api | 2 +- .../java/games/rednblack/editor/view/stage/Sandbox.java | 8 +++++++- .../editor/view/ui/settings/SandboxSettings.java | 9 ++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/hyperlap2d-common-api b/hyperlap2d-common-api index ed24c1d7..ccf1bf61 160000 --- a/hyperlap2d-common-api +++ b/hyperlap2d-common-api @@ -1 +1 @@ -Subproject commit ed24c1d7d32c8a4786069a505609dd371daff1ec +Subproject commit ccf1bf619510ee005450f72d44c47e1ac8daecb6 diff --git a/src/main/java/games/rednblack/editor/view/stage/Sandbox.java b/src/main/java/games/rednblack/editor/view/stage/Sandbox.java index 0b5e9659..40ad0606 100644 --- a/src/main/java/games/rednblack/editor/view/stage/Sandbox.java +++ b/src/main/java/games/rednblack/editor/view/stage/Sandbox.java @@ -42,6 +42,7 @@ import games.rednblack.editor.renderer.components.additional.ButtonComponent; import games.rednblack.editor.renderer.data.CompositeItemVO; import games.rednblack.editor.renderer.data.SceneVO; import games.rednblack.editor.renderer.physics.PhysicsBodyLoader; +import games.rednblack.editor.renderer.systems.CullingSystem; import games.rednblack.editor.renderer.systems.LightSystem; import games.rednblack.editor.renderer.systems.ParticleSystem; import games.rednblack.editor.renderer.systems.PhysicsSystem; @@ -97,6 +98,7 @@ public class Sandbox { private ProjectManager projectManager; private ResourceManager resourceManager; + private SettingsManager settingsManager; SceneConfigVO sceneConfigVO; @@ -112,6 +114,7 @@ public class Sandbox { private float timeToCameraPosTarget; private Vector2 cameraPosTarget = new Vector2(), cameraPosOrigin = new Vector2(); + private CullingSystem cullingSystem; private Sandbox() { init(); @@ -133,6 +136,7 @@ public class Sandbox { private void init() { facade = Facade.getInstance(); projectManager = facade.retrieveProxy(ProjectManager.NAME); + settingsManager = facade.retrieveProxy(SettingsManager.NAME); resourceManager = facade.retrieveProxy(ResourceManager.NAME); UIStageMediator uiStageMediator = facade.retrieveMediator(UIStageMediator.NAME); @@ -169,6 +173,7 @@ public class Sandbox { config.addTagTransmuter("button", ButtonComponent.class); sceneLoader = new SceneLoader(config); + cullingSystem = sceneLoader.getEngine().getSystem(CullingSystem.class); manager.setSerializer(new JsonArtemisSerializer(sceneLoader.getEngine())); @@ -280,6 +285,8 @@ public class Sandbox { facade.sendNotification(PanTool.SCENE_PANNED); } + + cullingSystem.setDebug(settingsManager.editorConfigVO.showBoundingBoxes); } public void adjustCameraInComposites() { @@ -399,7 +406,6 @@ public class Sandbox { public void overrideAmbientLightInComposite() { SceneVO sceneVO = sceneControl.getCurrentSceneVO(); - SettingsManager settingsManager = facade.retrieveProxy(SettingsManager.NAME); boolean override = !isViewingRootEntity() && settingsManager.editorConfigVO.disableAmbientComposite; sceneLoader.setAmbientInfo(sceneVO, override); } diff --git a/src/main/java/games/rednblack/editor/view/ui/settings/SandboxSettings.java b/src/main/java/games/rednblack/editor/view/ui/settings/SandboxSettings.java index a685eba2..83a5245b 100644 --- a/src/main/java/games/rednblack/editor/view/ui/settings/SandboxSettings.java +++ b/src/main/java/games/rednblack/editor/view/ui/settings/SandboxSettings.java @@ -18,7 +18,7 @@ import games.rednblack.puremvc.Facade; public class SandboxSettings extends SettingsNodeValue { - private final VisCheckBox disableAmbientComposite; + private final VisCheckBox disableAmbientComposite, showBoundBoxes; private final TintButton tintButton; public SandboxSettings() { @@ -29,6 +29,11 @@ public class SandboxSettings extends SettingsNodeValue { disableAmbientComposite = StandardWidgetsFactory.createCheckBox("Disable Ambient light when viewing Composites"); getContentTable().add(disableAmbientComposite).left().padTop(5).padLeft(8).row(); + getContentTable().add("Debug").left().row(); + getContentTable().addSeparator(); + showBoundBoxes = StandardWidgetsFactory.createCheckBox("Show bounding boxes outline"); + getContentTable().add(showBoundBoxes).left().padTop(5).padLeft(8).row(); + getContentTable().add("Background").left().padTop(10).row(); getContentTable().addSeparator(); VisTable tintTable = new VisTable(); @@ -81,12 +86,14 @@ public class SandboxSettings extends SettingsNodeValue { @Override public void translateSettingsToView() { disableAmbientComposite.setChecked(getSettings().disableAmbientComposite); + showBoundBoxes.setChecked(getSettings().showBoundingBoxes); tintButton.setColorValue(getSettings().backgroundColor); } @Override public void translateViewToSettings() { getSettings().disableAmbientComposite = disableAmbientComposite.isChecked(); + getSettings().showBoundingBoxes = showBoundBoxes.isChecked(); facade.sendNotification(MsgAPI.SAVE_EDITOR_CONFIG); }