From 9519fc7ba48809bf76d4be96e82cc4aa99da5fba Mon Sep 17 00:00:00 2001 From: fgnm Date: Sat, 21 Aug 2021 12:59:09 +0200 Subject: [PATCH] Remove `ComponentRetriever` from `TransformMathUtils` --- hyperlap2d-runtime-libgdx | 2 +- .../editor/view/stage/input/SandboxInputAdapter.java | 12 +++++++++--- .../editor/view/ui/followers/BasicFollower.java | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hyperlap2d-runtime-libgdx b/hyperlap2d-runtime-libgdx index 6bdace53..29f25633 160000 --- a/hyperlap2d-runtime-libgdx +++ b/hyperlap2d-runtime-libgdx @@ -1 +1 @@ -Subproject commit 6bdace5325d3304d55f7a253c4f1a3eebac27d9f +Subproject commit 29f25633394a2fbf117dbfec89e00d63d0be0cf1 diff --git a/src/main/java/games/rednblack/editor/view/stage/input/SandboxInputAdapter.java b/src/main/java/games/rednblack/editor/view/stage/input/SandboxInputAdapter.java index e8d325d9..458a1b71 100644 --- a/src/main/java/games/rednblack/editor/view/stage/input/SandboxInputAdapter.java +++ b/src/main/java/games/rednblack/editor/view/stage/input/SandboxInputAdapter.java @@ -11,8 +11,11 @@ import com.badlogic.gdx.utils.SnapshotArray; import com.badlogic.gdx.utils.viewport.Viewport; import games.rednblack.editor.HyperLap2DFacade; import games.rednblack.editor.renderer.components.NodeComponent; +import games.rednblack.editor.renderer.components.ParentNodeComponent; +import games.rednblack.editor.renderer.components.TransformComponent; import games.rednblack.editor.renderer.components.ViewPortComponent; import games.rednblack.editor.renderer.data.LayerItemVO; +import games.rednblack.editor.renderer.utils.ComponentRetriever; import games.rednblack.editor.renderer.utils.TransformMathUtils; import games.rednblack.editor.utils.EntityBounds; import games.rednblack.editor.utils.runtime.EntityUtils; @@ -103,7 +106,9 @@ public class SandboxInputAdapter implements InputProcessor { inpputListenerComponent = mapper.get(target); if(inpputListenerComponent == null) return false; Array listeners = inpputListenerComponent.getAllListeners(); - TransformMathUtils.sceneToLocalCoordinates(target, hitTargetLocalCoordinates, sandbox.getEngine()); + ComponentMapper transformMapper = (ComponentMapper) ComponentRetriever.getMapper(TransformComponent.class, sandbox.getEngine()); + ComponentMapper parentMapper = (ComponentMapper) ComponentRetriever.getMapper(ParentNodeComponent.class, sandbox.getEngine()); + TransformMathUtils.sceneToLocalCoordinates(target, hitTargetLocalCoordinates, transformMapper, parentMapper); for (int j = 0, s = listeners.size; j < s; j++) { if (listeners.get(j).touchDown(target, hitTargetLocalCoordinates.x, hitTargetLocalCoordinates.y, pointer, button)) { return true; @@ -220,8 +225,9 @@ public class SandboxInputAdapter implements InputProcessor { public int hit(int root, float x, float y){ Vector2 localCoordinates = tmpVector2.set(x, y); - - TransformMathUtils.parentToLocalCoordinates(root, localCoordinates, sandbox.getEngine()); + + ComponentMapper transformMapper = (ComponentMapper) ComponentRetriever.getMapper(TransformComponent.class, sandbox.getEngine()); + TransformMathUtils.parentToLocalCoordinates(root, localCoordinates, transformMapper); NodeComponent nodeComponent = SandboxComponentRetriever.get(root, NodeComponent.class); SnapshotArray childrenEntities = nodeComponent.children; diff --git a/src/main/java/games/rednblack/editor/view/ui/followers/BasicFollower.java b/src/main/java/games/rednblack/editor/view/ui/followers/BasicFollower.java index 8509ed94..fee2b948 100644 --- a/src/main/java/games/rednblack/editor/view/ui/followers/BasicFollower.java +++ b/src/main/java/games/rednblack/editor/view/ui/followers/BasicFollower.java @@ -18,6 +18,7 @@ package games.rednblack.editor.view.ui.followers; +import com.artemis.ComponentMapper; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; @@ -27,6 +28,7 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Pools; import games.rednblack.editor.renderer.components.DimensionsComponent; import games.rednblack.editor.renderer.components.MainItemComponent; +import games.rednblack.editor.renderer.components.ParentNodeComponent; import games.rednblack.editor.renderer.components.TransformComponent; import games.rednblack.editor.renderer.utils.TransformMathUtils; import games.rednblack.editor.utils.runtime.SandboxComponentRetriever; @@ -76,7 +78,9 @@ public abstract class BasicFollower extends Group { position.x = 0; position.y = 0; - TransformMathUtils.localToAscendantCoordinates(sandbox.getCurrentViewingEntity(), entity, position, sandbox.getEngine()); + ComponentMapper transformMapper = (ComponentMapper) ComponentMapper.getFor(TransformComponent.class, sandbox.getEngine()); + ComponentMapper parentNodeMapper = (ComponentMapper) ComponentMapper.getFor(ParentNodeComponent.class, sandbox.getEngine()); + TransformMathUtils.localToAscendantCoordinates(sandbox.getCurrentViewingEntity(), entity, position, transformMapper, parentNodeMapper); position = Sandbox.getInstance().worldToScreen(position); setX( ( int ) ( position.x ) );