@urso/core 0.2.6 → 0.2.7

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 +31 -31
  5. package/package.json +52 -52
  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 +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 +9 -9
  32. package/src/js/extra/_info.js +23 -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 +524 -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 +37 -37
  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 -330
  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 +246 -246
  78. package/src/js/modules/objects/find.js +140 -140
  79. package/src/js/modules/objects/models/_info.js +25 -25
  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/checkbox.js +95 -96
  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/scrollbox.js +61 -61
  97. package/src/js/modules/objects/models/slider.js +199 -154
  98. package/src/js/modules/objects/models/spine.js +83 -83
  99. package/src/js/modules/objects/models/text.js +38 -38
  100. package/src/js/modules/objects/models/textInput.js +55 -55
  101. package/src/js/modules/objects/models/toggle.js +169 -169
  102. package/src/js/modules/objects/models/world.js +19 -19
  103. package/src/js/modules/objects/propertyAdapter.js +421 -421
  104. package/src/js/modules/objects/proxy.js +179 -179
  105. package/src/js/modules/objects/styles.js +116 -116
  106. package/src/js/modules/observer/_info.js +4 -4
  107. package/src/js/modules/observer/controller.js +99 -99
  108. package/src/js/modules/observer/events.js +32 -32
  109. package/src/js/modules/scenes/_info.js +8 -8
  110. package/src/js/modules/scenes/controller.js +34 -34
  111. package/src/js/modules/scenes/model.js +35 -35
  112. package/src/js/modules/scenes/pixiWrapper.js +194 -194
  113. package/src/js/modules/scenes/resolutions.js +161 -161
  114. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  115. package/src/js/modules/scenes/service.js +84 -84
  116. package/src/js/modules/soundManager/_info.js +3 -3
  117. package/src/js/modules/soundManager/controller.js +99 -99
  118. package/src/js/modules/soundManager/soundSprite.js +202 -202
  119. package/src/js/modules/statesManager/_info.js +12 -12
  120. package/src/js/modules/statesManager/action.js +55 -55
  121. package/src/js/modules/statesManager/actions/_info.js +3 -3
  122. package/src/js/modules/statesManager/all.js +23 -23
  123. package/src/js/modules/statesManager/configStates.js +71 -71
  124. package/src/js/modules/statesManager/controller.js +132 -132
  125. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  126. package/src/js/modules/statesManager/helper.js +27 -27
  127. package/src/js/modules/statesManager/race.js +75 -75
  128. package/src/js/modules/statesManager/sequence.js +47 -47
  129. package/src/js/modules/template/_info.js +6 -6
  130. package/src/js/modules/template/controller.js +28 -28
  131. package/src/js/modules/template/model.js +11 -11
  132. package/src/js/modules/template/service.js +125 -125
  133. package/src/js/modules/template/types.js +46 -46
  134. package/src/js/modules/transport/_info.js +8 -8
  135. package/src/js/modules/transport/baseConnectionType.js +24 -24
  136. package/src/js/modules/transport/config.js +22 -22
  137. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  138. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  139. package/src/js/modules/transport/connectionTypes/xhr.js +41 -41
  140. package/src/js/modules/transport/controller.js +48 -48
  141. package/src/js/modules/transport/decorator.js +16 -16
  142. package/src/js/modules/transport/service.js +138 -138
  143. package/src/js/templates/_info.js +4 -4
  144. package/src/js/templates/groups/_info.js +1 -1
  145. package/src/js/templates/scenes/_info.js +1 -1
  146. package/webpack.config.js +47 -47
@@ -1,250 +1,250 @@
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;
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;
@@ -1,54 +1,54 @@
1
- class ModulesObjectsModelsEmitter extends Urso.Core.Modules.Objects.BaseModel {
2
- constructor(params) {
3
- super(params);
4
-
5
- this.type = Urso.types.objects.EMITTER;
6
-
7
- this.emitter = null;
8
-
9
- this._addBaseObject();
10
- this._addEmitter();
11
- }
12
-
13
- setupParams(params) {
14
- super.setupParams(params);
15
-
16
- this.autostart = Urso.helper.recursiveGet('autostart', params, false);
17
- this.cfg = Urso.helper.recursiveGet('cfg', params, false); // json asset key with emitter config
18
- this.textures = Urso.helper.recursiveGet('textures', params, []); // array of image asset keys
19
- }
20
-
21
- _addBaseObject() {
22
- this._baseObject = new PIXI.ParticleContainer();
23
- this._baseObject.setProperties({
24
- scale: true,
25
- position: true,
26
- rotation: true,
27
- uvs: true,
28
- alpha: true,
29
- });
30
- };
31
-
32
- _addEmitter() {
33
- const cfg = Urso.cache.getJson(this.cfg);
34
- const textures = [];
35
-
36
- if (!cfg || !cfg.data)
37
- throw new SyntaxError(`Config error in ${this.name} emitter`);
38
-
39
- for (const textureName of this.textures) {
40
- const texture = Urso.cache.getTexture(textureName);
41
- if (texture)
42
- textures.push(texture);
43
- }
44
- this.emitter = new PIXI.particles.Emitter(this._baseObject, textures, cfg.data);
45
- this.emitter.emit = this.autostart;
46
- this.emitter.autoUpdate = true;
47
- }
48
-
49
- play() {
50
- this.emitter.emit = true;
51
- }
52
- }
53
-
54
- module.exports = ModulesObjectsModelsEmitter;
1
+ class ModulesObjectsModelsEmitter extends Urso.Core.Modules.Objects.BaseModel {
2
+ constructor(params) {
3
+ super(params);
4
+
5
+ this.type = Urso.types.objects.EMITTER;
6
+
7
+ this.emitter = null;
8
+
9
+ this._addBaseObject();
10
+ this._addEmitter();
11
+ }
12
+
13
+ setupParams(params) {
14
+ super.setupParams(params);
15
+
16
+ this.autostart = Urso.helper.recursiveGet('autostart', params, false);
17
+ this.cfg = Urso.helper.recursiveGet('cfg', params, false); // json asset key with emitter config
18
+ this.textures = Urso.helper.recursiveGet('textures', params, []); // array of image asset keys
19
+ }
20
+
21
+ _addBaseObject() {
22
+ this._baseObject = new PIXI.ParticleContainer();
23
+ this._baseObject.setProperties({
24
+ scale: true,
25
+ position: true,
26
+ rotation: true,
27
+ uvs: true,
28
+ alpha: true,
29
+ });
30
+ };
31
+
32
+ _addEmitter() {
33
+ const cfg = Urso.cache.getJson(this.cfg);
34
+ const textures = [];
35
+
36
+ if (!cfg || !cfg.data)
37
+ throw new SyntaxError(`Config error in ${this.name} emitter`);
38
+
39
+ for (const textureName of this.textures) {
40
+ const texture = Urso.cache.getTexture(textureName);
41
+ if (texture)
42
+ textures.push(texture);
43
+ }
44
+ this.emitter = new PIXI.particles.Emitter(this._baseObject, textures, cfg.data);
45
+ this.emitter.emit = this.autostart;
46
+ this.emitter.autoUpdate = true;
47
+ }
48
+
49
+ play() {
50
+ this.emitter.emit = true;
51
+ }
52
+ }
53
+
54
+ module.exports = ModulesObjectsModelsEmitter;