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();
}