ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
nbt.h File Reference

行为树集成:节点工厂、执行上下文和各种节点类型封装。 More...

#include "actor/actor_base/core/nguid.h"
#include <behaviortree_cpp/decorator_node.h>
#include <behaviortree_cpp/control_node.h>
#include <behaviortree_cpp/bt_factory.h>
#include <unordered_map>
#include <functional>
#include <memory>
#include <string>

Classes

class  ngl::nbt_factory< TACTOR >
 行为树工厂类。 More...
class  ngl::nbt_context< TACTOR >
 前置声明:行为树执行上下文类 More...
class  ngl::nbt_action_node< TACTOR >
 同步动作节点包装类。 More...
class  ngl::nbt_stateful_action_node< TACTOR >
 有状态动作节点包装类(状态机生命周期)。 More...
class  ngl::nbt_condition_node< TACTOR >
 条件节点包装类。 More...
class  ngl::nbt_decorator_node< TACTOR >
 装饰器节点包装类(单个子节点)。 More...
class  ngl::nbt_control_node< TACTOR >
 控制节点包装类(多个子节点)。 More...
class  ngl::nbt_coro_action_node< TACTOR >
 协程动作节点包装类。 More...
class  ngl::nbt_threaded_action_node< TACTOR >
 线程化动作节点包装类。 More...

Typedefs

using ngl::nbt_status = BT::NodeStatus
 节点状态类型别名
template<typename TACTOR>
using ngl::nbt_node_callback = std::function<nbt_status(nbt_context<TACTOR>&, BT::TreeNode&)>
 节点回调函数类型。
template<typename TACTOR>
using ngl::nbt_decorator_callback = std::function<nbt_status(nbt_context<TACTOR>&, nbt_status, BT::TreeNode&)>
 装饰器回调函数类型。

Functions

template<typename TACTOR>
nbt_context< TACTOR > * ngl::nbt_detail::context (const BT::NodeConfig &aconfig)

Detailed Description

行为树集成:节点工厂、执行上下文和各种节点类型封装。

本文件提供了行为树(Behavior Tree)的完整集成,包括:

  • 行为树工厂类nbt_factory
  • 执行上下文类nbt_context
  • 各种节点类型的封装类(动作、条件、装饰器、控制节点等)
  • 协程和线程化动作节点支持

这些类用于实现游戏AI和复杂的行为逻辑。

Typedef Documentation

◆ nbt_decorator_callback

template<typename TACTOR>
using ngl::nbt_decorator_callback = std::function<nbt_status(nbt_context<TACTOR>&, nbt_status, BT::TreeNode&)>

装饰器回调函数类型。

接收执行上下文引用、子节点tick结果和树节点引用,返回节点状态。

Template Parameters
TACTORActor类型

◆ nbt_node_callback

template<typename TACTOR>
using ngl::nbt_node_callback = std::function<nbt_status(nbt_context<TACTOR>&, BT::TreeNode&)>

节点回调函数类型。

接收执行上下文引用和树节点引用,返回节点状态。

Template Parameters
TACTORActor类型