Update NodeHelpers and Node.GetReachableNodes to use Entity<TransformComponent> and Entity<MapGridComponent> (#37734)

* Add overloads for NodeHelpers methods, obsolete old ones

* Pass in SharedMapSystem instead of IEntityManager

* Change GetReachableNodes signature, deal with aftermath

* Allow non-grid nodes

* Change GetReachableNodes to also take Entity<TransformComponent>

* Remove vestigial ReSharper hint

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Formatting

---------

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
This commit is contained in:
Tayrtahn
2026-06-29 12:44:03 +02:00
committed by Coryler
co-authored by TemporalOroboros
parent 6db5d7860a
commit efa47d601c
13 changed files with 141 additions and 92 deletions
@@ -350,12 +350,12 @@ namespace Content.Server.NodeContainer.EntitySystems
private IEnumerable<Node> GetCompatibleNodes(Node node, EntityQuery<TransformComponent> xformQuery, EntityQuery<NodeContainerComponent> nodeQuery)
{
var xform = xformQuery.GetComponent(node.Owner);
TryComp<MapGridComponent>(xform.GridUid, out var grid);
Entity<MapGridComponent>? gridEnt = TryComp<MapGridComponent>(xform.GridUid, out var grid) ? (xform.GridUid.Value, grid) : null;
if (!node.Connectable(EntityManager, xform))
yield break;
foreach (var reachable in node.GetReachableNodes(xform, nodeQuery, xformQuery, grid, EntityManager))
foreach (var reachable in node.GetReachableNodes((node.Owner, xform), nodeQuery, xformQuery, gridEnt, EntityManager))
{
DebugTools.Assert(reachable != node, "GetReachableNodes() should not include self.");