diff --git a/hyperlap2d-runtime-libgdx b/hyperlap2d-runtime-libgdx index 9246f0f9..4af83894 160000 --- a/hyperlap2d-runtime-libgdx +++ b/hyperlap2d-runtime-libgdx @@ -1 +1 @@ -Subproject commit 9246f0f9e0be743a2b2929fa1efff054899c0ed4 +Subproject commit 4af838946ae3906a181324dd243d2a5d51af070c diff --git a/src/main/java/games/rednblack/editor/system/PhysicsAdjustSystem.java b/src/main/java/games/rednblack/editor/system/PhysicsAdjustSystem.java index 72482c1f..eef42d71 100644 --- a/src/main/java/games/rednblack/editor/system/PhysicsAdjustSystem.java +++ b/src/main/java/games/rednblack/editor/system/PhysicsAdjustSystem.java @@ -28,16 +28,18 @@ public class PhysicsAdjustSystem extends PhysicsSystem { if(physicsBodyComponent.body == null) return; - transformVec.x = transformComponent.originX; - transformVec.y = transformComponent.originY; int parentEntity = parentNodeComponentMapper.get(entity).parentEntity; ParentNodeComponent rootParentNode = parentNodeComponentMapper.get(parentEntity); + float rotation = transformComponent.rotation; if (rootParentNode != null) { + transformVec.x = transformComponent.originX; + transformVec.y = transformComponent.originY; TransformMathUtils.localToSceneCoordinates(entity, transformVec, transformComponentMapper, parentNodeComponentMapper); + rotation = TransformMathUtils.localToSceneRotation(entity, transformComponentMapper, parentNodeComponentMapper); } else { transformVec.x = transformComponent.x + transformComponent.originX; transformVec.y = transformComponent.y + transformComponent.originY; } - physicsBodyComponent.body.setTransform(transformVec, transformComponent.rotation * MathUtils.degreesToRadians); + physicsBodyComponent.body.setTransform(transformVec, rotation * MathUtils.degreesToRadians); } }