From 8a0d9ff5b26f1015180cbe376d38bdbff84c1483 Mon Sep 17 00:00:00 2001 From: fgnm Date: Tue, 4 Jan 2022 21:03:41 +0100 Subject: [PATCH] Proper custom variable format --- assets/plugins/plugin-tiled-0.1.0.jar | Bin 102984 -> 102997 bytes hyperlap2d-runtime-libgdx | 2 +- .../editor/plugin/tiled/TiledPlugin.java | 10 +++--- .../tiled/manager/AutoGridTileManager.java | 6 ++-- .../drawStrategy/AutoTileDrawStrategy.java | 2 +- .../commands/CustomVariableModifyCommand.java | 2 +- .../migrations/migrators/VersionMigTo100.java | 30 +++++++++++++++++- .../view/ui/panel/CustomVariablesPanel.java | 10 +++--- 8 files changed, 45 insertions(+), 17 deletions(-) diff --git a/assets/plugins/plugin-tiled-0.1.0.jar b/assets/plugins/plugin-tiled-0.1.0.jar index 64087c4484764f44cdd33812aa99d778770c5fc2..a2c0e66c0c5215b81b2d3f1e996dddeec54e844b 100644 GIT binary patch delta 19028 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 z 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 delta 19011 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 diff --git a/hyperlap2d-runtime-libgdx b/hyperlap2d-runtime-libgdx index c24d541c..6fd267ee 160000 --- a/hyperlap2d-runtime-libgdx +++ b/hyperlap2d-runtime-libgdx @@ -1 +1 @@ -Subproject commit c24d541c98b0377b3ad9dec1f7550d5fe5692d1d +Subproject commit 6fd267ee6f72f51e97f1f01e5076903396c61fdd diff --git a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/TiledPlugin.java b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/TiledPlugin.java index 4902392b..294bcdc8 100644 --- a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/TiledPlugin.java +++ b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/TiledPlugin.java @@ -26,6 +26,7 @@ import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.ObjectMap; import com.kotcrab.vis.ui.VisUI; import com.kotcrab.vis.ui.widget.VisImageButton; @@ -45,7 +46,6 @@ import games.rednblack.editor.renderer.components.TextureRegionComponent; import games.rednblack.editor.renderer.components.TransformComponent; import games.rednblack.editor.renderer.components.ZIndexComponent; import games.rednblack.editor.renderer.utils.ComponentRetriever; -import games.rednblack.editor.renderer.utils.CustomVariables; import games.rednblack.h2d.common.MenuAPI; import games.rednblack.h2d.common.MsgAPI; import games.rednblack.h2d.common.plugins.H2DPluginAdapter; @@ -104,7 +104,7 @@ public class TiledPlugin extends H2DPluginAdapter { private TileVO selectedTileVO; private AutoTileVO selectedAutoTileVO; - private CustomVariables currentEntityCustomVariables; + private ObjectMap currentEntityCustomVariables; private MainItemComponent currentEntityMainItemComponent; private TransformComponent currentEntityTransformComponent; @@ -114,7 +114,7 @@ public class TiledPlugin extends H2DPluginAdapter { super(CLASS_NAME); selectedTileVO = new TileVO(); selectedAutoTileVO = new AutoTileVO(); - currentEntityCustomVariables = new CustomVariables(); + currentEntityCustomVariables = new ObjectMap<>(); } @Override @@ -179,8 +179,8 @@ public class TiledPlugin extends H2DPluginAdapter { currentEntityMainItemComponent = ComponentRetriever.get(entity, MainItemComponent.class, getAPI().getEngine()); currentEntityCustomVariables = currentEntityMainItemComponent.customVariables; - if (currentEntityCustomVariables.getIntegerVariable(ROW) == row - && currentEntityCustomVariables.getIntegerVariable(COLUMN) == column) { + if (Integer.parseInt(currentEntityCustomVariables.get(ROW)) == row + && Integer.parseInt(currentEntityCustomVariables.get(COLUMN)) == column) { return entity; } } diff --git a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/manager/AutoGridTileManager.java b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/manager/AutoGridTileManager.java index ef0ab4be..ff988f8e 100644 --- a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/manager/AutoGridTileManager.java +++ b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/manager/AutoGridTileManager.java @@ -30,8 +30,8 @@ public class AutoGridTileManager { if (!mainItemComponent.tags.contains(TiledPlugin.AUTO_TILE_TAG)) { continue; } - int col = mainItemComponent.customVariables.getIntegerVariable(TiledPlugin.COLUMN); - int row = mainItemComponent.customVariables.getIntegerVariable(TiledPlugin.ROW); + int col = Integer.parseInt(mainItemComponent.customVariables.get(TiledPlugin.COLUMN)); + int row = Integer.parseInt(mainItemComponent.customVariables.get(TiledPlugin.ROW)); int c = 0; int val = 0; @@ -78,7 +78,7 @@ public class AutoGridTileManager { int index = getIndex(c, val); - String region = mainItemComponent.customVariables.getStringVariable(TiledPlugin.REGION) + index; + String region = mainItemComponent.customVariables.get(TiledPlugin.REGION) + index; replaceRegionCommandBuilder.begin(entity); replaceRegionCommandBuilder.setRegion(tiledPlugin.getAPI().getSceneLoader().getRm().getTextureRegion(region)); replaceRegionCommandBuilder.setRegionName(region); diff --git a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/tools/drawStrategy/AutoTileDrawStrategy.java b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/tools/drawStrategy/AutoTileDrawStrategy.java index d9874793..8e6f03ac 100644 --- a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/tools/drawStrategy/AutoTileDrawStrategy.java +++ b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/tools/drawStrategy/AutoTileDrawStrategy.java @@ -66,7 +66,7 @@ public class AutoTileDrawStrategy extends BasicDrawStrategy { if (!checkValidTile(entity)) return; MainItemComponent mainItemComponent = ComponentRetriever.get(entity, MainItemComponent.class, tiledPlugin.getAPI().getEngine()); - if (tiledPlugin.getSelectedAutoTileName().equals(mainItemComponent.customVariables.getStringVariable(TiledPlugin.ORIG_AUTO_TILE))) { + if (tiledPlugin.getSelectedAutoTileName().equals(mainItemComponent.customVariables.get(TiledPlugin.ORIG_AUTO_TILE))) { // we only allow an update when the auto-tiles is different // firstly, it does not make any sense to randomly reselect another alternative tile // secondly, when dragging it constantly reselects between the alternative, making rare tiles even rarer diff --git a/src/main/java/games/rednblack/editor/controller/commands/CustomVariableModifyCommand.java b/src/main/java/games/rednblack/editor/controller/commands/CustomVariableModifyCommand.java index fdd4ad3e..93cfa4d3 100644 --- a/src/main/java/games/rednblack/editor/controller/commands/CustomVariableModifyCommand.java +++ b/src/main/java/games/rednblack/editor/controller/commands/CustomVariableModifyCommand.java @@ -48,7 +48,7 @@ public class CustomVariableModifyCommand extends EntityModifyRevertibleCommand { private void removeVariable(String key) { int entity = EntityUtils.getByUniqueId(entityId); MainItemComponent mainItemComponent = SandboxComponentRetriever.get(entity, MainItemComponent.class); - value = mainItemComponent.customVariables.getStringVariable(key); //storing the backup + value = mainItemComponent.customVariables.get(key); //storing the backup mainItemComponent.removeCustomVars(key); } diff --git a/src/main/java/games/rednblack/editor/data/migrations/migrators/VersionMigTo100.java b/src/main/java/games/rednblack/editor/data/migrations/migrators/VersionMigTo100.java index 638c7d6c..89fe75a4 100644 --- a/src/main/java/games/rednblack/editor/data/migrations/migrators/VersionMigTo100.java +++ b/src/main/java/games/rednblack/editor/data/migrations/migrators/VersionMigTo100.java @@ -6,6 +6,7 @@ import com.badlogic.gdx.math.Circle; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; import com.badlogic.gdx.utils.JsonWriter; +import com.badlogic.gdx.utils.ObjectMap; import games.rednblack.editor.data.migrations.IVersionMigrator; import games.rednblack.editor.data.migrations.data020.CompositeVO; import games.rednblack.editor.renderer.data.*; @@ -17,6 +18,8 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class VersionMigTo100 implements IVersionMigrator { private final Json json = new Json(); @@ -25,6 +28,8 @@ public class VersionMigTo100 implements IVersionMigrator { private ProjectVO projectVO; private games.rednblack.editor.data.migrations.data020.ProjectInfoVO projectInfoVO; + final Pattern customVarsPattern = Pattern.compile("\"customVars\":\"(.*?)\"", Pattern.MULTILINE); + @Override public void setProject(String path, ProjectVO vo, ProjectInfoVO projectInfoVO) { projectPath = path; @@ -40,6 +45,7 @@ public class VersionMigTo100 implements IVersionMigrator { e.printStackTrace(); } projectInfoContents = projectInfoContents.replaceAll("\"polygons\"", "\"polygonizedVertices\""); + projectInfoContents = migrateCustomVariableFormat(projectInfoContents); this.projectInfoVO = json.fromJson(games.rednblack.editor.data.migrations.data020.ProjectInfoVO.class, projectInfoContents); } @@ -50,7 +56,10 @@ public class VersionMigTo100 implements IVersionMigrator { try { for (File scene : scenesDirectoryHandle.file().listFiles()) { String sceneString = FileUtils.readFileToString(scene, "utf-8"); + //Migrate polygon vertices sceneString = sceneString.replaceAll("\"polygons\"", "\"polygonizedVertices\""); + sceneString = migrateCustomVariableFormat(sceneString); + games.rednblack.editor.data.migrations.data020.SceneVO sceneToExport = json.fromJson(games.rednblack.editor.data.migrations.data020.SceneVO.class, sceneString); SceneVO newVO = new SceneVO(); @@ -169,7 +178,6 @@ public class VersionMigTo100 implements IVersionMigrator { target.itemIdentifier = vo.itemIdentifier; target.itemName = vo.itemName; if(vo.tags != null) target.tags = Arrays.copyOf(vo.tags, vo.tags.length); - target.customVars = vo.customVars; target.x = vo.x; target.y = vo.y; target.rotation = vo.rotation; @@ -211,4 +219,24 @@ public class VersionMigTo100 implements IVersionMigrator { target.renderingLayer = vo.renderingLayer; } + + private String migrateCustomVariableFormat(String jsonSource) { + //Migrate old custom variable format + Matcher matcher = customVarsPattern.matcher(jsonSource); + while (matcher.find()) { + String fullMatch = matcher.group(0); + String varString = matcher.group(1); + ObjectMap newVars = new ObjectMap<>(); + String[] vars = varString.split(";"); + for (String var : vars) { + String[] tmp = var.split(":"); + if (tmp.length > 1) { + newVars.put(tmp[0], tmp[1]); + } + } + String newVarsString = "\"customVariables\":" + json.toJson(newVars); + jsonSource = jsonSource.replaceAll(fullMatch, newVarsString); + } + return jsonSource; + } } diff --git a/src/main/java/games/rednblack/editor/view/ui/panel/CustomVariablesPanel.java b/src/main/java/games/rednblack/editor/view/ui/panel/CustomVariablesPanel.java index c366fec2..d3943962 100644 --- a/src/main/java/games/rednblack/editor/view/ui/panel/CustomVariablesPanel.java +++ b/src/main/java/games/rednblack/editor/view/ui/panel/CustomVariablesPanel.java @@ -21,10 +21,10 @@ package games.rednblack.editor.view.ui.panel; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; +import com.badlogic.gdx.utils.ObjectMap; import com.kotcrab.vis.ui.VisUI; import com.kotcrab.vis.ui.widget.*; import games.rednblack.editor.HyperLap2DFacade; -import games.rednblack.editor.renderer.utils.CustomVariables; import games.rednblack.h2d.common.UIDraggablePanel; import games.rednblack.h2d.common.view.ui.StandardWidgetsFactory; @@ -87,7 +87,7 @@ public class CustomVariablesPanel extends UIDraggablePanel { invalidateHeight(); } - public void updateView(CustomVariables vars) { + public void updateView(ObjectMap vars) { variablesList.clear(); createAddVariableTable(); @@ -96,9 +96,9 @@ public class CustomVariablesPanel extends UIDraggablePanel { variablesList.row(); variablesList.addSeparator().colspan(3).expandX().fillX().row(); - for (Map.Entry entry : vars.getHashMap().entrySet()) { - final String key = entry.getKey(); - String value = entry.getValue(); + for (ObjectMap.Entry entry : vars) { + String key = entry.key; + String value = entry.value; VisTable keyTbl = new VisTable(); keyTbl.setBackground(VisUI.getSkin().getDrawable("layer-bg"));