SubTreeWaiter.hpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // SubTreeWaiter.hpp
  3. // redream_runtime_mac
  4. //
  5. // Created by zhu on 2023/5/23.
  6. //
  7. #ifndef SubTreeWaiter_hpp
  8. #define SubTreeWaiter_hpp
  9. #include "WaitableStateBase.hpp"
  10. #include "behaviac/RedBehaviacTree.h"
  11. namespace redream {
  12. class SubTreeWaiter : public WaitableStateBase, public red::RedBehaviacTreeDelegate {
  13. public:
  14. static SubTreeWaiter* create(ReboltRedManager* reboltManager, red::RedBehaviacTree* tree, std::map<std::string, bool> &boolMap, std::map<std::string, std::string> &stringMap, std::string treeName, ReboltRedManager* subTreeReboltManager);
  15. SubTreeWaiter(ReboltRedManager* reboltManager, red::RedBehaviacTree* tree, std::map<std::string, bool> &boolMap, std::map<std::string, std::string> &stringMap, std::string treeName, ReboltRedManager* subTreeReboltManager);
  16. ~SubTreeWaiter();
  17. bool init();
  18. public:
  19. RunningState getRunningState() override;
  20. void run() override;
  21. void onTreeRunningEnd(red::RedBehaviacTree* tree, int endType, std::string treeName) override;
  22. private:
  23. void createTreeAndRun();
  24. private:
  25. std::string _treeName;
  26. std::map<std::string, bool> _boolMap;
  27. std::map<std::string, std::string> _stringMap;
  28. red::RedBehaviacTree* _tree;
  29. ReboltRedManager* _subTreeReboltManager;
  30. };
  31. };
  32. #endif /* SubTreeWaiter_hpp */