// // AsyncWaiter.hpp // redream_runtime // // Created by Chao on 2023/5/29. // #ifndef AsyncWaiter_hpp #define AsyncWaiter_hpp #include "cocos2d.h" #include "ReboltRunDelegate.hpp" namespace red{ class RedBehaviacTree; } namespace redream { class AsyncWaiterContainer; class ReboltRedManager; class AsyncWaiter : public Ref { public: virtual ~AsyncWaiter() {}; virtual void run() {}; virtual void run(ReboltErrorInfo& error) {}; void onEnd(); void addToContainer(AsyncWaiterContainer* container); inline void setFatherTree(red::RedBehaviacTree* ft) {_fatherTree = ft;}; inline red::RedBehaviacTree* getFatherTree(){return _fatherTree;} inline void setReboltRedManager(ReboltRedManager* rm) {_reboltManager = rm;}; inline ReboltRedManager* getReboltRedManager(){return _reboltManager;} inline void setCallbackTreeId(std::string callbackTreeId){_callbackTreeId = callbackTreeId;} protected: red::RedBehaviacTree* _fatherTree = nullptr; ReboltRedManager* _reboltManager = nullptr; std::string _callbackTreeId = ""; AsyncWaiterContainer* _container = nullptr; }; }; #endif /* AsyncWaiter_hpp */