using Robust.Shared.GameStates; namespace Content.Shared._DV.NodeCrawl; /// /// Represents an entity in a node network that can be crawled in /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedNodeCrawlSystem), typeof(NodeCrawlerMovementSystem))] public sealed partial class CrawlableNodeComponent : Component { /// /// Node types that can be connected to by this node /// [DataField(required: true)] public List ReachableNodeTypes = new(); /// /// Other entities with that can be reached from this one /// [ViewVariables, AutoNetworkedField] public HashSet ReachableNodes = new(); /// /// Whether this node has an unconnected node and should be exited from on movement /// [ViewVariables, AutoNetworkedField] public bool DeadEnd; /// /// All entities with that are associated with this one /// [DataField, AutoNetworkedField] public HashSet Crawlers = new(); }