|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
行为树工厂类。 More...
#include <nbt.h>
Public Member Functions | |
| nbt_factory () | |
| 构造函数。 | |
| nbt_factory (const nbt_factory &)=delete | |
| 禁止拷贝构造 | |
| nbt_factory & | operator= (const nbt_factory &)=delete |
| 禁止赋值操作 | |
| BT::BehaviorTreeFactory & | native () |
| 获取底层行为树工厂。 | |
| void | register_action (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册同步动作节点。 | |
| void | register_stateful_action (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册有状态动作节点(可能返回RUNNING)。 | |
| void | register_condition (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册条件节点。 | |
| void | register_decorator (const std::string &aname, nbt_decorator_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册装饰器节点(单个子节点,转换/门控子节点结果)。 | |
| void | register_control (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册控制节点(多个子节点,确定tick顺序和流程)。 | |
| void | register_coro_action (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册协程动作节点(可通过setStatusRunningAndYield()让出执行)。 | |
| void | register_threaded_action (const std::string &aname, nbt_node_callback< TACTOR > afun, const BT::PortsList &aports={}) |
| 注册线程化动作节点(在单独线程上运行tick())。 | |
| void | register_tree (const std::string &axml) |
| 从XML字符串注册行为树。 | |
| void | register_tree_file (const std::string &apath) |
| 从XML文件注册行为树。 | |
| std::unique_ptr< BT::Tree > | create (const std::string &aid, BT::Blackboard::Ptr ablackboard) |
| 创建行为树实例。 | |
| std::unique_ptr< BT::Tree > | create_xml (const std::string &axml, BT::Blackboard::Ptr ablackboard) |
| 从XML字符串创建行为树实例。 | |
Static Public Member Functions | |
| static nbt_factory< TACTOR > & | instance () |
| 获取单例实例。 | |
行为树工厂类。
共享的行为树工厂(每个Actor类型一个单例)。 节点类型在启动时注册一次;所有Actor实例共享同一个工厂。
| TACTOR | Actor类型 |
|
inline |
构造函数。
初始化行为树工厂实例。
|
inline |
创建行为树实例。
| aid | 行为树ID |
| ablackboard | 黑板指针 |
|
inline |
从XML字符串创建行为树实例。
| axml | XML字符串 |
| ablackboard | 黑板指针 |
|
inlinestatic |
获取单例实例。
|
inline |
获取底层行为树工厂。
| void ngl::nbt_factory< TACTOR >::register_action | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册同步动作节点。
注册同步动作节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
创建一个NodeBuilder lambda,将用户回调包装到nbt_action_node中, 然后通过工厂的registerBuilder()注册节点。
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_condition | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册条件节点。
注册条件节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 条件回调函数 |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_control | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册控制节点(多个子节点,确定tick顺序和流程)。
注册控制节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 控制节点回调函数 |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_coro_action | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册协程动作节点(可通过setStatusRunningAndYield()让出执行)。
注册协程动作节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 协程回调函数 |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_decorator | ( | const std::string & | aname, |
| nbt_decorator_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册装饰器节点(单个子节点,转换/门控子节点结果)。
注册装饰器节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 装饰器回调函数(接收子节点结果) |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_stateful_action | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册有状态动作节点(可能返回RUNNING)。
注册有状态动作节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表 |
| void ngl::nbt_factory< TACTOR >::register_threaded_action | ( | const std::string & | aname, |
| nbt_node_callback< TACTOR > | afun, | ||
| const BT::PortsList & | aports = {} ) |
注册线程化动作节点(在单独线程上运行tick())。
注册线程化动作节点的模板实现。
| aname | 节点名称 |
| afun | 节点回调函数 |
| aports | 端口列表,默认为空 |
| TACTOR | Actor类型 |
| aname | 节点名称 |
| afun | 线程化回调函数 |
| aports | 端口列表 |
|
inline |
从XML字符串注册行为树。
| axml | XML字符串 |
|
inline |
从XML文件注册行为树。
| apath | XML文件路径 |