@urso/core 0.2.6 → 0.3.1

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 (146) 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 +75 -47
  5. package/package.json +51 -52
  6. package/src/js/app.js +77 -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 +3 -3
  29. package/src/js/components/stateDriven/controller.js +96 -96
  30. package/src/js/config/load.js +5 -5
  31. package/src/js/config/main.js +10 -9
  32. package/src/js/extra/_info.js +21 -23
  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 +539 -524
  40. package/src/js/lib/loader.js +121 -121
  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 -35
  51. package/src/js/modules/assets/controller.js +39 -37
  52. package/src/js/modules/assets/models/_info.js +11 -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/font.js +8 -8
  58. package/src/js/modules/assets/models/image.js +14 -14
  59. package/src/js/modules/assets/models/json.js +8 -8
  60. package/src/js/modules/assets/models/sound.js +14 -14
  61. package/src/js/modules/assets/models/spine.js +8 -8
  62. package/src/js/modules/assets/service.js +327 -330
  63. package/src/js/modules/instances/_info.js +3 -3
  64. package/src/js/modules/instances/controller.js +219 -218
  65. package/src/js/modules/logic/_info.js +4 -5
  66. package/src/js/modules/logic/config/_info.js +2 -3
  67. package/src/js/modules/logic/config/sounds.js +23 -23
  68. package/src/js/modules/logic/controller.js +48 -48
  69. package/src/js/modules/logic/sounds.js +96 -96
  70. package/src/js/modules/objects/_info.js +11 -11
  71. package/src/js/modules/objects/baseModel.js +161 -161
  72. package/src/js/modules/objects/cache.js +99 -99
  73. package/src/js/modules/objects/controller.js +121 -115
  74. package/src/js/modules/objects/create.js +230 -246
  75. package/src/js/modules/objects/find.js +140 -140
  76. package/src/js/modules/objects/models/_info.js +24 -25
  77. package/src/js/modules/objects/models/atlasImage.js +50 -50
  78. package/src/js/modules/objects/models/bitmapText.js +23 -23
  79. package/src/js/modules/objects/models/button.js +184 -184
  80. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  81. package/src/js/modules/objects/models/checkbox.js +95 -96
  82. package/src/js/modules/objects/models/collection.js +54 -54
  83. package/src/js/modules/objects/models/component.js +44 -44
  84. package/src/js/modules/objects/models/container.js +19 -19
  85. package/src/js/modules/objects/models/emitter.js +54 -54
  86. package/src/js/modules/objects/models/graphics.js +38 -38
  87. package/src/js/modules/objects/models/group.js +19 -19
  88. package/src/js/modules/objects/models/hitArea.js +104 -104
  89. package/src/js/modules/objects/models/image.js +34 -34
  90. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  91. package/src/js/modules/objects/models/mask.js +38 -38
  92. package/src/js/modules/objects/models/scrollbox.js +61 -61
  93. package/src/js/modules/objects/models/slider.js +199 -154
  94. package/src/js/modules/objects/models/spine.js +83 -83
  95. package/src/js/modules/objects/models/text.js +38 -38
  96. package/src/js/modules/objects/models/textInput.js +55 -55
  97. package/src/js/modules/objects/models/toggle.js +169 -169
  98. package/src/js/modules/objects/models/world.js +19 -19
  99. package/src/js/modules/objects/propertyAdapter.js +421 -421
  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 +33 -32
  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 +168 -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 -55
  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 -71
  120. package/src/js/modules/statesManager/controller.js +131 -132
  121. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  122. package/src/js/modules/statesManager/helper.js +27 -27
  123. package/src/js/modules/statesManager/race.js +75 -75
  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 +44 -46
  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 +140 -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/assets/models/dragonBones.js +0 -27
  144. package/src/js/modules/logic/buttons.js +0 -120
  145. package/src/js/modules/logic/config/buttons.js +0 -63
  146. package/src/js/modules/objects/models/dragonBones.js +0 -250
