Fix nodevis on rotated grid (#5101)

This commit is contained in:
metalgearsloth
2021-11-01 00:44:08 +11:00
committed by GitHub
parent 569e75b987
commit 5d0199c09f

View File

@@ -144,7 +144,7 @@ namespace Content.Client.NodeContainer
var grid = _mapManager.GetGrid(gridId); var grid = _mapManager.GetGrid(gridId);
foreach (var (pos, list) in gridDict) foreach (var (pos, list) in gridDict)
{ {
var centerPos = grid.GridTileToWorld(pos).Position; var centerPos = (Vector2) pos + grid.TileSize / 2f;
list.Sort(NodeDisplayComparer.Instance); list.Sort(NodeDisplayComparer.Instance);
var offset = -(list.Count - 1) * nodeOffset / 2; var offset = -(list.Count - 1) * nodeOffset / 2;
@@ -159,11 +159,12 @@ namespace Content.Client.NodeContainer
offset += nodeOffset; offset += nodeOffset;
} }
} }
}
handle.SetTransform(grid.WorldMatrix);
foreach (var nodeRenderData in _nodeIndex.Values) foreach (var nodeRenderData in _nodeIndex.Values)
{ {
var pos = nodeRenderData.WorldPos; var pos = nodeRenderData.NodePos;
var bounds = Box2.CenteredAround(pos, (nodeSize, nodeSize)); var bounds = Box2.CenteredAround(pos, (nodeSize, nodeSize));
var groupData = nodeRenderData.GroupData; var groupData = nodeRenderData.GroupData;
@@ -182,12 +183,16 @@ namespace Content.Client.NodeContainer
{ {
if (_nodeIndex.TryGetValue((groupData.NetId, reachable), out var reachDat)) if (_nodeIndex.TryGetValue((groupData.NetId, reachable), out var reachDat))
{ {
handle.DrawLine(pos, reachDat.WorldPos, color); handle.DrawLine(pos, reachDat.NodePos, color);
} }
} }
} }
_nodeIndex.Clear(); _nodeIndex.Clear();
}
handle.SetTransform(Matrix3.Identity);
_gridIndex.Clear(); _gridIndex.Clear();
} }
@@ -219,13 +224,13 @@ namespace Content.Client.NodeContainer
{ {
public GroupData GroupData; public GroupData GroupData;
public NodeDatum NodeDatum; 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; GroupData = groupData;
NodeDatum = nodeDatum; NodeDatum = nodeDatum;
WorldPos = worldPos; NodePos = nodePos;
} }
} }
} }