@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
package/src/js/lib/loader.js
CHANGED
|
@@ -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
|
-
|
|
206
|
-
|
|
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
|
|
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
|
-
|
|
142
|
-
|
|
142
|
+
loader.start(
|
|
143
|
+
() => {
|
|
144
|
+
if (atlasType === Urso.types.assets.ATLAS)
|
|
145
|
+
this._processLoadedAtlases(assetsSpace, group);
|
|
143
146
|
|
|
144
|
-
|
|
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(
|
|
174
|
-
|
|
175
|
-
|
|
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
|
-
|
|
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
|
/**
|