private readonly IInputManager _inputManager;
private readonly IEntityManager _entityManager;
private readonly SharedTransformSystem _transformSystem;
+ private readonly SharedMapSystem _mapSystem;
private readonly Dictionary<(int, int), NodeRenderData> _nodeIndex = new();
- private readonly Dictionary<EntityUid, Dictionary<Vector2i, List<(GroupData, NodeDatum)>>> _gridIndex = new ();
+ private readonly Dictionary<EntityUid, Dictionary<Vector2i, List<(GroupData, NodeDatum)>>> _gridIndex = new();
private List<Entity<MapGridComponent>> _grids = new();
private readonly Font _font;
_inputManager = inputManager;
_entityManager = entityManager;
_transformSystem = _entityManager.System<SharedTransformSystem>();
+ _mapSystem = _entityManager.System<SharedMapSystem>();
_font = cache.GetFont("/Fonts/NotoSans/NotoSans-Regular.ttf", 12);
}
var xform = _entityManager.GetComponent<TransformComponent>(_entityManager.GetEntity(node.Entity));
if (!_entityManager.TryGetComponent<MapGridComponent>(xform.GridUid, out var grid))
return;
- var gridTile = grid.TileIndicesFor(xform.Coordinates);
+ var gridTile = _mapSystem.TileIndicesFor((xform.GridUid.Value, grid), xform.Coordinates);
var sb = new StringBuilder();
sb.Append($"entity: {node.Entity}\n");
if (float.IsNaN(coords.Position.X) || float.IsNaN(coords.Position.Y))
continue;
- var tile = gridDict.GetOrNew(grid.Comp.TileIndicesFor(coords));
+ var tile = gridDict.GetOrNew(_mapSystem.TileIndicesFor(grid, coords));
foreach (var (group, nodeDatum) in nodeData)
{
var lCursorBox = invMatrix.TransformBox(cursorBox);
foreach (var (pos, list) in gridDict)
{
- var centerPos = (Vector2) pos + grid.TileSizeHalfVector;
+ var centerPos = (Vector2)pos + grid.TileSizeHalfVector;
list.Sort(NodeDisplayComparer.Instance);
var offset = -(list.Count - 1) * nodeOffset / 2;