@urso/core 0.1.91 → 0.2.0-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 (143) hide show
  1. package/.babelrc +11 -11
  2. package/README.md +10 -10
  3. package/build/js/index.js +1 -1
  4. package/package.json +49 -49
  5. package/src/js/app.js +76 -75
  6. package/src/js/components/_info.js +8 -8
  7. package/src/js/components/base/_info.js +3 -3
  8. package/src/js/components/base/controller.js +78 -78
  9. package/src/js/components/debug/_info.js +6 -6
  10. package/src/js/components/debug/controller.js +38 -38
  11. package/src/js/components/debug/coords.js +23 -23
  12. package/src/js/components/debug/fps.js +34 -34
  13. package/src/js/components/debug/template.js +33 -33
  14. package/src/js/components/deviceRotate/_info.js +3 -3
  15. package/src/js/components/deviceRotate/controller.js +86 -86
  16. package/src/js/components/fullscreen/_info.js +6 -6
  17. package/src/js/components/fullscreen/android.js +104 -104
  18. package/src/js/components/fullscreen/controller.js +64 -64
  19. package/src/js/components/fullscreen/desktop.js +49 -49
  20. package/src/js/components/fullscreen/ios.js +111 -111
  21. package/src/js/components/loader/_info.js +4 -4
  22. package/src/js/components/loader/controller.js +66 -66
  23. package/src/js/components/loader/template.js +70 -70
  24. package/src/js/components/soundInitialPopup/_info.js +3 -3
  25. package/src/js/components/soundInitialPopup/controller.js +42 -42
  26. package/src/js/components/soundInitialPopup/template.js +109 -109
  27. package/src/js/components/stateDriven/_info.js +4 -3
  28. package/src/js/components/stateDriven/actionConfig.js +7 -0
  29. package/src/js/components/stateDriven/controller.js +61 -52
  30. package/src/js/config/load.js +5 -5
  31. package/src/js/config/main.js +9 -8
  32. package/src/js/extra/_info.js +22 -22
  33. package/src/js/extra/browserEvents.js +32 -32
  34. package/src/js/index.js +8 -8
  35. package/src/js/lib/_info.js +13 -13
  36. package/src/js/lib/cache.js +98 -98
  37. package/src/js/lib/composition.js +89 -89
  38. package/src/js/lib/device.js +1276 -1276
  39. package/src/js/lib/helper.js +513 -513
  40. package/src/js/lib/loader.js +121 -100
  41. package/src/js/lib/localData.js +15 -15
  42. package/src/js/lib/logger.js +22 -22
  43. package/src/js/lib/math.js +20 -20
  44. package/src/js/lib/objectPool.js +54 -54
  45. package/src/js/lib/time.js +18 -18
  46. package/src/js/lib/tween.js +147 -147
  47. package/src/js/modules/_info.js +11 -11
  48. package/src/js/modules/assets/_info.js +7 -7
  49. package/src/js/modules/assets/baseModel.js +18 -18
  50. package/src/js/modules/assets/config.js +35 -25
  51. package/src/js/modules/assets/controller.js +37 -21
  52. package/src/js/modules/assets/models/_info.js +12 -12
  53. package/src/js/modules/assets/models/atlas.js +8 -8
  54. package/src/js/modules/assets/models/audiosprite.js +27 -27
  55. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  56. package/src/js/modules/assets/models/container.js +16 -16
  57. package/src/js/modules/assets/models/dragonBones.js +26 -26
  58. package/src/js/modules/assets/models/font.js +8 -8
  59. package/src/js/modules/assets/models/image.js +14 -14
  60. package/src/js/modules/assets/models/json.js +8 -8
  61. package/src/js/modules/assets/models/sound.js +14 -14
  62. package/src/js/modules/assets/models/spine.js +8 -8
  63. package/src/js/modules/assets/service.js +330 -303
  64. package/src/js/modules/instances/_info.js +3 -3
  65. package/src/js/modules/instances/controller.js +218 -218
  66. package/src/js/modules/logic/_info.js +5 -5
  67. package/src/js/modules/logic/buttons.js +120 -120
  68. package/src/js/modules/logic/config/_info.js +3 -3
  69. package/src/js/modules/logic/config/buttons.js +63 -63
  70. package/src/js/modules/logic/config/sounds.js +23 -23
  71. package/src/js/modules/logic/controller.js +48 -48
  72. package/src/js/modules/logic/sounds.js +96 -96
  73. package/src/js/modules/objects/_info.js +11 -11
  74. package/src/js/modules/objects/baseModel.js +161 -161
  75. package/src/js/modules/objects/cache.js +99 -99
  76. package/src/js/modules/objects/controller.js +115 -115
  77. package/src/js/modules/objects/create.js +231 -231
  78. package/src/js/modules/objects/find.js +140 -140
  79. package/src/js/modules/objects/models/_info.js +20 -20
  80. package/src/js/modules/objects/models/atlasImage.js +50 -50
  81. package/src/js/modules/objects/models/bitmapText.js +23 -23
  82. package/src/js/modules/objects/models/button.js +184 -184
  83. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  84. package/src/js/modules/objects/models/collection.js +54 -54
  85. package/src/js/modules/objects/models/component.js +44 -44
  86. package/src/js/modules/objects/models/container.js +19 -19
  87. package/src/js/modules/objects/models/dragonBones.js +250 -250
  88. package/src/js/modules/objects/models/emitter.js +54 -54
  89. package/src/js/modules/objects/models/graphics.js +38 -38
  90. package/src/js/modules/objects/models/group.js +19 -19
  91. package/src/js/modules/objects/models/hitArea.js +104 -104
  92. package/src/js/modules/objects/models/image.js +34 -34
  93. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  94. package/src/js/modules/objects/models/mask.js +38 -38
  95. package/src/js/modules/objects/models/spine.js +83 -83
  96. package/src/js/modules/objects/models/text.js +38 -38
  97. package/src/js/modules/objects/models/world.js +19 -19
  98. package/src/js/modules/objects/propertyAdapter.js +416 -416
  99. package/src/js/modules/objects/proxy.js +179 -179
  100. package/src/js/modules/objects/styles.js +116 -116
  101. package/src/js/modules/observer/_info.js +4 -4
  102. package/src/js/modules/observer/controller.js +99 -99
  103. package/src/js/modules/observer/events.js +28 -28
  104. package/src/js/modules/scenes/_info.js +8 -8
  105. package/src/js/modules/scenes/controller.js +34 -34
  106. package/src/js/modules/scenes/model.js +35 -35
  107. package/src/js/modules/scenes/pixiWrapper.js +194 -194
  108. package/src/js/modules/scenes/resolutions.js +161 -161
  109. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  110. package/src/js/modules/scenes/service.js +84 -84
  111. package/src/js/modules/soundManager/_info.js +3 -3
  112. package/src/js/modules/soundManager/controller.js +99 -99
  113. package/src/js/modules/soundManager/soundSprite.js +202 -202
  114. package/src/js/modules/statesManager/_info.js +12 -12
  115. package/src/js/modules/statesManager/action.js +55 -113
  116. package/src/js/modules/statesManager/actions/_info.js +3 -3
  117. package/src/js/modules/statesManager/all.js +23 -23
  118. package/src/js/modules/statesManager/configStates.js +71 -86
  119. package/src/js/modules/statesManager/controller.js +132 -91
  120. package/src/js/modules/statesManager/functionsStorage.js +83 -0
  121. package/src/js/modules/statesManager/helper.js +27 -37
  122. package/src/js/modules/statesManager/race.js +75 -80
  123. package/src/js/modules/statesManager/sequence.js +47 -47
  124. package/src/js/modules/template/_info.js +6 -6
  125. package/src/js/modules/template/controller.js +28 -28
  126. package/src/js/modules/template/model.js +11 -11
  127. package/src/js/modules/template/service.js +125 -122
  128. package/src/js/modules/template/types.js +41 -41
  129. package/src/js/modules/transport/_info.js +8 -8
  130. package/src/js/modules/transport/baseConnectionType.js +24 -24
  131. package/src/js/modules/transport/config.js +22 -22
  132. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  133. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  134. package/src/js/modules/transport/connectionTypes/xhr.js +41 -41
  135. package/src/js/modules/transport/controller.js +48 -48
  136. package/src/js/modules/transport/decorator.js +16 -16
  137. package/src/js/modules/transport/service.js +138 -138
  138. package/src/js/templates/_info.js +4 -4
  139. package/src/js/templates/groups/_info.js +1 -1
  140. package/src/js/templates/scenes/_info.js +1 -1
  141. package/webpack.config.js +47 -47
  142. package/src/js/modules/statesManager/actionModel.js +0 -48
  143. package/src/js/modules/statesManager/configActions.js +0 -54
