fix stage world sync underlay origin

This commit is contained in:
Nilton Constantino 2026-06-21 08:34:25 +01:00
parent 28147da443
commit 77bc1dff51
No known key found for this signature in database

View File

@ -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);
}