using Content.Shared.NodeContainer; using Robust.Shared.Map; using Robust.Shared.Map.Components; namespace Content.Server.NodeContainer.Nodes { [DataDefinition] public sealed partial class PortablePipeNode : PipeNode { public override IEnumerable GetReachableNodes( Entity xform, EntityQuery nodeQuery, EntityQuery xformQuery, Entity? grid, IEntityManager entMan) { if (!xform.Comp.Anchored || grid is not { } gridEnt) yield break; var mapSystem = entMan.System(); var gridIndex = mapSystem.TileIndicesFor(gridEnt, xform.Comp.Coordinates); foreach (var node in NodeHelpers.GetNodesInTile(nodeQuery, gridEnt, gridIndex, mapSystem)) { if (node is PortPipeNode) yield return node; } foreach (var node in base.GetReachableNodes(xform, nodeQuery, xformQuery, grid, entMan)) { yield return node; } } } }