@urso/core 0.1.95 → 0.2.3-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.babelrc +11 -11
  2. package/README.md +10 -10
  3. package/build/js/index.js +1 -1
  4. package/build/js/index.js.LICENSE.txt +33 -33
  5. package/package.json +49 -49
  6. package/src/js/app.js +76 -76
  7. package/src/js/components/_info.js +8 -8
  8. package/src/js/components/base/_info.js +3 -3
  9. package/src/js/components/base/controller.js +78 -78
  10. package/src/js/components/debug/_info.js +6 -6
  11. package/src/js/components/debug/controller.js +38 -38
  12. package/src/js/components/debug/coords.js +23 -23
  13. package/src/js/components/debug/fps.js +34 -34
  14. package/src/js/components/debug/template.js +33 -33
  15. package/src/js/components/deviceRotate/_info.js +3 -3
  16. package/src/js/components/deviceRotate/controller.js +86 -86
  17. package/src/js/components/fullscreen/_info.js +6 -6
  18. package/src/js/components/fullscreen/android.js +104 -104
  19. package/src/js/components/fullscreen/controller.js +64 -64
  20. package/src/js/components/fullscreen/desktop.js +49 -49
  21. package/src/js/components/fullscreen/ios.js +111 -111
  22. package/src/js/components/loader/_info.js +4 -4
  23. package/src/js/components/loader/controller.js +66 -66
  24. package/src/js/components/loader/template.js +70 -70
  25. package/src/js/components/soundInitialPopup/_info.js +3 -3
  26. package/src/js/components/soundInitialPopup/controller.js +42 -42
  27. package/src/js/components/soundInitialPopup/template.js +109 -109
  28. package/src/js/components/stateDriven/_info.js +4 -3
  29. package/src/js/components/stateDriven/actionConfig.js +7 -0
  30. package/src/js/components/stateDriven/controller.js +96 -52
  31. package/src/js/config/load.js +5 -5
  32. package/src/js/config/main.js +9 -9
  33. package/src/js/extra/_info.js +22 -22
  34. package/src/js/extra/browserEvents.js +32 -32
  35. package/src/js/index.js +8 -8
  36. package/src/js/lib/_info.js +13 -13
  37. package/src/js/lib/cache.js +98 -98
  38. package/src/js/lib/composition.js +89 -89
  39. package/src/js/lib/device.js +1276 -1276
  40. package/src/js/lib/helper.js +513 -513
  41. package/src/js/lib/loader.js +121 -121
  42. package/src/js/lib/localData.js +15 -15
  43. package/src/js/lib/logger.js +22 -22
  44. package/src/js/lib/math.js +20 -20
  45. package/src/js/lib/objectPool.js +54 -54
  46. package/src/js/lib/time.js +18 -18
  47. package/src/js/lib/tween.js +147 -147
  48. package/src/js/modules/_info.js +11 -11
  49. package/src/js/modules/assets/_info.js +7 -7
  50. package/src/js/modules/assets/baseModel.js +18 -18
  51. package/src/js/modules/assets/config.js +35 -35
  52. package/src/js/modules/assets/controller.js +37 -37
  53. package/src/js/modules/assets/models/_info.js +12 -12
  54. package/src/js/modules/assets/models/atlas.js +8 -8
  55. package/src/js/modules/assets/models/audiosprite.js +27 -27
  56. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  57. package/src/js/modules/assets/models/container.js +16 -16
  58. package/src/js/modules/assets/models/dragonBones.js +26 -26
  59. package/src/js/modules/assets/models/font.js +8 -8
  60. package/src/js/modules/assets/models/image.js +14 -14
  61. package/src/js/modules/assets/models/json.js +8 -8
  62. package/src/js/modules/assets/models/sound.js +14 -14
  63. package/src/js/modules/assets/models/spine.js +8 -8
  64. package/src/js/modules/assets/service.js +330 -330
  65. package/src/js/modules/instances/_info.js +3 -3
  66. package/src/js/modules/instances/controller.js +218 -218
  67. package/src/js/modules/logic/_info.js +5 -5
  68. package/src/js/modules/logic/buttons.js +120 -120
  69. package/src/js/modules/logic/config/_info.js +3 -3
  70. package/src/js/modules/logic/config/buttons.js +63 -63
  71. package/src/js/modules/logic/config/sounds.js +23 -23
  72. package/src/js/modules/logic/controller.js +48 -48
  73. package/src/js/modules/logic/sounds.js +96 -96
  74. package/src/js/modules/objects/_info.js +11 -11
  75. package/src/js/modules/objects/baseModel.js +161 -161
  76. package/src/js/modules/objects/cache.js +99 -99
  77. package/src/js/modules/objects/controller.js +115 -115
  78. package/src/js/modules/objects/create.js +231 -231
  79. package/src/js/modules/objects/find.js +140 -140
  80. package/src/js/modules/objects/models/_info.js +20 -20
  81. package/src/js/modules/objects/models/atlasImage.js +50 -50
  82. package/src/js/modules/objects/models/bitmapText.js +23 -23
  83. package/src/js/modules/objects/models/button.js +184 -184
  84. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  85. package/src/js/modules/objects/models/collection.js +54 -54
  86. package/src/js/modules/objects/models/component.js +44 -44
  87. package/src/js/modules/objects/models/container.js +19 -19
  88. package/src/js/modules/objects/models/dragonBones.js +250 -250
  89. package/src/js/modules/objects/models/emitter.js +54 -54
  90. package/src/js/modules/objects/models/graphics.js +38 -38
  91. package/src/js/modules/objects/models/group.js +19 -19
  92. package/src/js/modules/objects/models/hitArea.js +104 -104
  93. package/src/js/modules/objects/models/image.js +34 -34
  94. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  95. package/src/js/modules/objects/models/mask.js +38 -38
  96. package/src/js/modules/objects/models/spine.js +83 -83
  97. package/src/js/modules/objects/models/text.js +38 -38
  98. package/src/js/modules/objects/models/world.js +19 -19
  99. package/src/js/modules/objects/propertyAdapter.js +416 -416
  100. package/src/js/modules/objects/proxy.js +179 -179
  101. package/src/js/modules/objects/styles.js +116 -116
  102. package/src/js/modules/observer/_info.js +4 -4
  103. package/src/js/modules/observer/controller.js +99 -99
  104. package/src/js/modules/observer/events.js +28 -28
  105. package/src/js/modules/scenes/_info.js +8 -8
  106. package/src/js/modules/scenes/controller.js +34 -34
  107. package/src/js/modules/scenes/model.js +35 -35
  108. package/src/js/modules/scenes/pixiWrapper.js +194 -194
  109. package/src/js/modules/scenes/resolutions.js +161 -161
  110. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  111. package/src/js/modules/scenes/service.js +84 -84
  112. package/src/js/modules/soundManager/_info.js +3 -3
  113. package/src/js/modules/soundManager/controller.js +99 -99
  114. package/src/js/modules/soundManager/soundSprite.js +202 -202
  115. package/src/js/modules/statesManager/_info.js +12 -12
  116. package/src/js/modules/statesManager/action.js +55 -113
  117. package/src/js/modules/statesManager/actions/_info.js +3 -3
  118. package/src/js/modules/statesManager/all.js +23 -23
  119. package/src/js/modules/statesManager/configStates.js +71 -86
  120. package/src/js/modules/statesManager/controller.js +132 -91
  121. package/src/js/modules/statesManager/functionsStorage.js +83 -0
  122. package/src/js/modules/statesManager/helper.js +27 -37
  123. package/src/js/modules/statesManager/race.js +75 -80
  124. package/src/js/modules/statesManager/sequence.js +47 -47
  125. package/src/js/modules/template/_info.js +6 -6
  126. package/src/js/modules/template/controller.js +28 -28
  127. package/src/js/modules/template/model.js +11 -11
  128. package/src/js/modules/template/service.js +125 -125
  129. package/src/js/modules/template/types.js +41 -41
  130. package/src/js/modules/transport/_info.js +8 -8
  131. package/src/js/modules/transport/baseConnectionType.js +24 -24
  132. package/src/js/modules/transport/config.js +22 -22
  133. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  134. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  135. package/src/js/modules/transport/connectionTypes/xhr.js +41 -41
  136. package/src/js/modules/transport/controller.js +48 -48
  137. package/src/js/modules/transport/decorator.js +16 -16
  138. package/src/js/modules/transport/service.js +138 -138
  139. package/src/js/templates/_info.js +4 -4
  140. package/src/js/templates/groups/_info.js +1 -1
  141. package/src/js/templates/scenes/_info.js +1 -1
  142. package/webpack.config.js +47 -47
  143. package/src/js/modules/statesManager/actionModel.js +0 -48
  144. package/src/js/modules/statesManager/configActions.js +0 -54
