From 3fdae535f7dddaf488e29f8af5b6f0d9ff52dffa Mon Sep 17 00:00:00 2001 From: fgnm Date: Thu, 21 Sep 2023 09:30:18 +0200 Subject: [PATCH] Improve LayerMapComponent performances --- hyperlap2d-runtime-libgdx | 2 +- .../editor/controller/commands/NewLayerCommand.java | 12 ++++++++++++ .../controller/commands/RenameLayerCommand.java | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/hyperlap2d-runtime-libgdx b/hyperlap2d-runtime-libgdx index 1d08837b..7b7b18f5 160000 --- a/hyperlap2d-runtime-libgdx +++ b/hyperlap2d-runtime-libgdx @@ -1 +1 @@ -Subproject commit 1d08837b743fdc41dd5cf19f18bfdf1bea489857 +Subproject commit 7b7b18f5e406023a7b8d409aae275818c4d7e5a1 diff --git a/src/main/java/games/rednblack/editor/controller/commands/NewLayerCommand.java b/src/main/java/games/rednblack/editor/controller/commands/NewLayerCommand.java index 61c30dfa..749d0005 100644 --- a/src/main/java/games/rednblack/editor/controller/commands/NewLayerCommand.java +++ b/src/main/java/games/rednblack/editor/controller/commands/NewLayerCommand.java @@ -1,5 +1,6 @@ package games.rednblack.editor.controller.commands; +import com.kotcrab.vis.ui.util.dialog.Dialogs; import games.rednblack.editor.renderer.components.LayerMapComponent; import games.rednblack.editor.renderer.data.LayerItemVO; import games.rednblack.editor.utils.runtime.SandboxComponentRetriever; @@ -20,9 +21,20 @@ public class NewLayerCommand extends EntityModifyRevertibleCommand { int index = (int) payload[0]; layerName = (String) payload[1]; + if (layerName.isEmpty()) { + cancel(); + return; + } + int viewingEntity = Sandbox.getInstance().getCurrentViewingEntity(); LayerMapComponent layerMapComponent = SandboxComponentRetriever.get(viewingEntity, LayerMapComponent.class); + if (layerMapComponent.getLayer(layerName) != null) { + cancel(); + Dialogs.showErrorDialog(Sandbox.getInstance().getUIStage(), "Layer name already exists.").padBottom(20).pack(); + return; + } + LayerItemVO vo = new LayerItemVO(layerName); vo.isVisible = true; layerMapComponent.addLayer(index, vo); diff --git a/src/main/java/games/rednblack/editor/controller/commands/RenameLayerCommand.java b/src/main/java/games/rednblack/editor/controller/commands/RenameLayerCommand.java index 65d24ba1..a3ed0bdc 100644 --- a/src/main/java/games/rednblack/editor/controller/commands/RenameLayerCommand.java +++ b/src/main/java/games/rednblack/editor/controller/commands/RenameLayerCommand.java @@ -37,7 +37,9 @@ public class RenameLayerCommand extends EntityModifyRevertibleCommand { String oldName = payload[0]; String newName = payload[1]; - if(oldName.equals(newName)) cancel(); + if(oldName.equals(newName) || newName.isEmpty()) { + cancel(); + } renameLayer(oldName, newName); @@ -56,6 +58,8 @@ public class RenameLayerCommand extends EntityModifyRevertibleCommand { } private void renameLayer(String fromName, String toName) { + if (isCancelled) return; + int viewEntity = Sandbox.getInstance().getCurrentViewingEntity(); NodeComponent nodeComponent = SandboxComponentRetriever.get(viewEntity, NodeComponent.class); LayerMapComponent layerMapComponent = SandboxComponentRetriever.get(viewEntity, LayerMapComponent.class);