diff --git a/Content.Client/NodeContainer/NodeVisualizationOverlay.cs b/Content.Client/NodeContainer/NodeVisualizationOverlay.cs index 989780f3c8..039301d3ce 100644 --- a/Content.Client/NodeContainer/NodeVisualizationOverlay.cs +++ b/Content.Client/NodeContainer/NodeVisualizationOverlay.cs @@ -144,7 +144,7 @@ namespace Content.Client.NodeContainer var grid = _mapManager.GetGrid(gridId); foreach (var (pos, list) in gridDict) { - var centerPos = grid.GridTileToWorld(pos).Position; + var centerPos = (Vector2) pos + grid.TileSize / 2f; list.Sort(NodeDisplayComparer.Instance); var offset = -(list.Count - 1) * nodeOffset / 2; @@ -159,35 +159,40 @@ namespace Content.Client.NodeContainer offset += nodeOffset; } } - } - foreach (var nodeRenderData in _nodeIndex.Values) - { - var pos = nodeRenderData.WorldPos; - var bounds = Box2.CenteredAround(pos, (nodeSize, nodeSize)); + handle.SetTransform(grid.WorldMatrix); - var groupData = nodeRenderData.GroupData; - var color = groupData.Color; - - if (!_hovered.HasValue) - color.A = 0.5f; - else if (_hovered.Value.group != groupData.NetId) - color.A = 0.2f; - else - color.A = 0.75f + MathF.Sin(_time * 4) * 0.25f; - - handle.DrawRect(bounds, color); - - foreach (var reachable in nodeRenderData.NodeDatum.Reachable) + foreach (var nodeRenderData in _nodeIndex.Values) { - if (_nodeIndex.TryGetValue((groupData.NetId, reachable), out var reachDat)) + var pos = nodeRenderData.NodePos; + var bounds = Box2.CenteredAround(pos, (nodeSize, nodeSize)); + + var groupData = nodeRenderData.GroupData; + var color = groupData.Color; + + if (!_hovered.HasValue) + color.A = 0.5f; + else if (_hovered.Value.group != groupData.NetId) + color.A = 0.2f; + else + color.A = 0.75f + MathF.Sin(_time * 4) * 0.25f; + + handle.DrawRect(bounds, color); + + foreach (var reachable in nodeRenderData.NodeDatum.Reachable) { - handle.DrawLine(pos, reachDat.WorldPos, color); + if (_nodeIndex.TryGetValue((groupData.NetId, reachable), out var reachDat)) + { + handle.DrawLine(pos, reachDat.NodePos, color); + } } } + + _nodeIndex.Clear(); } - _nodeIndex.Clear(); + + handle.SetTransform(Matrix3.Identity); _gridIndex.Clear(); } @@ -219,13 +224,13 @@ namespace Content.Client.NodeContainer { public GroupData GroupData; public NodeDatum NodeDatum; - public Vector2 WorldPos; + public Vector2 NodePos; - public NodeRenderData(GroupData groupData, NodeDatum nodeDatum, Vector2 worldPos) + public NodeRenderData(GroupData groupData, NodeDatum nodeDatum, Vector2 nodePos) { GroupData = groupData; NodeDatum = nodeDatum; - WorldPos = worldPos; + NodePos = nodePos; } } }