ToyActionSequenceHandler.h
2.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
// ToyActionSequenceHandler.h
// SteveMaggieCpp
//
// Created by Katarzyna Kalinowska-Górska on 29.06.2017.
//
//
#ifndef ToyActionSequenceHandler_h
#define ToyActionSequenceHandler_h
#include "ToyActionParser.h"
#include "json/document.h"
#include "ToyScenarioObject.h"
class ToyActionSequenceHandler : public ActionParseDelegate
{
public:
ToyActionSequenceHandler(ToyScenarioObject* containerNode, const rapidjson::Value& actionsArray);
virtual ~ToyActionSequenceHandler();
virtual void runNext();
virtual void reset();
virtual void stop();
// action parse delegate
virtual ToyScenarioObject* getObjectByName(std::string objectName);
virtual ToyScenarioObject* getDefaultObjectForAction(std::string actionType);
virtual ToyScenarioObject* getDefaultObjectForConditionCheck();
virtual void addNewObject(std::string objectName, ToyScenarioObject* newObject);
virtual std::string getDefaultSoundsPath();
virtual std::string getAlternativeSoundsPath();
virtual std::string getToyValueStorageContainerName();
virtual void runAction(cocos2d::Action* action);
virtual void actionFinished(const rapidjson::Value& jsonActionObject);
virtual void runInstantly(std::function<void()> actionFunction);
virtual void runCompletingAction(cocos2d::Action* action);
virtual void cancelAllCompletingActions();
virtual void schedule(std::function<void(float)> callback, std::string key, float delay);
virtual void scheduleOnce(std::function<void(float)> callback, float delay, std::string key);
virtual void unschedule(std::string key);
virtual void newTouchHandler(std::string key, TouchHandlerFunction touchHandler, TouchHandlerType touchType);
virtual void removeTouchHandler(std::string key, TouchHandlerType touchType);
virtual long long getLastScreenTouchTime();
virtual int getLoopActionCounter(std::string loopId);
virtual int addNewLoopActionCounter(std::string loopId, int timesRepeated);
virtual int decrementLoopActionCounter(std::string loopId);
virtual void deleteLoopActionCounter(std::string loopId);
virtual void setLastActionIndex(int index);
virtual unsigned int removeStoredSoundId(std::string soundPath);
virtual void storeSoundId(std::string soundPath, unsigned int newSoundId);
protected:
std::string _valueStorageContainerName;
ToyScenarioObject* _containerNode;
rapidjson::Document* _JSONDataStorage;
rapidjson::Value* _actions;
int _lastActionIndex;
cocos2d::Action* _currentAction;
std::function<void()> _onLastActionFinished;
};
#endif /* ToyActionSequenceHandler_h */