@urso/core 0.8.19 → 0.8.21

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@urso/core",
3
- "version": "0.8.19",
3
+ "version": "0.8.21",
4
4
  "description": "HTML5 game engine",
5
5
  "main": "build/js/index.js",
6
6
  "author": "Megbrimef",
@@ -7,6 +7,8 @@ class LibLoader {
7
7
  this._onLoadUpdate = () => { };
8
8
  this._loader = null;
9
9
  this._completeCallback = () => { };
10
+ this._errorCallback = () => { };
11
+ this._reloadOnError = true;
10
12
 
11
13
  this._onError = this._onError.bind(this);
12
14
  };
@@ -102,7 +104,7 @@ class LibLoader {
102
104
  * start loading assets from assets query
103
105
  * @param {Function} callback
104
106
  */
105
- start(callback) {
107
+ start(callback, errorCallback = () => { }, reloadOnError = true) {
106
108
  if (this._isRunning)
107
109
  return false;
108
110
 
@@ -111,6 +113,8 @@ class LibLoader {
111
113
  this._iterationNumber++;
112
114
  const currentIteration = this._iterationNumber;
113
115
  this._completeCallback = callback;
116
+ this._errorCallback = errorCallback;
117
+ this._reloadOnError = reloadOnError;
114
118
  this._loader = new PIXI.Loader();
115
119
  const appVersion = Urso.config.appVersion;
116
120
 
@@ -201,9 +205,12 @@ class LibLoader {
201
205
  this._loader.reset();
202
206
  this._isRunning = false;
203
207
  this._lastLoadFailed = true;
208
+ this._errorCallback(error);
204
209
 
205
- Urso.logger.warn('LibLoader all assets RELOAD...');
206
- this._resizeTimeoutId = Urso.setTimeout(() => this.start(this._completeCallback), this.RELOAD_DELAY);
210
+ if (this._reloadOnError) {
211
+ Urso.logger.warn('LibLoader all assets RELOAD...');
212
+ Urso.setTimeout(() => this.start(this._completeCallback), this.RELOAD_DELAY);
213
+ }
207
214
  }
208
215
 
209
216
  };
@@ -33,9 +33,9 @@ class ModulesAssetsController {
33
33
  * @param {Mixed} assets - asset or array of assets
34
34
  * @param {Function} callback
35
35
  */
36
- preload(assets, callback, updateCallback = () => { }) {
36
+ preload(assets, callback, updateCallback = () => { }, errorCallback = () => { }, reloadOnError = true) {
37
37
  const assetsSpace = this.getInstance('Service').sortAssets(assets);
38
- this.getInstance('Service').startLoad(assetsSpace, callback, updateCallback);
38
+ this.getInstance('Service').startLoad(assetsSpace, callback, updateCallback, errorCallback, reloadOnError);
39
39
  }
40
40
 
41
41
  /**
@@ -43,8 +43,8 @@ class ModulesAssetsController {
43
43
  * @param {String} name
44
44
  * @param {Function} callback
45
45
  */
46
- loadGroup(name, callback, updateCallback = () => { }) {
47
- this.getInstance('Service').loadGroup(null, name, callback, updateCallback);
46
+ loadGroup(name, callback, updateCallback = () => { }, errorCallback = () => { }, reloadOnError = true) {
47
+ this.getInstance('Service').loadGroup(null, name, callback, updateCallback, errorCallback, reloadOnError);
48
48
  }
49
49
 
50
50
  /**
@@ -58,12 +58,14 @@ class ModulesAssetsService {
58
58
  * @param {Object} assetsSpace
59
59
  * @param {Function} callback
60
60
  */
61
- startLoad(assetsSpace, callback, updateCallback) {
61
+ startLoad(assetsSpace, callback, updateCallback, errorCallback, reloadOnError) {
62
62
  this.loadGroup(
63
63
  assetsSpace,
64
64
  this.getInstance('Config').loadingGroups.initial,
65
- (() => { callback(); this._startLazyLoad(); }).bind(this),
66
- updateCallback
65
+ (() => { callback(); this._startLazyLoad(errorCallback, reloadOnError); }).bind(this),
66
+ updateCallback,
67
+ errorCallback,
68
+ reloadOnError
67
69
  )
68
70
  }
69
71
 
@@ -74,7 +76,7 @@ class ModulesAssetsService {
74
76
  * @param {Function} callback
75
77
  * @returns
76
78
  */
77
- loadGroup(assetsSpace, group, callback = () => { }, updateCallback = () => { }) {
79
+ loadGroup(assetsSpace, group, callback, updateCallback, errorCallback, reloadOnError) {
78
80
  if (!assetsSpace) //global space
79
81
  assetsSpace = this.assets;
80
82
 
@@ -82,13 +84,13 @@ class ModulesAssetsService {
82
84
  return Urso.logger.error('ModulesAssetsService group error, no assets:' + group + ' Check ModulesAssetsConfig please');
83
85
 
84
86
  //we need load and parse atlases at first (!)
85
- const loadRestAssetsCallback = () => { this._loadGroupRestAssets(assetsSpace, group, callback, updateCallback) };
87
+ const loadRestAssetsCallback = () => { this._loadGroupRestAssets(assetsSpace, group, callback, updateCallback, errorCallback, reloadOnError) };
86
88
 
87
89
  const loadAtlasesCallback = () => {
88
- this._loadGroupAtlases(assetsSpace, group, loadRestAssetsCallback, Urso.types.assets.ATLAS);
90
+ this._loadGroupAtlases(assetsSpace, group, loadRestAssetsCallback, errorCallback, reloadOnError, Urso.types.assets.ATLAS);
89
91
  }
90
92
 
91
- this._loadGroupAtlases(assetsSpace, group, loadAtlasesCallback, Urso.types.assets.JSONATLAS);
93
+ this._loadGroupAtlases(assetsSpace, group, loadAtlasesCallback, errorCallback, reloadOnError, Urso.types.assets.JSONATLAS);
92
94
  }
93
95
 
94
96
  preloadAllImagesInGPU() {
@@ -126,7 +128,7 @@ class ModulesAssetsService {
126
128
  * @param {String} group
127
129
  * @param {Function} callback
128
130
  */
129
- _loadGroupAtlases(assetsSpace, group, callback, atlasType) {
131
+ _loadGroupAtlases(assetsSpace, group, callback, errorCallback, reloadOnError, atlasType) {
130
132
  const atlases = assetsSpace[group].filter(assetModel => assetModel.type === atlasType);
131
133
 
132
134
  if (!atlases.length)
@@ -137,12 +139,16 @@ class ModulesAssetsService {
137
139
  for (let assetModel of atlases)
138
140
  this._addAssetToLoader(assetModel, loader);
139
141
 
140
- loader.start(() => {
141
- if (atlasType === Urso.types.assets.ATLAS)
142
- this._processLoadedAtlases(assetsSpace, group);
142
+ loader.start(
143
+ () => {
144
+ if (atlasType === Urso.types.assets.ATLAS)
145
+ this._processLoadedAtlases(assetsSpace, group);
143
146
 
144
- callback();
145
- });
147
+ callback();
148
+ },
149
+ errorCallback,
150
+ reloadOnError
151
+ );
146
152
  }
147
153
 
148
154
  /**
@@ -151,7 +157,7 @@ class ModulesAssetsService {
151
157
  * @param {String} group
152
158
  * @param {Function} callback
153
159
  */
154
- _loadGroupRestAssets(assetsSpace, group, callback, updateCallback) {
160
+ _loadGroupRestAssets(assetsSpace, group, callback, updateCallback, errorCallback, reloadOnError) {
155
161
  let loader = Urso.getInstance('Lib.Loader');
156
162
  //load update callback
157
163
  loader.setOnLoadUpdate((params) => { updateCallback(Math.floor(params.progress)); });
@@ -170,11 +176,18 @@ class ModulesAssetsService {
170
176
  loader.start(
171
177
  () => {
172
178
  this._processLoadedAssets(assetsSpace, group);
173
- this._loadNoAtlasSpines(noAtlasSpines, () => {
174
- this.emit(Urso.events.MODULES_ASSETS_GROUP_LOADED, group);
175
- callback();
176
- });
177
- }
179
+ this._loadNoAtlasSpines(
180
+ noAtlasSpines,
181
+ () => {
182
+ this.emit(Urso.events.MODULES_ASSETS_GROUP_LOADED, group);
183
+ callback();
184
+ },
185
+ errorCallback,
186
+ reloadOnError
187
+ );
188
+ },
189
+ errorCallback,
190
+ reloadOnError
178
191
  );
179
192
  }
180
193
 
@@ -184,7 +197,7 @@ class ModulesAssetsService {
184
197
  * @param {Function} callback
185
198
  * @returns
186
199
  */
187
- _loadNoAtlasSpines(noAtlasSpines, callback) {
200
+ _loadNoAtlasSpines(noAtlasSpines, callback, errorCallback, reloadOnError) {
188
201
  if (!noAtlasSpines.length)
189
202
  return callback();
190
203
 
@@ -193,7 +206,7 @@ class ModulesAssetsService {
193
206
  for (let assetModel of noAtlasSpines)
194
207
  this._addAssetToLoader(assetModel, loader);
195
208
 
196
- loader.start(callback);
209
+ loader.start(callback, errorCallback, reloadOnError);
197
210
  }
198
211
 
199
212
  /**
@@ -417,22 +430,19 @@ class ModulesAssetsService {
417
430
  /**
418
431
  * start lazy load process
419
432
  */
420
- _startLazyLoad() {
433
+ _startLazyLoad(errorCallback, reloadOnError) {
421
434
  if (this.lazyLoadProcessStarted)
422
435
  return;
423
436
 
424
437
  this.lazyLoadProcessStarted = true;
425
- this._continueLazyLoad();
438
+ this._continueLazyLoad(errorCallback, reloadOnError);
426
439
  }
427
440
 
428
441
  /**
429
442
  * continue lazy load process (with current step)
430
443
  * @param {Number} step
431
444
  */
432
- _continueLazyLoad(step) {
433
- if (!step)
434
- step = 0;
435
-
445
+ _continueLazyLoad(errorCallback, reloadOnError, step = 0) {
436
446
  const lazyLoadGroups = this.getInstance('Config').lazyLoadGroups;
437
447
 
438
448
  if (step >= lazyLoadGroups.length) {
@@ -445,7 +455,9 @@ class ModulesAssetsService {
445
455
  if (!groupName)
446
456
  Urso.logger.error('ModulesAssetsService lazy loading groupName error');
447
457
 
448
- this.loadGroup(null, groupName, () => { this._continueLazyLoad(step + 1); })
458
+ const callback = () => { this._continueLazyLoad(errorCallback, reloadOnError, step + 1); }
459
+ const updateCallback = () => { };
460
+ this.loadGroup(null, groupName, callback, updateCallback, errorCallback, reloadOnError);
449
461
  }
450
462
 
451
463
  /**