1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef RUBehaviacTree_h
- #define RUBehaviacTree_h
- #include "RUDefine.h"
- #include "behaviac/behaviac.h"
- NS_RU_BEGIN
- class RUBehaviacTree : public behaviac::Agent {
- friend class RUBehaviacTreeManger;
- public:
- RUBehaviacTree();
- virtual ~RUBehaviacTree();
- bool loadBt(const std::string& btName);
- virtual void setData(const std::map<std::string, std::string>& stringMap);
- void runBehaviacTree();
- void runBehaviacTree(const std::map<std::string, std::string>& stringMap, std::function<void(bool isSuccess)> treeRunEndCb, bool removeSelf = false );
- bool isRunning();
- protected:
- behaviac::EBTStatus _runIntervalAction(const std::string& actKey, const std::function<void(std::function<void(bool isSuccess)>)>& actFunc);
- private:
- void _update();
- private:
- bool _isRunning = false;
- std::function<void(bool isSuccess)> _treeRunEndCb = nullptr;
- std::string _actKey;
- behaviac::EBTStatus _actStatus = behaviac::EBTStatus::BT_INVALID;
- bool _removeSelf = false;
- };
- NS_RU_END
- #endif /* RUBehaviacTree_h */
|