@urso/core 0.7.91 → 0.7.93-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.
- package/.babelrc +11 -11
- package/LICENSE +20 -20
- package/README.md +227 -227
- package/build/162.js/index.js +1 -0
- package/build/24.js/index.js +1 -0
- package/build/js/index.js +1 -1
- package/package.json +50 -50
- package/src/js/app.js +104 -104
- package/src/js/components/base/controller.js +78 -78
- package/src/js/components/debug/controller.js +38 -38
- package/src/js/components/debug/coords.js +23 -23
- package/src/js/components/debug/fps.js +36 -36
- package/src/js/components/debug/template.js +55 -55
- package/src/js/components/debug/timescale.js +60 -60
- package/src/js/components/deviceRotate/controller.js +95 -95
- package/src/js/components/editor/api.js +127 -127
- package/src/js/components/editor/controller.js +12 -12
- package/src/js/components/fullscreen/android.js +104 -104
- package/src/js/components/fullscreen/controller.js +76 -76
- package/src/js/components/fullscreen/desktop.js +49 -49
- package/src/js/components/fullscreen/ios.js +115 -115
- package/src/js/components/layersSwitcher/config.js +26 -26
- package/src/js/components/layersSwitcher/controller.js +36 -36
- package/src/js/components/loader/controller.js +66 -66
- package/src/js/components/loader/template.js +70 -70
- package/src/js/components/soundInitialPopup/controller.js +42 -42
- package/src/js/components/soundInitialPopup/template.js +109 -109
- package/src/js/components/stateDriven/controller.js +123 -123
- package/src/js/config/load.js +194 -194
- package/src/js/config/main.js +17 -17
- package/src/js/extra/browserEvents.js +57 -57
- package/src/js/extra/main.js +19 -19
- package/src/js/extra/pixiPatch.js +171 -171
- package/src/js/index.js +7 -7
- package/src/js/lib/cache.js +125 -125
- package/src/js/lib/composition.js +85 -85
- package/src/js/lib/device.js +1215 -1215
- package/src/js/lib/helper.js +678 -678
- package/src/js/lib/loader.js +211 -211
- package/src/js/lib/localData.js +28 -28
- package/src/js/lib/logger.js +69 -69
- package/src/js/lib/math.js +161 -161
- package/src/js/lib/objectPool.js +207 -207
- package/src/js/lib/time.js +18 -18
- package/src/js/lib/tween.js +152 -152
- package/src/js/modules/assets/baseModel.js +20 -20
- package/src/js/modules/assets/config.js +38 -38
- package/src/js/modules/assets/controller.js +65 -65
- package/src/js/modules/assets/models/atlas.js +18 -18
- package/src/js/modules/assets/models/audiosprite.js +28 -28
- package/src/js/modules/assets/models/bitmapFont.js +10 -10
- package/src/js/modules/assets/models/container.js +18 -18
- package/src/js/modules/assets/models/font.js +10 -10
- package/src/js/modules/assets/models/html.js +10 -10
- package/src/js/modules/assets/models/image.js +17 -17
- package/src/js/modules/assets/models/json.js +10 -10
- package/src/js/modules/assets/models/jsonAtlas.js +10 -10
- package/src/js/modules/assets/models/sound.js +16 -16
- package/src/js/modules/assets/models/spine.js +16 -16
- package/src/js/modules/assets/service.js +541 -541
- package/src/js/modules/i18n/config.js +17 -17
- package/src/js/modules/i18n/controller.js +71 -71
- package/src/js/modules/instances/controller.js +357 -357
- package/src/js/modules/logic/config/sounds.js +23 -23
- package/src/js/modules/logic/controller.js +52 -52
- package/src/js/modules/logic/main.js +8 -8
- package/src/js/modules/logic/sounds.js +103 -103
- package/src/js/modules/objects/baseModel.js +207 -207
- package/src/js/modules/objects/cache.js +99 -99
- package/src/js/modules/objects/config.js +9 -9
- package/src/js/modules/objects/controller.js +139 -139
- package/src/js/modules/objects/find.js +58 -58
- package/src/js/modules/objects/models/atlasImage.js +52 -52
- package/src/js/modules/objects/models/bitmapText.js +48 -48
- package/src/js/modules/objects/models/button.js +196 -196
- package/src/js/modules/objects/models/buttonComposite.js +37 -37
- package/src/js/modules/objects/models/checkbox.js +96 -96
- package/src/js/modules/objects/models/collection.js +54 -54
- package/src/js/modules/objects/models/component.js +48 -48
- package/src/js/modules/objects/models/container.js +21 -21
- package/src/js/modules/objects/models/dragContainer.js +664 -664
- package/src/js/modules/objects/models/emitter.js +69 -69
- package/src/js/modules/objects/models/emitterFx.js +114 -114
- package/src/js/modules/objects/models/graphics.js +40 -40
- package/src/js/modules/objects/models/group.js +21 -21
- package/src/js/modules/objects/models/hitArea.js +119 -119
- package/src/js/modules/objects/models/image.js +36 -36
- package/src/js/modules/objects/models/imagesAnimation.js +115 -115
- package/src/js/modules/objects/models/mask.js +40 -40
- package/src/js/modules/objects/models/nineSlicePlane.js +32 -32
- package/src/js/modules/objects/models/scrollbox.js +66 -66
- package/src/js/modules/objects/models/slider.js +352 -352
- package/src/js/modules/objects/models/spine.js +338 -338
- package/src/js/modules/objects/models/text.js +70 -70
- package/src/js/modules/objects/models/textInput.js +68 -68
- package/src/js/modules/objects/models/toggle.js +179 -179
- package/src/js/modules/objects/models/world.js +21 -21
- package/src/js/modules/objects/pool.js +68 -68
- package/src/js/modules/objects/propertyAdapter.js +588 -588
- package/src/js/modules/objects/proxy.js +298 -298
- package/src/js/modules/objects/selector.js +136 -136
- package/src/js/modules/objects/service.js +254 -254
- package/src/js/modules/objects/styles.js +210 -210
- package/src/js/modules/observer/controller.js +167 -167
- package/src/js/modules/observer/events.js +56 -56
- package/src/js/modules/scenes/controller.js +127 -127
- package/src/js/modules/scenes/model.js +28 -28
- package/src/js/modules/scenes/pixiWrapper.js +351 -351
- package/src/js/modules/scenes/resolutions.js +173 -173
- package/src/js/modules/scenes/resolutionsConfig.js +73 -73
- package/src/js/modules/scenes/service.js +146 -146
- package/src/js/modules/soundManager/controller.js +103 -103
- package/src/js/modules/soundManager/soundSprite.js +285 -285
- package/src/js/modules/statesManager/action.js +97 -97
- package/src/js/modules/statesManager/all.js +23 -23
- package/src/js/modules/statesManager/configStates.js +77 -77
- package/src/js/modules/statesManager/controller.js +218 -218
- package/src/js/modules/statesManager/functionsStorage.js +82 -82
- package/src/js/modules/statesManager/helper.js +27 -27
- package/src/js/modules/statesManager/race.js +91 -91
- package/src/js/modules/statesManager/sequence.js +48 -48
- package/src/js/modules/template/controller.js +28 -28
- package/src/js/modules/template/model.js +11 -11
- package/src/js/modules/template/service.js +137 -137
- package/src/js/modules/template/types.js +48 -48
- package/src/js/modules/transport/baseConnectionType.js +25 -25
- package/src/js/modules/transport/config.js +13 -13
- package/src/js/modules/transport/connectionTypes/websocket.js +76 -76
- package/src/js/modules/transport/connectionTypes/xhr.js +46 -46
- package/src/js/modules/transport/controller.js +48 -48
- package/src/js/modules/transport/decorator.js +17 -17
- package/src/js/modules/transport/service.js +150 -150
- package/webpack.config.js +47 -47
package/src/js/lib/loader.js
CHANGED
|
@@ -1,211 +1,211 @@
|
|
|
1
|
-
class LibLoader {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.RELOAD_DELAY = 250;
|
|
4
|
-
this._isRunning = false;
|
|
5
|
-
this._iterationNumber = 0;
|
|
6
|
-
this._assetsQuery = [];
|
|
7
|
-
this._onLoadUpdate = () => { };
|
|
8
|
-
this._loader = null;
|
|
9
|
-
this._completeCallback = () => { };
|
|
10
|
-
|
|
11
|
-
this._onError = this._onError.bind(this);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
isRunning() {
|
|
15
|
-
return this._isRunning;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* @param {Object} asset - {type: 1, key: "somekey", path: "somepath"}
|
|
21
|
-
*/
|
|
22
|
-
addAsset(asset) {
|
|
23
|
-
this._assetsQuery.push(asset);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* gets part of loading path
|
|
28
|
-
*/
|
|
29
|
-
_getLoadPath(asset) {
|
|
30
|
-
const { path } = asset;
|
|
31
|
-
|
|
32
|
-
if (path.indexOf('http') === 0) { //if absolute path - just return
|
|
33
|
-
return path;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (!Urso.config.useBinPath) {
|
|
37
|
-
return `${Urso.config.gamePath}assets/${path}`;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const quality = Urso.getInstance('Modules.Assets.Service').getQuality();
|
|
41
|
-
const splitted = path.split('/');
|
|
42
|
-
|
|
43
|
-
if (splitted[0] === 'images') {
|
|
44
|
-
splitted.splice(1, 0, quality);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return `${Urso.config.gamePath}/bin/${splitted.join('/')}`;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* store loaded asset in cache
|
|
52
|
-
*/
|
|
53
|
-
_storeAsset(asset, resource) {
|
|
54
|
-
if (resource.error) {
|
|
55
|
-
return Urso.logger.warn('LibLoader error: ', resource.error, asset);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
switch (asset.type) {
|
|
59
|
-
case Urso.types.assets.ATLAS:
|
|
60
|
-
Urso.cache.addAtlas(asset.key, resource);
|
|
61
|
-
break;
|
|
62
|
-
case Urso.types.assets.BITMAPFONT:
|
|
63
|
-
Urso.cache.addBitmapFont(asset.key, resource);
|
|
64
|
-
break;
|
|
65
|
-
case Urso.types.assets.CONTAINER:
|
|
66
|
-
Urso.cache.addContainer(asset.key, resource);
|
|
67
|
-
break;
|
|
68
|
-
case Urso.types.assets.FONT:
|
|
69
|
-
case Urso.types.assets.HTML:
|
|
70
|
-
Urso.cache.addFile(asset.key, resource);
|
|
71
|
-
break;
|
|
72
|
-
case Urso.types.assets.IMAGE:
|
|
73
|
-
Urso.cache.addImage(asset.key, resource);
|
|
74
|
-
break;
|
|
75
|
-
case Urso.types.assets.JSON:
|
|
76
|
-
Urso.cache.addJson(asset.key, resource);
|
|
77
|
-
break;
|
|
78
|
-
case Urso.types.assets.JSONATLAS:
|
|
79
|
-
Urso.cache.addJsonAtlas(asset.key, resource);
|
|
80
|
-
break;
|
|
81
|
-
case Urso.types.assets.SOUND:
|
|
82
|
-
Urso.cache.addSound(asset.key, resource);
|
|
83
|
-
break;
|
|
84
|
-
case Urso.types.assets.SPINE:
|
|
85
|
-
Urso.cache.addSpine(asset.key, resource);
|
|
86
|
-
break;
|
|
87
|
-
default:
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* setup onload callback
|
|
94
|
-
* @param {Function} onLoad
|
|
95
|
-
*/
|
|
96
|
-
setOnLoadUpdate(onLoadUpdate) {
|
|
97
|
-
if (onLoadUpdate)
|
|
98
|
-
this._onLoadUpdate = onLoadUpdate;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* start loading assets from assets query
|
|
103
|
-
* @param {Function} callback
|
|
104
|
-
*/
|
|
105
|
-
start(callback) {
|
|
106
|
-
if (this._isRunning)
|
|
107
|
-
return false;
|
|
108
|
-
|
|
109
|
-
this._isRunning = true;
|
|
110
|
-
this._lastLoadFailed = false;
|
|
111
|
-
this._iterationNumber++;
|
|
112
|
-
const currentIteration = this._iterationNumber;
|
|
113
|
-
this._completeCallback = callback;
|
|
114
|
-
this._loader = new PIXI.Loader();
|
|
115
|
-
const appVersion = Urso.config.appVersion;
|
|
116
|
-
|
|
117
|
-
if (appVersion) {
|
|
118
|
-
this._loader.defaultQueryString = `appVersion=${appVersion}`;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
this._assetsQuery.forEach(asset => {
|
|
122
|
-
// TODO: check to load
|
|
123
|
-
|
|
124
|
-
let params = asset.params || false; // TODO: Set params field in base mode
|
|
125
|
-
|
|
126
|
-
if (asset.type === Urso.types.assets.JSON || asset.type === Urso.types.assets.ATLAS) { // check json in JSONATLAS
|
|
127
|
-
const jsonData = this._getJsonDataFromJsonAtlases(asset.key);
|
|
128
|
-
|
|
129
|
-
if (jsonData) {
|
|
130
|
-
switch (asset.type) {
|
|
131
|
-
case Urso.types.assets.JSON:
|
|
132
|
-
Urso.cache.addJson(asset.key, { data: jsonData });
|
|
133
|
-
break;
|
|
134
|
-
case Urso.types.assets.ATLAS:
|
|
135
|
-
this._loader.add(asset.key, jsonData, params, (resource) => this._storeAsset(asset, resource));
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (asset.type === Urso.types.assets.SPINE && asset.noAtlas) { // check SPINE in JSONATLAS
|
|
144
|
-
if (!params)
|
|
145
|
-
params = {};
|
|
146
|
-
|
|
147
|
-
params.metadata = { spineAtlas: Urso.cache.getGlobalAtlas() };
|
|
148
|
-
|
|
149
|
-
//check for json in JSONATLAS
|
|
150
|
-
const jsonData = this._getJsonDataFromJsonAtlases(asset.key);
|
|
151
|
-
|
|
152
|
-
if (jsonData) {
|
|
153
|
-
this._loadSpineFromExistingResourses(asset, jsonData, params);
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
const loadPath = this._getLoadPath(asset);
|
|
159
|
-
this._loader.add(asset.key, loadPath, params, (resource) => this._storeAsset(asset, resource)); //TODO set assets resolution instead _processLoadedImage baseTexture resolution
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
this._onLoadUpdate({ progress: 0 });
|
|
163
|
-
this._loader.onProgress.add(this._onLoadUpdate);
|
|
164
|
-
this._loader.onError.add(this._onError);
|
|
165
|
-
|
|
166
|
-
this._loader.load(function (loader, resources) {
|
|
167
|
-
if (currentIteration !== this._iterationNumber || this._lastLoadFailed)
|
|
168
|
-
return;
|
|
169
|
-
|
|
170
|
-
this._onLoadUpdate({ progress: 100 });
|
|
171
|
-
this._assetsQuery = [];
|
|
172
|
-
this._isRunning = false;
|
|
173
|
-
callback();
|
|
174
|
-
}.bind(this));
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
_getJsonDataFromJsonAtlases(key) {
|
|
178
|
-
const jsonAtlases = Urso.cache.getJsonAtlases();
|
|
179
|
-
|
|
180
|
-
for (let jsonAtlasKey in jsonAtlases) {
|
|
181
|
-
if (jsonAtlases[jsonAtlasKey].data.hasOwnProperty(key)) {
|
|
182
|
-
return jsonAtlases[jsonAtlasKey].data[key];
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
return null;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
_loadSpineFromExistingResourses(asset, jsonData, params) {
|
|
190
|
-
//params.metadata.spineAtlas
|
|
191
|
-
|
|
192
|
-
const spineAtlasLoader = new PIXI.spine.AtlasAttachmentLoader(params.metadata.spineAtlas);
|
|
193
|
-
const spineJsonParser = new PIXI.spine.SkeletonJson(spineAtlasLoader);
|
|
194
|
-
const spineData = spineJsonParser.readSkeletonData(jsonData);
|
|
195
|
-
Urso.cache.addSpine(asset.key, { spineData });
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
_onError(error) {
|
|
199
|
-
Urso.logger.warn('LibLoader file load error: ', error);
|
|
200
|
-
|
|
201
|
-
this._loader.reset();
|
|
202
|
-
this._isRunning = false;
|
|
203
|
-
this._lastLoadFailed = true;
|
|
204
|
-
|
|
205
|
-
Urso.logger.warn('LibLoader all assets RELOAD...');
|
|
206
|
-
this._resizeTimeoutId = Urso.setTimeout(() => this.start(this._completeCallback), this.RELOAD_DELAY);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
module.exports = LibLoader;
|
|
1
|
+
class LibLoader {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.RELOAD_DELAY = 250;
|
|
4
|
+
this._isRunning = false;
|
|
5
|
+
this._iterationNumber = 0;
|
|
6
|
+
this._assetsQuery = [];
|
|
7
|
+
this._onLoadUpdate = () => { };
|
|
8
|
+
this._loader = null;
|
|
9
|
+
this._completeCallback = () => { };
|
|
10
|
+
|
|
11
|
+
this._onError = this._onError.bind(this);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
isRunning() {
|
|
15
|
+
return this._isRunning;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} asset - {type: 1, key: "somekey", path: "somepath"}
|
|
21
|
+
*/
|
|
22
|
+
addAsset(asset) {
|
|
23
|
+
this._assetsQuery.push(asset);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* gets part of loading path
|
|
28
|
+
*/
|
|
29
|
+
_getLoadPath(asset) {
|
|
30
|
+
const { path } = asset;
|
|
31
|
+
|
|
32
|
+
if (path.indexOf('http') === 0) { //if absolute path - just return
|
|
33
|
+
return path;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!Urso.config.useBinPath) {
|
|
37
|
+
return `${Urso.config.gamePath}assets/${path}`;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const quality = Urso.getInstance('Modules.Assets.Service').getQuality();
|
|
41
|
+
const splitted = path.split('/');
|
|
42
|
+
|
|
43
|
+
if (splitted[0] === 'images') {
|
|
44
|
+
splitted.splice(1, 0, quality);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return `${Urso.config.gamePath}/bin/${splitted.join('/')}`;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* store loaded asset in cache
|
|
52
|
+
*/
|
|
53
|
+
_storeAsset(asset, resource) {
|
|
54
|
+
if (resource.error) {
|
|
55
|
+
return Urso.logger.warn('LibLoader error: ', resource.error, asset);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
switch (asset.type) {
|
|
59
|
+
case Urso.types.assets.ATLAS:
|
|
60
|
+
Urso.cache.addAtlas(asset.key, resource);
|
|
61
|
+
break;
|
|
62
|
+
case Urso.types.assets.BITMAPFONT:
|
|
63
|
+
Urso.cache.addBitmapFont(asset.key, resource);
|
|
64
|
+
break;
|
|
65
|
+
case Urso.types.assets.CONTAINER:
|
|
66
|
+
Urso.cache.addContainer(asset.key, resource);
|
|
67
|
+
break;
|
|
68
|
+
case Urso.types.assets.FONT:
|
|
69
|
+
case Urso.types.assets.HTML:
|
|
70
|
+
Urso.cache.addFile(asset.key, resource);
|
|
71
|
+
break;
|
|
72
|
+
case Urso.types.assets.IMAGE:
|
|
73
|
+
Urso.cache.addImage(asset.key, resource);
|
|
74
|
+
break;
|
|
75
|
+
case Urso.types.assets.JSON:
|
|
76
|
+
Urso.cache.addJson(asset.key, resource);
|
|
77
|
+
break;
|
|
78
|
+
case Urso.types.assets.JSONATLAS:
|
|
79
|
+
Urso.cache.addJsonAtlas(asset.key, resource);
|
|
80
|
+
break;
|
|
81
|
+
case Urso.types.assets.SOUND:
|
|
82
|
+
Urso.cache.addSound(asset.key, resource);
|
|
83
|
+
break;
|
|
84
|
+
case Urso.types.assets.SPINE:
|
|
85
|
+
Urso.cache.addSpine(asset.key, resource);
|
|
86
|
+
break;
|
|
87
|
+
default:
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* setup onload callback
|
|
94
|
+
* @param {Function} onLoad
|
|
95
|
+
*/
|
|
96
|
+
setOnLoadUpdate(onLoadUpdate) {
|
|
97
|
+
if (onLoadUpdate)
|
|
98
|
+
this._onLoadUpdate = onLoadUpdate;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* start loading assets from assets query
|
|
103
|
+
* @param {Function} callback
|
|
104
|
+
*/
|
|
105
|
+
start(callback) {
|
|
106
|
+
if (this._isRunning)
|
|
107
|
+
return false;
|
|
108
|
+
|
|
109
|
+
this._isRunning = true;
|
|
110
|
+
this._lastLoadFailed = false;
|
|
111
|
+
this._iterationNumber++;
|
|
112
|
+
const currentIteration = this._iterationNumber;
|
|
113
|
+
this._completeCallback = callback;
|
|
114
|
+
this._loader = new PIXI.Loader();
|
|
115
|
+
const appVersion = Urso.config.appVersion;
|
|
116
|
+
|
|
117
|
+
if (appVersion) {
|
|
118
|
+
this._loader.defaultQueryString = `appVersion=${appVersion}`;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
this._assetsQuery.forEach(asset => {
|
|
122
|
+
// TODO: check to load
|
|
123
|
+
|
|
124
|
+
let params = asset.params || false; // TODO: Set params field in base mode
|
|
125
|
+
|
|
126
|
+
if (asset.type === Urso.types.assets.JSON || asset.type === Urso.types.assets.ATLAS) { // check json in JSONATLAS
|
|
127
|
+
const jsonData = this._getJsonDataFromJsonAtlases(asset.key);
|
|
128
|
+
|
|
129
|
+
if (jsonData) {
|
|
130
|
+
switch (asset.type) {
|
|
131
|
+
case Urso.types.assets.JSON:
|
|
132
|
+
Urso.cache.addJson(asset.key, { data: jsonData });
|
|
133
|
+
break;
|
|
134
|
+
case Urso.types.assets.ATLAS:
|
|
135
|
+
this._loader.add(asset.key, jsonData, params, (resource) => this._storeAsset(asset, resource));
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (asset.type === Urso.types.assets.SPINE && asset.noAtlas) { // check SPINE in JSONATLAS
|
|
144
|
+
if (!params)
|
|
145
|
+
params = {};
|
|
146
|
+
|
|
147
|
+
params.metadata = { spineAtlas: Urso.cache.getGlobalAtlas() };
|
|
148
|
+
|
|
149
|
+
//check for json in JSONATLAS
|
|
150
|
+
const jsonData = this._getJsonDataFromJsonAtlases(asset.key);
|
|
151
|
+
|
|
152
|
+
if (jsonData) {
|
|
153
|
+
this._loadSpineFromExistingResourses(asset, jsonData, params);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const loadPath = this._getLoadPath(asset);
|
|
159
|
+
this._loader.add(asset.key, loadPath, params, (resource) => this._storeAsset(asset, resource)); //TODO set assets resolution instead _processLoadedImage baseTexture resolution
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
this._onLoadUpdate({ progress: 0 });
|
|
163
|
+
this._loader.onProgress.add(this._onLoadUpdate);
|
|
164
|
+
this._loader.onError.add(this._onError);
|
|
165
|
+
|
|
166
|
+
this._loader.load(function (loader, resources) {
|
|
167
|
+
if (currentIteration !== this._iterationNumber || this._lastLoadFailed)
|
|
168
|
+
return;
|
|
169
|
+
|
|
170
|
+
this._onLoadUpdate({ progress: 100 });
|
|
171
|
+
this._assetsQuery = [];
|
|
172
|
+
this._isRunning = false;
|
|
173
|
+
callback();
|
|
174
|
+
}.bind(this));
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
_getJsonDataFromJsonAtlases(key) {
|
|
178
|
+
const jsonAtlases = Urso.cache.getJsonAtlases();
|
|
179
|
+
|
|
180
|
+
for (let jsonAtlasKey in jsonAtlases) {
|
|
181
|
+
if (jsonAtlases[jsonAtlasKey].data.hasOwnProperty(key)) {
|
|
182
|
+
return jsonAtlases[jsonAtlasKey].data[key];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
_loadSpineFromExistingResourses(asset, jsonData, params) {
|
|
190
|
+
//params.metadata.spineAtlas
|
|
191
|
+
|
|
192
|
+
const spineAtlasLoader = new PIXI.spine.AtlasAttachmentLoader(params.metadata.spineAtlas);
|
|
193
|
+
const spineJsonParser = new PIXI.spine.SkeletonJson(spineAtlasLoader);
|
|
194
|
+
const spineData = spineJsonParser.readSkeletonData(jsonData);
|
|
195
|
+
Urso.cache.addSpine(asset.key, { spineData });
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
_onError(error) {
|
|
199
|
+
Urso.logger.warn('LibLoader file load error: ', error);
|
|
200
|
+
|
|
201
|
+
this._loader.reset();
|
|
202
|
+
this._isRunning = false;
|
|
203
|
+
this._lastLoadFailed = true;
|
|
204
|
+
|
|
205
|
+
Urso.logger.warn('LibLoader all assets RELOAD...');
|
|
206
|
+
this._resizeTimeoutId = Urso.setTimeout(() => this.start(this._completeCallback), this.RELOAD_DELAY);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
module.exports = LibLoader;
|
package/src/js/lib/localData.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
class LibLocalData {
|
|
2
|
-
constructor() {
|
|
3
|
-
this._data = {};
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* recursive get value from local data
|
|
8
|
-
* (*) you can use '.' as objects keys splitter
|
|
9
|
-
* @param {String} key
|
|
10
|
-
* @returns {Mixed}
|
|
11
|
-
*/
|
|
12
|
-
get(name) {
|
|
13
|
-
return Urso.helper.recursiveGet(name, this._data);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* recursive set value to local data
|
|
18
|
-
* (*) you can use '.' as objects keys splitter
|
|
19
|
-
* @param {String} key
|
|
20
|
-
* @param {Mixed} value
|
|
21
|
-
* @returns {Boolean}
|
|
22
|
-
*/
|
|
23
|
-
set(key, value) {
|
|
24
|
-
Urso.helper.recursiveSet(key, value, this._data);
|
|
25
|
-
return true;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
|
|
1
|
+
class LibLocalData {
|
|
2
|
+
constructor() {
|
|
3
|
+
this._data = {};
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* recursive get value from local data
|
|
8
|
+
* (*) you can use '.' as objects keys splitter
|
|
9
|
+
* @param {String} key
|
|
10
|
+
* @returns {Mixed}
|
|
11
|
+
*/
|
|
12
|
+
get(name) {
|
|
13
|
+
return Urso.helper.recursiveGet(name, this._data);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* recursive set value to local data
|
|
18
|
+
* (*) you can use '.' as objects keys splitter
|
|
19
|
+
* @param {String} key
|
|
20
|
+
* @param {Mixed} value
|
|
21
|
+
* @returns {Boolean}
|
|
22
|
+
*/
|
|
23
|
+
set(key, value) {
|
|
24
|
+
Urso.helper.recursiveSet(key, value, this._data);
|
|
25
|
+
return true;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
29
|
module.exports = LibLocalData;
|
package/src/js/lib/logger.js
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
//setup custom log level with: ?logLevel=1,2,3,4 OR ?logLevel=ERROR,WARNING,INFO,LOG
|
|
2
|
-
|
|
3
|
-
const LEVELS = [
|
|
4
|
-
'ERROR',
|
|
5
|
-
'WARNING',
|
|
6
|
-
'INFO',
|
|
7
|
-
'LOG'
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
class LibLogger {
|
|
11
|
-
constructor() {
|
|
12
|
-
this._logLevel = {};
|
|
13
|
-
this._setupLevels();
|
|
14
|
-
|
|
15
|
-
//log
|
|
16
|
-
if (this._logLevel['LOG']) {
|
|
17
|
-
window.log = console.log.bind(console);
|
|
18
|
-
} else {
|
|
19
|
-
window.log = console.log = () => { }
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//todo set log level (dev/prod)
|
|
24
|
-
|
|
25
|
-
log() {
|
|
26
|
-
if (!this._logLevel['LOG']) return;
|
|
27
|
-
|
|
28
|
-
console.log.apply(console, arguments);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
info() {
|
|
32
|
-
if (!this._logLevel['INFO']) return;
|
|
33
|
-
|
|
34
|
-
console.info.apply(this, arguments);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
warn() {
|
|
38
|
-
if (!this._logLevel['WARNING']) return;
|
|
39
|
-
|
|
40
|
-
console.warn.apply(this, arguments);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
error() {
|
|
44
|
-
if (!this._logLevel['ERROR']) return;
|
|
45
|
-
|
|
46
|
-
console.error.apply(this, arguments);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* setup logging levels
|
|
51
|
-
*/
|
|
52
|
-
_setupLevels() {
|
|
53
|
-
const logLevelsString = Urso.helper.parseGetParams('logLevel') || Urso.config.defaultLogLevel;
|
|
54
|
-
const logLevelsArray = logLevelsString.split(',');
|
|
55
|
-
|
|
56
|
-
for (const [index, level] of Object.entries(LEVELS)) {
|
|
57
|
-
let levelValue = false;
|
|
58
|
-
|
|
59
|
-
if (logLevelsArray.includes(index) || logLevelsArray.includes(level))
|
|
60
|
-
levelValue = true;
|
|
61
|
-
|
|
62
|
-
this._logLevel[level] = levelValue;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
console.log(`LibLogger log Level: ${JSON.stringify(this._logLevel)}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
module.exports = LibLogger;
|
|
1
|
+
//setup custom log level with: ?logLevel=1,2,3,4 OR ?logLevel=ERROR,WARNING,INFO,LOG
|
|
2
|
+
|
|
3
|
+
const LEVELS = [
|
|
4
|
+
'ERROR',
|
|
5
|
+
'WARNING',
|
|
6
|
+
'INFO',
|
|
7
|
+
'LOG'
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
class LibLogger {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._logLevel = {};
|
|
13
|
+
this._setupLevels();
|
|
14
|
+
|
|
15
|
+
//log
|
|
16
|
+
if (this._logLevel['LOG']) {
|
|
17
|
+
window.log = console.log.bind(console);
|
|
18
|
+
} else {
|
|
19
|
+
window.log = console.log = () => { }
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//todo set log level (dev/prod)
|
|
24
|
+
|
|
25
|
+
log() {
|
|
26
|
+
if (!this._logLevel['LOG']) return;
|
|
27
|
+
|
|
28
|
+
console.log.apply(console, arguments);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
info() {
|
|
32
|
+
if (!this._logLevel['INFO']) return;
|
|
33
|
+
|
|
34
|
+
console.info.apply(this, arguments);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
warn() {
|
|
38
|
+
if (!this._logLevel['WARNING']) return;
|
|
39
|
+
|
|
40
|
+
console.warn.apply(this, arguments);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
error() {
|
|
44
|
+
if (!this._logLevel['ERROR']) return;
|
|
45
|
+
|
|
46
|
+
console.error.apply(this, arguments);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* setup logging levels
|
|
51
|
+
*/
|
|
52
|
+
_setupLevels() {
|
|
53
|
+
const logLevelsString = Urso.helper.parseGetParams('logLevel') || Urso.config.defaultLogLevel;
|
|
54
|
+
const logLevelsArray = logLevelsString.split(',');
|
|
55
|
+
|
|
56
|
+
for (const [index, level] of Object.entries(LEVELS)) {
|
|
57
|
+
let levelValue = false;
|
|
58
|
+
|
|
59
|
+
if (logLevelsArray.includes(index) || logLevelsArray.includes(level))
|
|
60
|
+
levelValue = true;
|
|
61
|
+
|
|
62
|
+
this._logLevel[level] = levelValue;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
console.log(`LibLogger log Level: ${JSON.stringify(this._logLevel)}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
module.exports = LibLogger;
|