@@ -1,120 +0,0 @@
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,63 +0,0 @@
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,250 +0,0 @@
1
- const POOL_NAME = 'core.ObjectsModelsDragonBones.pool';
2
-
3
- class ModulesObjectsModelsDragonBones extends Urso.Core.Modules.Objects.BaseModel {
4
- constructor(params) {
5
- super(params);
6
-
7
- this._pool = this._checkPool();
8
- this._poolMember = null;
9
- this.type = Urso.types.objects.DRAGONBONES;
10
-
11
- this._onStart = null;
12
- this._onLoop = null;
13
- this._onComplete = null;
14
- this._onCompleteOnce = null;
15
-
16
- this.setAnimationConfig({}, true);
17
- this._addBaseObject();
18
- }
19
-
20
- setupParams(params) {
21
- super.setupParams(params);
22
-
23
- this.assetKey = Urso.helper.recursiveGet('assetKey', params, false);
24
-
25
- this.animation = {
26
- timeScale: 1,
27
- animationName: Urso.helper.recursiveGet('animation.animationName', params, false),
28
- armatureName: Urso.helper.recursiveGet('animation.armatureName', params, false),
29
- autoplay: Urso.helper.recursiveGet('animation.autoplay', params, false),
30
- loop: Urso.helper.recursiveGet('animation.loop', params, false),
31
- onStart: Urso.helper.recursiveGet('animation.onStart', params, false),
32
- onLoop: Urso.helper.recursiveGet('animation.onLoop', params, false),
33
- onComplete: Urso.helper.recursiveGet('animation.onComplete', params, false),
34
- onCompleteOnce: Urso.helper.recursiveGet('animation.onCompleteOnce', params, false)
35
- };
36
- }
37
-
38
- _addBaseObject() {
39
- const assets = this._getAssets();
40
-
41
- if (!this.animation.armatureName || !assets) {
42
- this._baseObject = new PIXI.Sprite();
43
- return;
44
- }
45
-
46
- this._createAnimationObject(assets);
47
-
48
- const { animationName, autoplay, loop } = this.animation;
49
-
50
- if (autoplay)
51
- this.play(animationName, loop);
52
- };
53
-
54
- _getAssets() {
55
- const skeletonJson = Urso.cache.getJson(`${this.assetKey}_skeletonJson`);
56
- const textureJson = Urso.cache.getJson(`${this.assetKey}_textureJson`);
57
- const textureImage = Urso.cache.getImage(`${this.assetKey}_textureImage`);
58
-
59
- if (!skeletonJson || !textureJson || !textureImage) {
60
- Urso.logger.error('ModulesObjectsModelsDragonBones assets error: no DragonBones object ' + this.assetKey);
61
- return false;
62
- }
63
-
64
- return { skeletonJson, textureJson, textureImage };
65
- }
66
-
67
- _createAnimationObject(assets) {
68
- const { armatureName } = this.animation;
69
- this._poolMember = this._pool.getElement(armatureName, assets);
70
- this._baseObject = this._poolMember.data;
71
- this._setCommonFunctions.bind(this)();
72
- this._setCallbacks();
73
- }
74
-
75
- _constructorFunction(armatureName, assets) {
76
- const { skeletonJson, textureJson, textureImage } = assets;
77
-
78
- const factory = Urso.DragonBones.PixiFactory.factory;
79
-
80
- if (!factory._dragonBonesDataMap[skeletonJson.data.name])
81
- factory.parseDragonBonesData(skeletonJson.data);
82
-
83
- factory.parseTextureAtlasData(textureJson.data, textureImage.texture);
84
-
85
- return factory.buildArmatureDisplay(armatureName);
86
- }
87
-
88
- _resetAnimationFunction(object) { //this._baseObject
89
- object.removeAllListeners(Urso.DragonBones.EventObject.START);
90
- object.removeAllListeners(Urso.DragonBones.EventObject.LOOP_COMPLETE);
91
- object.removeAllListeners(Urso.DragonBones.EventObject.COMPLETE);
92
- object.filters = [];
93
- return object;
94
- }
95
-
96
- _removeCallbacks(config) {
97
- if (this._onStart && config.onStart) {
98
- this._baseObject.removeListener(Urso.DragonBones.EventObject.START, this._onStart);
99
- this._onStart = null;
100
- }
101
-
102
- if (this._onLoop && config.onLoop) {
103
- this._baseObject.removeListener(Urso.DragonBones.EventObject.LOOP_COMPLETE, this._onLoop);
104
- this._onLoop = null;
105
- }
106
-
107
- if (this._onComplete && config.onComplete) {
108
- this._baseObject.removeListener(Urso.DragonBones.EventObject.COMPLETE, this._onComplete);
109
- this._onComplete = null;
110
- }
111
-
112
- if (this._onCompleteOnce && config.onCompleteOnce) {
113
- this._removeOnCompleteOnce(config);
114
- }
115
- };
116
-
117
- _removeOnCompleteOnce() {
118
- this._baseObject.removeListener(Urso.DragonBones.EventObject.COMPLETE, this._onCompleteOnce);
119
- this._onCompleteOnce = null;
120
- }
121
-
122
- _setCallbacks() {
123
- if (this.animation.onStart) {
124
- this._onStart = this.animation.onStart.bind(this);
125
- this._baseObject.addListener(Urso.DragonBones.EventObject.START, this._onStart);
126
- }
127
-
128
- if (this.animation.onLoop) {
129
- this._onLoop = this.animation.onLoop.bind(this);
130
- this._baseObject.addListener(Urso.DragonBones.EventObject.LOOP_COMPLETE, this._onLoop);
131
- }
132
-
133
- if (this.animation.onComplete) {
134
- this._onComplete = this.animation.onComplete.bind(this);
135
- this._baseObject.addListener(Urso.DragonBones.EventObject.COMPLETE, this._onComplete);
136
- }
137
-
138
- if (this.animation.onCompleteOnce) {
139
- const onCompleteOnce = this.animation.onCompleteOnce.bind(this);
140
-
141
- this.animation.onCompleteOnce = null;
142
-
143
- this._onCompleteOnce = () => {
144
- this._removeOnCompleteOnce();
145
- onCompleteOnce();
146
- };
147
-
148
- this._baseObject.once(Urso.DragonBones.EventObject.COMPLETE, this._onCompleteOnce);
149
- }
150
- }
151
-
152
- /**
153
- *
154
- * @param {*} config
155
- * @param {boolean} [noObjectCreate] dont use this flag out of core
156
- *
157
- * config keys:
158
- * animationName
159
- * armatureName
160
- autoplay
161
- timeScale
162
- onStart
163
- onLoop
164
- onComplete
165
- onCompleteOnce
166
- */
167
- setAnimationConfig(config = {}, noObjectCreate) {
168
- if (this.stop)
169
- this.stop();
170
-
171
- this.animation = {
172
- ...this.animation,
173
- ...config
174
- };
175
-
176
- if (config.timeScale)
177
- this._baseObject.animation.timeScale = config.timeScale;
178
-
179
- if (config.onStart || config.onLoop || config.onComplete || config.onCompleteOnce) {
180
- this._removeCallbacks(config);
181
- this._setCallbacks();
182
- }
183
-
184
- if (noObjectCreate || !config.armatureName)
185
- return;
186
-
187
- let parent = null;
188
-
189
- if (this._baseObject) {
190
- parent = this._baseObject.parent;
191
- this._customDestroy();
192
- }
193
-
194
- const assets = this._getAssets();
195
-
196
- if (assets)
197
- this._createAnimationObject(assets);
198
-
199
- if (parent) {
200
- parent.addChild(this._baseObject);
201
- //update common properties after adding to apply model settings
202
- Urso.objects._updateCommonProperties(this);
203
- }
204
- }
205
-
206
- /**
207
- * run play animation
208
- * @param {number} times
209
- */
210
- play(animationName, loopFlag = false) {
211
- if (!this._baseObject.animation) {
212
- Urso.logger.error(`DragonBones animation not found!`);
213
- return;
214
- }
215
-
216
- if (this.stop)
217
- this.stop();
218
-
219
- const times = (loopFlag) ? -1 : 1;
220
-
221
- this._baseObject.animation.play(animationName, times);
222
- }
223
-
224
- _setCommonFunctions() {
225
- this.stop = this._baseObject.animation.stop.bind(this._baseObject.animation);
226
- }
227
-
228
- _customDestroy() {
229
- this._pool.putElement(this._poolMember);
230
-
231
- if (this._baseObject.parent)
232
- this._baseObject.parent.removeChild(this._baseObject);
233
-
234
- this._baseObject = null;
235
- }
236
-
237
- _checkPool() {
238
- const pool = Urso.localData.get(POOL_NAME);
239
-
240
- if (pool)
241
- return pool;
242
-
243
- const newPool = new Urso.Game.Lib.ObjectPool(this._constructorFunction.bind(this), this._resetAnimationFunction.bind(this));
244
- Urso.localData.set(POOL_NAME, newPool);
245
-
246
- return newPool;
247
- }
248
- }
249
-
250
- module.exports = ModulesObjectsModelsDragonBones;