@@ -1,120 +1,120 @@
1
- class ModulesLogicButtons {
2
- constructor() {
3
- this.DEFAULT_STATE_NAME = 'default'; //MOVE TO CFG
4
- this._buttonsFactors = {};
5
- this._cfg = null;
6
-
7
- this._updateCfg();
8
-
9
- if (!this._cfg || Urso.helper.arraysGetUniqElements(Object.keys(this._cfg.eventsCfg), Object.keys(this._cfg.buttonStates)).length > 0)
10
- console.error('Modules.Logic.Buttons error: invalid Modules.Logic.Config.Buttons');
11
- }
12
-
13
- _updateCfg() {
14
- this._cfg = this.getInstance('Config.Buttons');
15
- };
16
-
17
- _getButtonState(button, state) {
18
- const buttonStates = this._cfg.buttonStates;
19
-
20
- if (!buttonStates[button] || !buttonStates[button][state])
21
- return false;
22
-
23
- let states = buttonStates[button],
24
- base = false,
25
- k,
26
- res = {};
27
-
28
- if (state !== 'default') {
29
- if (typeof states[state].base !== 'undefined')
30
- base = states[state].base;
31
- else
32
- base = 'default';
33
- }
34
-
35
- if (base)
36
- res = Urso.helper.objectClone(states[base]);
37
-
38
- for (k in states[state])
39
- res[k] = states[state][k];
40
-
41
- return res;
42
- };
43
-
44
- _eventHandler(button, event) {
45
- //todo _eventHandler?
46
- this._addEventsMode(button, event);
47
- };
48
-
49
- _addEventsMode(button, event) {
50
- if (!this._buttonsFactors[button])
51
- this._buttonsFactors[button] = {};
52
-
53
- //check removeEvents
54
- if (event.removeEvents && event.removeEvents.length > 0) {
55
- let i;
56
-
57
- for (i = 0; i < event.removeEvents.length; i++)
58
- if (this._buttonsFactors[button][event.removeEvents[i]])
59
- delete this._buttonsFactors[button][event.removeEvents[i]];
60
- }
61
-
62
- //if state -> write
63
- if (event.state && !this._buttonsFactors[button][event.id])
64
- this._buttonsFactors[button][event.id] = event;
65
-
66
- //calc current state
67
- let cur = false;
68
-
69
- if (Object.keys(this._buttonsFactors[button]).length > 0)
70
- cur = Object.values(this._buttonsFactors[button]).reduce(function (prev, current) {
71
- return (prev.priority > current.priority) ? prev : current;
72
- });
73
-
74
- const state = this._getButtonState(button, (cur && cur.state) || this.DEFAULT_STATE_NAME);
75
- this._changeButtonState(button, state);
76
- };
77
-
78
- beforeUpdateHandler() { };
79
- afterUpdateHandler() { };
80
-
81
- _changeButtonState(button, params) {
82
- console.log(100, button, params)
83
- params.disableFrame = params.frames.disableFrame;
84
-
85
- const buttonsData = {};
86
- buttonsData[button] = params;
87
-
88
- this.beforeUpdateHandler(params);
89
- this.emit('buttons.changeData', buttonsData);
90
- this.emit('button.setFrames', buttonsData);
91
- this.afterUpdateHandler(params);
92
- };
93
-
94
- _subscribeButtonToEvents(buttonKey, buttonSubscribeCfg) {
95
- for (let i = 0; i < buttonSubscribeCfg.length; i++) {
96
- const { event } = buttonSubscribeCfg[i];
97
- this.addListener(event, () => this._eventHandler(buttonKey, buttonSubscribeCfg[i]), true);
98
- }
99
- };
100
-
101
- _subscribeButtonsToEvents() {
102
- for (let k in this._cfg.eventsCfg) {
103
- this._subscribeButtonToEvents(k, this._cfg.eventsCfg[k])
104
- }
105
- };
106
-
107
- _pressHandler(btn = {}) {
108
- const state = this._getButtonState(btn.name, this.DEFAULT_STATE_NAME);
109
-
110
- if (state && state.callback)
111
- state.callback();
112
- };
113
-
114
- _subscribe() {
115
- this._subscribeButtonsToEvents();
116
- this.addListener(Urso.events.MODULES_OBJECTS_BUTTON_PRESS, this._pressHandler.bind(this), true);
117
- };
118
- };
119
-
120
- module.exports = ModulesLogicButtons;
1
+ class ModulesLogicButtons {
2
+ constructor() {
3
+ this.DEFAULT_STATE_NAME = 'default'; //MOVE TO CFG
4
+ this._buttonsFactors = {};
5
+ this._cfg = null;
6
+
7
+ this._updateCfg();
8
+
9
+ if (!this._cfg || Urso.helper.arraysGetUniqElements(Object.keys(this._cfg.eventsCfg), Object.keys(this._cfg.buttonStates)).length > 0)
10
+ console.error('Modules.Logic.Buttons error: invalid Modules.Logic.Config.Buttons');
11
+ }
12
+
13
+ _updateCfg() {
14
+ this._cfg = this.getInstance('Config.Buttons');
15
+ };
16
+
17
+ _getButtonState(button, state) {
18
+ const buttonStates = this._cfg.buttonStates;
19
+
20
+ if (!buttonStates[button] || !buttonStates[button][state])
21
+ return false;
22
+
23
+ let states = buttonStates[button],
24
+ base = false,
25
+ k,
26
+ res = {};
27
+
28
+ if (state !== 'default') {
29
+ if (typeof states[state].base !== 'undefined')
30
+ base = states[state].base;
31
+ else
32
+ base = 'default';
33
+ }
34
+
35
+ if (base)
36
+ res = Urso.helper.objectClone(states[base]);
37
+
38
+ for (k in states[state])
39
+ res[k] = states[state][k];
40
+
41
+ return res;
42
+ };
43
+
44
+ _eventHandler(button, event) {
45
+ //todo _eventHandler?
46
+ this._addEventsMode(button, event);
47
+ };
48
+
49
+ _addEventsMode(button, event) {
50
+ if (!this._buttonsFactors[button])
51
+ this._buttonsFactors[button] = {};
52
+
53
+ //check removeEvents
54
+ if (event.removeEvents && event.removeEvents.length > 0) {
55
+ let i;
56
+
57
+ for (i = 0; i < event.removeEvents.length; i++)
58
+ if (this._buttonsFactors[button][event.removeEvents[i]])
59
+ delete this._buttonsFactors[button][event.removeEvents[i]];
60
+ }
61
+
62
+ //if state -> write
63
+ if (event.state && !this._buttonsFactors[button][event.id])
64
+ this._buttonsFactors[button][event.id] = event;
65
+
66
+ //calc current state
67
+ let cur = false;
68
+
69
+ if (Object.keys(this._buttonsFactors[button]).length > 0)
70
+ cur = Object.values(this._buttonsFactors[button]).reduce(function (prev, current) {
71
+ return (prev.priority > current.priority) ? prev : current;
72
+ });
73
+
74
+ const state = this._getButtonState(button, (cur && cur.state) || this.DEFAULT_STATE_NAME);
75
+ this._changeButtonState(button, state);
76
+ };
77
+
78
+ beforeUpdateHandler() { };
79
+ afterUpdateHandler() { };
80
+
81
+ _changeButtonState(button, params) {
82
+ console.log(100, button, params)
83
+ params.disableFrame = params.frames.disableFrame;
84
+
85
+ const buttonsData = {};
86
+ buttonsData[button] = params;
87
+
88
+ this.beforeUpdateHandler(params);
89
+ this.emit('buttons.changeData', buttonsData);
90
+ this.emit('button.setFrames', buttonsData);
91
+ this.afterUpdateHandler(params);
92
+ };
93
+
94
+ _subscribeButtonToEvents(buttonKey, buttonSubscribeCfg) {
95
+ for (let i = 0; i < buttonSubscribeCfg.length; i++) {
96
+ const { event } = buttonSubscribeCfg[i];
97
+ this.addListener(event, () => this._eventHandler(buttonKey, buttonSubscribeCfg[i]), true);
98
+ }
99
+ };
100
+
101
+ _subscribeButtonsToEvents() {
102
+ for (let k in this._cfg.eventsCfg) {
103
+ this._subscribeButtonToEvents(k, this._cfg.eventsCfg[k])
104
+ }
105
+ };
106
+
107
+ _pressHandler(btn = {}) {
108
+ const state = this._getButtonState(btn.name, this.DEFAULT_STATE_NAME);
109
+
110
+ if (state && state.callback)
111
+ state.callback();
112
+ };
113
+
114
+ _subscribe() {
115
+ this._subscribeButtonsToEvents();
116
+ this.addListener(Urso.events.MODULES_OBJECTS_BUTTON_PRESS, this._pressHandler.bind(this), true);
117
+ };
118
+ };
119
+
120
+ module.exports = ModulesLogicButtons;
@@ -1,4 +1,4 @@
1
- Urso.Core.Modules.Logic.Config = {
2
- Buttons: require('./buttons.js'),
3
- Sounds: require('./sounds.js')
1
+ Urso.Core.Modules.Logic.Config = {
2
+ Buttons: require('./buttons.js'),
3
+ Sounds: require('./sounds.js')
4
4
  };
@@ -1,63 +1,63 @@
1
- class ModulesLogicConfigButtons {
2
- constructor(){
3
- this.singleton = true;
4
- this.buttonStates = this.setButtonStates();
5
- this.eventsCfgBlank = this.setEventsCfgBlanks();
6
- this.eventsCfg = this.setEventsCfg();
7
- }
8
-
9
- setButtonStates(){
10
- return {
11
- spin: {
12
- default: { //base
13
- 'title': '',
14
- 'callback': function () {
15
- this.emit('slotMachine.spinCommand');
16
- },
17
- 'enabled': true,
18
- 'visible': true
19
- },
20
- //default extend
21
- inactive: {
22
- 'enabled': false
23
- },
24
- stop: {
25
- 'callback': function () {
26
- this.emit('slotMachine.stopCommand');
27
- }
28
- },
29
- stopInactive: {
30
- 'base': 'stop',
31
- 'enabled': false
32
- }
33
- }
34
- };
35
- };
36
-
37
- setEventsCfgBlanks(){
38
- return {
39
- globalUiGroup: [
40
- {id: 1, event: 'Transport.close', state: false, priority: 100, removeEvents: [10, 11, 12, 13]},
41
- {id: 2, event: 'freespinsStart', state: 'inactive', priority: 10},
42
- {id: 3, event: 'freespinsStop', state: false, priority: 10, removeEvents: [1]}
43
- ]
44
- };
45
- };
46
-
47
- setEventsCfg(){
48
- return {
49
- spin: [
50
- {id: 1, event: 'Transport.close', state: false, priority: 100, removeEvents: [10, 11, 12, 13]},
51
- {id: 10, event: 'freespinsStart', state: 'inactive', priority: 40},
52
- {id: 11, event: 'freespinsStop', state: false, priority: 40, removeEvents: [10]},
53
- {id: 12, event: 'SpinStart', state: 'inactive', priority: 20},
54
- {id: 13, event: 'SpinResponce', state: 'stop', priority: 20},
55
- {id: 14, event: 'StopPress', state: 'stopInactive', priority: 20},
56
- {id: 15, event: 'SpinStop', state: false, priority: 20, removeEvents: [12]}
57
- ]
58
- };
59
- };
60
-
61
- };
62
-
63
- module.exports = ModulesLogicConfigButtons;
1
+ class ModulesLogicConfigButtons {
2
+ constructor(){
3
+ this.singleton = true;
4
+ this.buttonStates = this.setButtonStates();
5
+ this.eventsCfgBlank = this.setEventsCfgBlanks();
6
+ this.eventsCfg = this.setEventsCfg();
7
+ }
8
+
9
+ setButtonStates(){
10
+ return {
11
+ spin: {
12
+ default: { //base
13
+ 'title': '',
14
+ 'callback': function () {
15
+ this.emit('slotMachine.spinCommand');
16
+ },
17
+ 'enabled': true,
18
+ 'visible': true
19
+ },
20
+ //default extend
21
+ inactive: {
22
+ 'enabled': false
23
+ },
24
+ stop: {
25
+ 'callback': function () {
26
+ this.emit('slotMachine.stopCommand');
27
+ }
28
+ },
29
+ stopInactive: {
30
+ 'base': 'stop',
31
+ 'enabled': false
32
+ }
33
+ }
34
+ };
35
+ };
36
+
37
+ setEventsCfgBlanks(){
38
+ return {
39
+ globalUiGroup: [
40
+ {id: 1, event: 'Transport.close', state: false, priority: 100, removeEvents: [10, 11, 12, 13]},
41
+ {id: 2, event: 'freespinsStart', state: 'inactive', priority: 10},
42
+ {id: 3, event: 'freespinsStop', state: false, priority: 10, removeEvents: [1]}
43
+ ]
44
+ };
45
+ };
46
+
47
+ setEventsCfg(){
48
+ return {
49
+ spin: [
50
+ {id: 1, event: 'Transport.close', state: false, priority: 100, removeEvents: [10, 11, 12, 13]},
51
+ {id: 10, event: 'freespinsStart', state: 'inactive', priority: 40},
52
+ {id: 11, event: 'freespinsStop', state: false, priority: 40, removeEvents: [10]},
53
+ {id: 12, event: 'SpinStart', state: 'inactive', priority: 20},
54
+ {id: 13, event: 'SpinResponce', state: 'stop', priority: 20},
55
+ {id: 14, event: 'StopPress', state: 'stopInactive', priority: 20},
56
+ {id: 15, event: 'SpinStop', state: false, priority: 20, removeEvents: [12]}
57
+ ]
58
+ };
59
+ };
60
+
61
+ };
62
+
63
+ module.exports = ModulesLogicConfigButtons;
@@ -1,23 +1,23 @@
1
- class ModulesLogicConfigSounds {
2
- constructor(){
3
- this.singleton = true;
4
- this.soundsConfig = this.getSoundsConfig();
5
- }
6
-
7
- getSoundsConfig(){
8
- return {
9
- main: [
10
- { soundKey: 'sound1', event: 'sound1.play.once', action: 'play' },
11
- { soundKey: 'sound_check', event: 'soundCheck.play.once', action: 'play' },
12
- { soundKey: 'sound_check', event: 'soundCheck.stop', action: 'stop' },
13
- { soundKey: 'sound_check', event: 'soundCheck.pause', action: 'pause' },
14
- { soundKey: 'sound_check', event: 'soundCheck.resume', action: 'resume' },
15
- { soundKey: 'sound_check', event: 'soundCheck.play.loop', action: 'play', relaunch: true, loop: true }
16
- ]
17
- };
18
- };
19
-
20
- };
21
-
22
- module.exports = ModulesLogicConfigSounds;
23
-
1
+ class ModulesLogicConfigSounds {
2
+ constructor(){
3
+ this.singleton = true;
4
+ this.soundsConfig = this.getSoundsConfig();
5
+ }
6
+
7
+ getSoundsConfig(){
8
+ return {
9
+ main: [
10
+ { soundKey: 'sound1', event: 'sound1.play.once', action: 'play' },
11
+ { soundKey: 'sound_check', event: 'soundCheck.play.once', action: 'play' },
12
+ { soundKey: 'sound_check', event: 'soundCheck.stop', action: 'stop' },
13
+ { soundKey: 'sound_check', event: 'soundCheck.pause', action: 'pause' },
14
+ { soundKey: 'sound_check', event: 'soundCheck.resume', action: 'resume' },
15
+ { soundKey: 'sound_check', event: 'soundCheck.play.loop', action: 'play', relaunch: true, loop: true }
16
+ ]
17
+ };
18
+ };
19
+
20
+ };
21
+
22
+ module.exports = ModulesLogicConfigSounds;
23
+
@@ -1,48 +1,48 @@
1
- class ModulesLogicController {
2
- constructor() {
3
- this._baseLogicBlocks = ['sounds', 'buttons'];
4
- const additionalLogicBlocks = this.getAdditionalLogicBlocks();
5
- this.logicBlocks = [...this._baseLogicBlocks, ...additionalLogicBlocks];
6
-
7
- this._instances = {};
8
- this._init();
9
- };
10
-
11
- _init(){
12
- this._createLogicInstances();
13
- };
14
-
15
- getAdditionalLogicBlocks(){
16
- return [];
17
- };
18
-
19
- _createLogicInstances(){
20
- //console.log('[Modules.Brain.Controller]', ' Creating logic blocks:', JSON.stringify(this.logicBlocks));
21
-
22
- for (let i = 0; i < this.logicBlocks.length; i++) {
23
- const blockName = this.logicBlocks[i];
24
- const blockNameNormalized = Urso.helper.capitaliseFirstLetter(blockName);
25
- this._instances[blockName] = this.getInstance(blockNameNormalized);
26
- }
27
- };
28
-
29
- do(){
30
- const results = [];
31
- const params = [ ...arguments ];
32
- const funName = params.shift();
33
-
34
- for (let blockName in this._instances) {
35
- const instance = this._instances[blockName];
36
-
37
- if(instance && instance[funName]){
38
- results[blockName] = instance[funName].apply(this, params);
39
- }
40
- }
41
-
42
- return results;
43
- };
44
-
45
- _subscribe(){};
46
- }
47
-
48
- module.exports = ModulesLogicController;
1
+ class ModulesLogicController {
2
+ constructor() {
3
+ this._baseLogicBlocks = ['sounds', 'buttons'];
4
+ const additionalLogicBlocks = this.getAdditionalLogicBlocks();
5
+ this.logicBlocks = [...this._baseLogicBlocks, ...additionalLogicBlocks];
6
+
7
+ this._instances = {};
8
+ this._init();
9
+ };
10
+
11
+ _init(){
12
+ this._createLogicInstances();
13
+ };
14
+
15
+ getAdditionalLogicBlocks(){
16
+ return [];
17
+ };
18
+
19
+ _createLogicInstances(){
20
+ //console.log('[Modules.Brain.Controller]', ' Creating logic blocks:', JSON.stringify(this.logicBlocks));
21
+
22
+ for (let i = 0; i < this.logicBlocks.length; i++) {
23
+ const blockName = this.logicBlocks[i];
24
+ const blockNameNormalized = Urso.helper.capitaliseFirstLetter(blockName);
25
+ this._instances[blockName] = this.getInstance(blockNameNormalized);
26
+ }
27
+ };
28
+
29
+ do(){
30
+ const results = [];
31
+ const params = [ ...arguments ];
32
+ const funName = params.shift();
33
+
34
+ for (let blockName in this._instances) {
35
+ const instance = this._instances[blockName];
36
+
37
+ if(instance && instance[funName]){
38
+ results[blockName] = instance[funName].apply(this, params);
39
+ }
40
+ }
41
+
42
+ return results;
43
+ };
44
+
45
+ _subscribe(){};
46
+ }
47
+
48
+ module.exports = ModulesLogicController;