// // WaitableStateBase.hpp // redream_runtime // // Created by zhu on 2023/5/24. // #ifndef WaitableStateBase_hpp #define WaitableStateBase_hpp #include "cocos2d.h" #include "ReboltRunDelegate.hpp" namespace red{ class RedBehaviacTree; } namespace redream { typedef enum ReboltRedManagerBTState { INVALID, SUCCESS, FAILURE, RUNNING, } ReboltRedManagerBTState; typedef struct RunningState{ ReboltRedManagerBTState btState; int customState; RunningState() { btState = ReboltRedManagerBTState::RUNNING; customState = 0; } } RunningState; class ReboltRedManager; class WaitableStateBase : public Ref{ public: WaitableStateBase(); virtual void run() {}; virtual void run(ReboltErrorInfo& error) {}; virtual RunningState getRunningState() {return _runningState;}; virtual void onSuccessEnd(); virtual void onFailureEnd(); void setFatherTree(red::RedBehaviacTree* ft); red::RedBehaviacTree* getFatherTree(){return _fatherTree;} void setReboltRedManager(ReboltRedManager* rm); ReboltRedManager* getReboltRedManager(){return _reboltManager;} protected: red::RedBehaviacTree* _fatherTree; ReboltRedManager* _reboltManager; RunningState _runningState; }; }; #endif /* WaitableStateBase_hpp */