WaitableStateBase.hpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // WaitableStateBase.hpp
  3. // redream_runtime
  4. //
  5. // Created by zhu on 2023/5/24.
  6. //
  7. #ifndef WaitableStateBase_hpp
  8. #define WaitableStateBase_hpp
  9. #include "cocos2d.h"
  10. #include "ReboltRunDelegate.hpp"
  11. namespace red{
  12. class RedBehaviacTree;
  13. }
  14. namespace redream {
  15. typedef enum ReboltRedManagerBTState {
  16. INVALID,
  17. SUCCESS,
  18. FAILURE,
  19. RUNNING,
  20. } ReboltRedManagerBTState;
  21. typedef struct RunningState{
  22. ReboltRedManagerBTState btState;
  23. int customState;
  24. RunningState() {
  25. btState = ReboltRedManagerBTState::RUNNING;
  26. customState = 0;
  27. }
  28. } RunningState;
  29. class ReboltRedManager;
  30. class WaitableStateBase : public Ref{
  31. public:
  32. WaitableStateBase();
  33. virtual void run() {};
  34. virtual void run(ReboltErrorInfo& error) {};
  35. virtual RunningState getRunningState() {return _runningState;};
  36. virtual void onSuccessEnd();
  37. virtual void onFailureEnd();
  38. void setFatherTree(red::RedBehaviacTree* ft);
  39. red::RedBehaviacTree* getFatherTree(){return _fatherTree;}
  40. void setReboltRedManager(ReboltRedManager* rm);
  41. ReboltRedManager* getReboltRedManager(){return _reboltManager;}
  42. protected:
  43. red::RedBehaviacTree* _fatherTree;
  44. ReboltRedManager* _reboltManager;
  45. RunningState _runningState;
  46. };
  47. };
  48. #endif /* WaitableStateBase_hpp */