using System.Linq; namespace Content.Shared.NodeContainer.NodeGroups; /// /// Maintains a collection of s, and performs operations requiring a list of /// all connected s. /// public interface INodeGroup { bool Remaking { get; } /// /// The list of nodes currently in this group. /// IReadOnlyList Nodes { get; } void Create(NodeGroupID groupId); void Initialize(Node sourceNode, IEntityManager entMan); void RemoveNode(Node node); void LoadNodes(List groupNodes); // In theory, the SS13 curse ensures this method will never be called. void AfterRemake(IEnumerable> newGroups); /// /// Return any additional data to display for the node-visualizer debug overlay. /// string? GetDebugData(); }