ComponentTypeID GetComponentTypeID_Static()
Singleton registry for all BT node types.
bool CanHaveChildren(const std::string &typeName) const
Check if a node type can have children.
BTNodeRegistry & operator=(const BTNodeRegistry &)=delete
std::map< std::string, BTNodeTypeInfo > m_nodeTypes
void RegisterNodeType(const BTNodeTypeInfo &info)
Register a new node type.
int GetMaxChildren(const std::string &typeName) const
Get maximum number of children for a node type.
std::vector< std::string > GetNodeTypesByCategory(BTNodeCategory category) const
Get node types in a specific category.
const BTNodeTypeInfo * GetNodeTypeInfo(const std::string &typeName) const
Get metadata for a node type.
BTNodeRegistry(const BTNodeRegistry &)=delete
bool IsValidNodeType(const std::string &typeName) const
Check if a node type exists.
~BTNodeRegistry()=default
std::vector< std::string > GetAllNodeTypes() const
Get all registered node type names.
void InitializeBuiltInTypes()
Initialize all built-in BT node types.
static BTNodeRegistry & Get()
Get singleton instance.
int GetMinChildren(const std::string &typeName) const
Get minimum number of children for a node type.
BTNodeCategory
Categories of behavior tree nodes.
@ Action
Leaf execution nodes (Wait, Move, Attack, etc.)
@ Composite
Flow control nodes (Selector, Sequence, Parallel)
@ Decorator
Modifiers (Inverter, Repeater, Cooldown, etc.)
@ Condition
Boolean checks (HasTarget, InRange, etc.)
< Provides AssetID and INVALID_ASSET_ID
Metadata for a behavior tree node type.
BTNodeCategory category
Node category.
std::string displayName
Human-readable name (e.g., "Selector")
std::string description
Description of functionality.
bool allowsDecorator
Can this node be decorated?
std::string typeName
Type identifier (e.g., "BT_Selector")
std::vector< std::string > parameterNames
Parameter names for this type.
std::string icon
Unicode icon or symbol.
int minChildren
Minimum children (-1 = no limit)
int maxChildren
Maximum children (-1 = no limit)
uint32_t color
RGBA color (0xAABBGGRR format)