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