using Content.Server.NodeContainer; using Content.Server.NodeContainer.Nodes; using Robust.Shared.Map.Components; namespace Content.Server.Spreader; /// /// Handles the node for . /// Functions as a generic tile-based entity spreader for systems such as puddles or smoke. /// public sealed class SpreaderNode : Node { /// public override IEnumerable GetReachableNodes(TransformComponent xform, EntityQuery nodeQuery, EntityQuery xformQuery, MapGridComponent? grid, IEntityManager entMan) { if (grid == null) yield break; entMan.System().GetNeighbors(xform.Owner, Name, out _, out _, out var neighbors); foreach (var neighbor in neighbors) { if (!nodeQuery.TryGetComponent(neighbor, out var nodeContainer) || !nodeContainer.TryGetNode(Name, out var neighborNode)) { continue; } yield return neighborNode; } } }