// // ToyBlockingActionParser.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 31.05.2017. // // #ifndef ToyBlockingActionParser_h #define ToyBlockingActionParser_h #include "ToyActionParser.h" #include "ToyColourableSprite.h" class ToyBlockingActionParser { public: static ToyBlockingActionParser& getInstance() { static ToyBlockingActionParser instance; return instance; }; cocos2d::Action* parseJSONAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished = true); protected: cocos2d::Action* parseCallFunctionWithBlockingAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); cocos2d::Action* parseWaitForTouchAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); cocos2d::Action* parseWaitForPaletteComponentAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); cocos2d::Action* parseWaitForDragAndDropAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); cocos2d::Action* parseWaitForObjectUnlockAction(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); std::function parseWaitForObjectUnlockActionFunction_ToyColourableSprite(ToyColourableSprite* unlockingObject, const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, bool notifyDelegateWhenFinished); void runCompletingActions(const rapidjson::Value& jsonActionObject, ActionParseDelegate* parseDelegate, int indexForConditionedActions = 0); }; #endif /* ToyBlockingActionParser_h */