@@ -0,0 +1,83 @@
1
+
2
+ class ModulesStatesManagerFunctionsStorage {
3
+ constructor() {
4
+ this._functionsCounter = 0;
5
+ this._functions = {};
6
+ }
7
+
8
+ //guards
9
+ add(key, guard, onlyOneFlag = false) {
10
+ this._addToStorage(key, guard, onlyOneFlag);
11
+ }
12
+
13
+ run(key) {
14
+ if (this._functions[key]) {
15
+ const functionsArray = Object.values(this._functions[key]);
16
+
17
+ for (const func of functionsArray) {
18
+ func();
19
+ }
20
+ }
21
+ }
22
+
23
+ runAndCallbackOnFinish(key, onFinishCallback) {
24
+ if (this._functions[key]) {
25
+ const functionsArray = Object.values(this._functions[key]);
26
+
27
+ const promises = [];
28
+
29
+ for (const func of functionsArray) {
30
+ promises.push(new Promise((resolve, reject) => { func(resolve); }));
31
+ }
32
+
33
+ Promise.all(promises).then(onFinishCallback);
34
+ } else {
35
+ onFinishCallback();
36
+ }
37
+ }
38
+
39
+ checkGuard(key) {
40
+ if (this._functions[key]) {
41
+ const guardsArray = Object.values(this._functions[key]);
42
+
43
+ for (const guard of guardsArray) {
44
+ if (!guard())
45
+ return false;
46
+ }
47
+ }
48
+
49
+ return true;
50
+ }
51
+
52
+ remove(key, guard) {
53
+ this._removeFromStorage(key, guard);
54
+ }
55
+
56
+ _addToStorage(key, func, onlyOneFlag) {
57
+ if (!this._functions[key])
58
+ this._functions[key] = {};
59
+ else if (onlyOneFlag) {
60
+ Urso.logger.error('ModulesStatesManagerFunctionsStorage: action or state can have only one guard', key, func);
61
+ return;
62
+ }
63
+
64
+ const guid = this._getGuardsUid();
65
+ func._guid = guid;
66
+ this._functions[key][guid] = func;
67
+ }
68
+
69
+ _removeFromStorage(key, func) {
70
+ const guid = func._guid;
71
+ delete this._functions[key][guid];
72
+
73
+ if (Urso.helper.getObjectSize(this._functions[key]) === 0)
74
+ delete this._functions[key];
75
+ }
76
+
77
+ _getGuardsUid() {
78
+ this._functionsCounter++;
79
+ return 'guard_' + this._functionsCounter;
80
+ }
81
+ }
82
+
83
+ module.exports = ModulesStatesManagerFunctionsStorage;
@@ -1,37 +1,27 @@
1
- class ModulesStatesManagerHelper {
2
- constructor() {
3
- this.singleton = true;
4
- }
5
-
6
- getActionByConfig(config) {
7
- let actionType = Object.keys(config)[0];
8
- let actionParams = config[actionType];
9
- let configActions = this.getInstance('ConfigActions').get();
10
-
11
- if (actionType === "action") {
12
- //actionParams is action name
13
- let actionName = actionParams;
14
-
15
- if (configActions[actionName]) {
16
- let actionParamsConfig = Urso.helper.objectClone(configActions[actionName]);
17
-
18
- if (!actionParamsConfig.name)
19
- actionParamsConfig.name = actionName;
20
-
21
- actionParams = this.getInstance('ActionModel', actionParamsConfig); //replace params to action model
22
- }
23
-
24
- let customActionInstance = this.getInstance('Actions.' + Urso.helper.capitaliseFirstLetter(actionName), actionParams);
25
-
26
- if (customActionInstance) {
27
- return customActionInstance;
28
- }
29
- }
30
-
31
- let className = Urso.helper.capitaliseFirstLetter(actionType);
32
- return this.getInstance(className, actionParams);
33
- };
34
-
35
- }
36
-
37
- module.exports = ModulesStatesManagerHelper;
1
+ class ModulesStatesManagerHelper {
2
+ constructor() {
3
+ this.singleton = true;
4
+ }
5
+
6
+ getActionByConfig(config) {
7
+ let actionType = Object.keys(config)[0];
8
+ let actionParams = config[actionType];
9
+
10
+ if (actionType === "action") {
11
+ //actionParams is action name
12
+ let actionName = actionParams;
13
+
14
+ let customActionInstance = this.getInstance('Actions.' + Urso.helper.capitaliseFirstLetter(actionName));
15
+
16
+ if (customActionInstance) {
17
+ return customActionInstance;
18
+ }
19
+ }
20
+
21
+ let className = Urso.helper.capitaliseFirstLetter(actionType);
22
+ return this.getInstance(className, actionParams);
23
+ };
24
+
25
+ }
26
+
27
+ module.exports = ModulesStatesManagerHelper;
@@ -1,80 +1,75 @@
1
- Action = require('./action.js');
2
-
3
- class ModulesStatesManagerRace extends Action {
4
- constructor(params) {
5
- super();
6
-
7
- this.name = 'Race';
8
- this._actions = [];
9
- this.params = params;
10
-
11
- for (let config of params) {
12
- this._actions.push(this.getInstance('Helper').getActionByConfig(config));
13
- }
14
-
15
- this._actionSuccessHandler = this._actionSuccessHandler.bind(this);
16
- }
17
-
18
- //can we start this action?
19
- guard() {
20
- for (let action of this._actions)
21
- if (!action.guard())
22
- return false;
23
-
24
- return true;
25
- }
26
-
27
- //can action be terminated ?
28
- isTerminable() {
29
- return true;
30
- }
31
-
32
- run(onFinishCallback) {
33
- log(`%c action run ---> ${this.name}`, 'color: orange', this.params);
34
-
35
- this.finished = false;
36
- this._onFinishCallback = onFinishCallback;
37
-
38
- for (let action of this._actions)
39
- if (action.guard())
40
- action.run(this._actionSuccessHandler);
41
- else
42
- action.finished = true;
43
- }
44
-
45
- _actionSuccessHandler() {
46
- if (!this._checkFinish())
47
- this.terminate();
48
- }
49
-
50
- _checkFinish() {
51
- for (let action of this._actions)
52
- if (!action.finished)
53
- return false;
54
-
55
- this._onFinish();
56
-
57
- return true;
58
- }
59
-
60
- terminate() {
61
- if (this._terminating)
62
- return;
63
-
64
- log(`%c action terminate X ${this.name}`, 'color: orange');
65
-
66
- this._terminating = true;
67
-
68
- for (let action of this._actions)
69
- if (!action.finished)
70
- action.terminate();
71
- }
72
-
73
- _onFinish() {
74
- this.finished = true;
75
- log(`%c action finish <--- ${this.name}`, 'color: orange');
76
- this._onFinishCallback();
77
- }
78
- }
79
-
80
- module.exports = ModulesStatesManagerRace;
1
+ Action = require('./action.js');
2
+
3
+ class ModulesStatesManagerRace extends Action {
4
+ constructor(params) {
5
+ super();
6
+
7
+ this.name = 'Race';
8
+ this._actions = [];
9
+ this.params = params;
10
+
11
+ for (let config of params) {
12
+ this._actions.push(this.getInstance('Helper').getActionByConfig(config));
13
+ }
14
+
15
+ this._actionSuccessHandler = this._actionSuccessHandler.bind(this);
16
+ }
17
+
18
+ //can we start this action?
19
+ guard() {
20
+ for (let action of this._actions)
21
+ if (!action.guard())
22
+ return false;
23
+
24
+ return true;
25
+ }
26
+
27
+ run(onFinishCallback) {
28
+ log(`%c action run ---> ${this.name}`, 'color: orange', this.params);
29
+
30
+ this.finished = false;
31
+ this._onFinishCallback = onFinishCallback;
32
+
33
+ for (let action of this._actions)
34
+ if (action.guard())
35
+ action.run(this._actionSuccessHandler);
36
+ else
37
+ action.finished = true;
38
+ }
39
+
40
+ _actionSuccessHandler() {
41
+ if (!this._checkFinish())
42
+ this.terminate();
43
+ }
44
+
45
+ _checkFinish() {
46
+ for (let action of this._actions)
47
+ if (!action.finished)
48
+ return false;
49
+
50
+ this._onFinish();
51
+
52
+ return true;
53
+ }
54
+
55
+ terminate() {
56
+ if (this._terminating)
57
+ return;
58
+
59
+ log(`%c action terminate X ${this.name}`, 'color: orange');
60
+
61
+ this._terminating = true;
62
+
63
+ for (let action of this._actions)
64
+ if (!action.finished)
65
+ action.terminate();
66
+ }
67
+
68
+ _onFinish() {
69
+ this.finished = true;
70
+ log(`%c action finish <--- ${this.name}`, 'color: orange');
71
+ this._onFinishCallback();
72
+ }
73
+ }
74
+
75
+ module.exports = ModulesStatesManagerRace;
@@ -1,47 +1,47 @@
1
- All = require('./all.js');
2
-
3
- class ModulesStatesManagerSequence extends All {
4
- constructor(params) {
5
- super(params);
6
- this.name = 'Sequence';
7
- }
8
-
9
- run(onFinishCallback) {
10
- log(`%c action run ---> ${this.name}`, 'color: orange', this.params);
11
-
12
- this.finished = false;
13
- this._onFinishCallback = onFinishCallback;
14
-
15
- this._checkFinish();
16
- }
17
-
18
- _checkFinish() {
19
- if (!this._terminating)
20
- for (let action of this._actions)
21
- if (!action.finished) {
22
- if (action.guard())
23
- return action.run(this._actionSuccessHandler);
24
- else
25
- action.finished = true;
26
- }
27
-
28
- this._onFinish();
29
-
30
- return true;
31
- }
32
-
33
- terminate() {
34
- if (this._terminating)
35
- return;
36
-
37
- log(`%c action terminate X ${this.name}`, 'color: orange');
38
-
39
- this._terminating = true;
40
-
41
- for (let action of this._actions)
42
- if (!action.finished)
43
- return action.terminate(); //only one action is currently running
44
- }
45
- }
46
-
47
- module.exports = ModulesStatesManagerSequence;
1
+ All = require('./all.js');
2
+
3
+ class ModulesStatesManagerSequence extends All {
4
+ constructor(params) {
5
+ super(params);
6
+ this.name = 'Sequence';
7
+ }
8
+
9
+ run(onFinishCallback) {
10
+ log(`%c action run ---> ${this.name}`, 'color: orange', this.params);
11
+
12
+ this.finished = false;
13
+ this._onFinishCallback = onFinishCallback;
14
+
15
+ this._checkFinish();
16
+ }
17
+
18
+ _checkFinish() {
19
+ if (!this._terminating)
20
+ for (let action of this._actions)
21
+ if (!action.finished) {
22
+ if (action.guard())
23
+ return action.run(this._actionSuccessHandler);
24
+ else
25
+ action.finished = true;
26
+ }
27
+
28
+ this._onFinish();
29
+
30
+ return true;
31
+ }
32
+
33
+ terminate() {
34
+ if (this._terminating)
35
+ return;
36
+
37
+ log(`%c action terminate X ${this.name}`, 'color: orange');
38
+
39
+ this._terminating = true;
40
+
41
+ for (let action of this._actions)
42
+ if (!action.finished)
43
+ return action.terminate(); //only one action is currently running
44
+ }
45
+ }
46
+
47
+ module.exports = ModulesStatesManagerSequence;
@@ -1,6 +1,6 @@
1
- Urso.Core.Modules.Template = {
2
- Controller: require('./controller.js'),
3
- Model: require('./model.js'),
4
- Service: require('./service.js'),
5
- Types: require('./types.js')
6
- };
1
+ Urso.Core.Modules.Template = {
2
+ Controller: require('./controller.js'),
3
+ Model: require('./model.js'),
4
+ Service: require('./service.js'),
5
+ Types: require('./types.js')
6
+ };
@@ -1,28 +1,28 @@
1
- class ModulesTemplateController {
2
- constructor() {
3
- this.singleton = true;
4
-
5
- //set types
6
- Urso.types = this.getInstance('Types').list;
7
- };
8
-
9
- get() {
10
- return this.getInstance('Service').getTemplate();
11
- }
12
-
13
- scene(name) {
14
- return this.getInstance('Service').getSceneOrGroup(name, 'Scenes');
15
- };
16
-
17
- group(name) {
18
- return this.getInstance('Service').getSceneOrGroup(name, 'Groups');
19
- };
20
-
21
- //make template
22
- parse(template) {
23
- return this.getInstance('Service').parse(template);
24
- }
25
-
26
- }
27
-
28
- module.exports = ModulesTemplateController;
1
+ class ModulesTemplateController {
2
+ constructor() {
3
+ this.singleton = true;
4
+
5
+ //set types
6
+ Urso.types = this.getInstance('Types').list;
7
+ };
8
+
9
+ get() {
10
+ return this.getInstance('Service').getTemplate();
11
+ }
12
+
13
+ scene(name) {
14
+ return this.getInstance('Service').getSceneOrGroup(name, 'Scenes');
15
+ };
16
+
17
+ group(name) {
18
+ return this.getInstance('Service').getSceneOrGroup(name, 'Groups');
19
+ };
20
+
21
+ //make template
22
+ parse(template) {
23
+ return this.getInstance('Service').parse(template);
24
+ }
25
+
26
+ }
27
+
28
+ module.exports = ModulesTemplateController;
@@ -1,11 +1,11 @@
1
- class ModulesTemplateModel {
2
- constructor() {
3
- this.styles = {};
4
- this.assets = [];
5
- this.objects = [];
6
- this.components = [];
7
- this._templatePath = false;
8
- }
9
- }
10
-
11
- module.exports = ModulesTemplateModel;
1
+ class ModulesTemplateModel {
2
+ constructor() {
3
+ this.styles = {};
4
+ this.assets = [];
5
+ this.objects = [];
6
+ this.components = [];
7
+ this._templatePath = false;
8
+ }
9
+ }
10
+
11
+ module.exports = ModulesTemplateModel;