// // RUReboltLayer.h // red_utils // // Created by ZhengSong on 2023/1/6. // #ifndef RUReboltLayer_h #define RUReboltLayer_h #include "Redream.h" #include "RUDefine.h" NS_RU_BEGIN struct ReboltNotifyData { redream::ReboltRedManager* reboltRedManager = nullptr; redream::NotifyDevelopmentWaiter* waiter = nullptr; std::string notify; std::string param; bool reboltIsWait = false; cocos2d::Node* outNode = nullptr; }; class RUReboltLayer : public Layer ,public redream::NotifyDevelopmentDelegate { public: RUReboltLayer(); virtual ~RUReboltLayer(); CREATE_FUNC(RUReboltLayer); static void setGlobalDataVar(std::string key, std::string content); static RUReboltLayer* createReboltLayer(const std::string& fileName, redream::NodeLoaderLibrary* ccNodeLoaderLibrary = nullptr); static RUReboltLayer* creatBatchReboltLayer(const std::string& fileName,unordered_set plistSt,unordered_set repleacPlistSt); static RUReboltLayer* creatBatchReboltLayer(const std::string& fileName,unordered_set plistSt); virtual void onNotifyDevelopment(redream::ReboltRedManager* reboltRedManager, redream::NotifyDevelopmentWaiter* waiter, std::string notify, std::string param, bool reboltIsWait, Node* outNode) override; virtual std::string runBehaviacWhitFunName(std::string name, std::map boolMap = {}, std::map stringMap = {}); virtual void setReboltRedManger(redream::ReboltRedManager* rs); bool hasBehaviacWithFuncName(std::string name); void setCoderDataVar(std::string key, std::string content); virtual void registerOnNotify(const std::function& notifyCallback); virtual void registerOnExit(const std::function& func); virtual void registerOnEnter(const std::function& func); void onExit() override; void onEnter() override; private: redream::ReboltRedManager* _rs = nullptr; std::function _onNotifyCallback = nullptr; std::function _onEnterCb = nullptr; std::function _onExitCb = nullptr; }; NS_RU_END #endif /* RUReboltLayer_h */