From 77bc1dff5172195e1695d2419514e187614c98c9 Mon Sep 17 00:00:00 2001 From: Nilton Constantino Date: Sun, 21 Jun 2026 08:34:25 +0100 Subject: [PATCH] fix stage world sync underlay origin --- .../Editor/GON/StageEditor/StageMapCanvas.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/Editor/GON/StageEditor/StageMapCanvas.cs b/Assets/Scripts/Editor/GON/StageEditor/StageMapCanvas.cs index 4c6e5d7..aaa27f8 100644 --- a/Assets/Scripts/Editor/GON/StageEditor/StageMapCanvas.cs +++ b/Assets/Scripts/Editor/GON/StageEditor/StageMapCanvas.cs @@ -523,9 +523,15 @@ namespace Editor.GON.StageEditor return; } + sync.TryGetWorldBounds(out var worldBounds); + var worldOrigin = worldBounds.size == Vector2Int.zero + ? Vector2Int.zero + : new Vector2Int(worldBounds.xMin, worldBounds.yMin); + foreach (var tile in sync.worldTiles) { - DrawHatching(p, WorldTileRect(tile, cellsPerWorldTile), StageEditorColors.WorldSyncFootprint); + DrawHatching(p, WorldTileRect(tile, worldOrigin, cellsPerWorldTile), + StageEditorColors.WorldSyncFootprint); } foreach (var endpoint in sync.expectedEndpoints) @@ -535,7 +541,7 @@ namespace Editor.GON.StageEditor continue; } - var rect = WorldTileRect(endpoint.worldTile, cellsPerWorldTile); + var rect = WorldTileRect(endpoint.worldTile, worldOrigin, cellsPerWorldTile); switch (endpoint.kind) { case JEndpointKind.Anchor: @@ -967,11 +973,13 @@ namespace Editor.GON.StageEditor rect.height * cellPixels); } - private Rect WorldTileRect(JWorldTile tile, float cellsPerWorldTile) + private Rect WorldTileRect(JWorldTile tile, Vector2Int worldOrigin, float cellsPerWorldTile) { + var localX = tile.x - worldOrigin.x; + var localY = tile.y - worldOrigin.y; return new Rect( - pan.x + tile.x * cellsPerWorldTile * cellPixels, - pan.y + tile.y * cellsPerWorldTile * cellPixels, + pan.x + localX * cellsPerWorldTile * cellPixels, + pan.y + localY * cellsPerWorldTile * cellPixels, cellsPerWorldTile * cellPixels, cellsPerWorldTile * cellPixels); }