public override IEnumerable <Node> GetReachableNodes() { if (!Owner.Transform.Anchored) { yield break; } var compMgr = IoCManager.Resolve <IComponentManager>(); var grid = IoCManager.Resolve <IMapManager>().GetGrid(Owner.Transform.GridID); var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates); foreach (var(_, node) in NodeHelpers.GetCardinalNeighborNodes(compMgr, grid, gridIndex)) { if (node != this) { yield return(node); } } }
public override IEnumerable <Node> GetReachableNodes(TransformComponent xform, EntityQuery <NodeContainerComponent> nodeQuery, EntityQuery <TransformComponent> xformQuery, IMapGrid?grid, IEntityManager entMan) { if (!xform.Anchored || grid == null) { yield break; } var gridIndex = grid.TileIndicesFor(xform.Coordinates); foreach (var(_, node) in NodeHelpers.GetCardinalNeighborNodes(nodeQuery, grid, gridIndex)) { if (node != this) { yield return(node); } } }