RUReboltLayer.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // RUReboltLayer.h
  3. // red_utils
  4. //
  5. // Created by ZhengSong on 2023/1/6.
  6. //
  7. #ifndef RUReboltLayer_h
  8. #define RUReboltLayer_h
  9. #include "Redream.h"
  10. #include "RUDefine.h"
  11. NS_RU_BEGIN
  12. struct ReboltNotifyData {
  13. redream::ReboltRedManager* reboltRedManager = nullptr;
  14. redream::NotifyDevelopmentWaiter* waiter = nullptr;
  15. std::string notify;
  16. std::string param;
  17. bool reboltIsWait = false;
  18. cocos2d::Node* outNode = nullptr;
  19. };
  20. class RUReboltLayer
  21. : public Layer
  22. ,public redream::NotifyDevelopmentDelegate
  23. {
  24. public:
  25. RUReboltLayer();
  26. virtual ~RUReboltLayer();
  27. CREATE_FUNC(RUReboltLayer);
  28. static void setGlobalDataVar(std::string key, std::string content);
  29. static RUReboltLayer* createReboltLayer(const std::string& fileName, redream::NodeLoaderLibrary* ccNodeLoaderLibrary = nullptr);
  30. static RUReboltLayer* creatBatchReboltLayer(const std::string& fileName,unordered_set<string> plistSt,unordered_set<string> repleacPlistSt);
  31. static RUReboltLayer* creatBatchReboltLayer(const std::string& fileName,unordered_set<string> plistSt);
  32. virtual void onNotifyDevelopment(redream::ReboltRedManager* reboltRedManager, redream::NotifyDevelopmentWaiter* waiter, std::string notify, std::string param, bool reboltIsWait, Node* outNode) override;
  33. virtual std::string runBehaviacWhitFunName(std::string name, std::map<std::string, bool> boolMap = {}, std::map<std::string, std::string> stringMap = {});
  34. virtual void setReboltRedManger(redream::ReboltRedManager* rs);
  35. bool hasBehaviacWithFuncName(std::string name);
  36. void setCoderDataVar(std::string key, std::string content);
  37. virtual void registerOnNotify(const std::function<void(const ReboltNotifyData&)>& notifyCallback);
  38. virtual void registerOnExit(const std::function<void()>& func);
  39. virtual void registerOnEnter(const std::function<void()>& func);
  40. void onExit() override;
  41. void onEnter() override;
  42. private:
  43. redream::ReboltRedManager* _rs = nullptr;
  44. std::function<void(const ReboltNotifyData&)> _onNotifyCallback = nullptr;
  45. std::function<void()> _onEnterCb = nullptr;
  46. std::function<void()> _onExitCb = nullptr;
  47. };
  48. NS_RU_END
  49. #endif /* RUReboltLayer_h */