@ives_xxz/framework 1.4.11 → 1.4.13
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/manager/FWLayerManager.ts +24 -21
- package/package-lock.json.meta +6 -0
- package/package.json +1 -1
|
@@ -85,9 +85,9 @@ class FWLayerDataManager {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
|
-
*
|
|
88
|
+
* 状态表注册
|
|
89
89
|
*/
|
|
90
|
-
|
|
90
|
+
addRegistry(type: new () => FW.LayerController): boolean {
|
|
91
91
|
if (this.layerRegistry.has(type)) {
|
|
92
92
|
return true;
|
|
93
93
|
}
|
|
@@ -144,7 +144,7 @@ class FWLayerDataManager {
|
|
|
144
144
|
/**
|
|
145
145
|
* 清理失败的Layer
|
|
146
146
|
*/
|
|
147
|
-
|
|
147
|
+
clearFailedLayer(layerData: FWLayerData): void {
|
|
148
148
|
this.layerMap.delete(layerData.controllerConstructor);
|
|
149
149
|
this.layerRegistry.delete(layerData.controllerConstructor);
|
|
150
150
|
}
|
|
@@ -259,7 +259,7 @@ class FWLayerOpenManager {
|
|
|
259
259
|
return this.getUndefinedResult(isAsync);
|
|
260
260
|
}
|
|
261
261
|
|
|
262
|
-
if (this.dataManager.
|
|
262
|
+
if (this.dataManager.addRegistry(data.type)) {
|
|
263
263
|
const proxy = this.dataManager.getExistingProxy(data.type);
|
|
264
264
|
return this.wrapResult(proxy, isAsync) as Ctr;
|
|
265
265
|
}
|
|
@@ -271,9 +271,9 @@ class FWLayerOpenManager {
|
|
|
271
271
|
this.dataManager.addLayerData(data.type, layerData);
|
|
272
272
|
|
|
273
273
|
if (isAsync) {
|
|
274
|
-
return this.
|
|
274
|
+
return this.asyncGenerationLayer(layerData, data);
|
|
275
275
|
} else {
|
|
276
|
-
return this.
|
|
276
|
+
return this.syncGenerationLayer(layerData, data) as Ctr;
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
|
|
@@ -303,43 +303,47 @@ class FWLayerOpenManager {
|
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
/**
|
|
306
|
-
*
|
|
306
|
+
* 异步生成Layer
|
|
307
307
|
*/
|
|
308
|
-
private async
|
|
308
|
+
private async asyncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
309
309
|
layerData: FWLayerData,
|
|
310
310
|
data: FW.LayerOpenArgs,
|
|
311
311
|
): Promise<Ctr> {
|
|
312
312
|
try {
|
|
313
313
|
const res = await this.resourceManager.loadLayerAsync(layerData);
|
|
314
|
-
|
|
314
|
+
const ctr = this.createLayer(layerData, res, data) as Ctr;
|
|
315
|
+
this.dataManager.removeFromRegistry(layerData.controllerConstructor);
|
|
316
|
+
return ctr;
|
|
315
317
|
} catch (e) {
|
|
316
|
-
FWLog.error(`
|
|
317
|
-
this.dataManager.
|
|
318
|
+
FWLog.error(`asyncGenerationLayer failed:`, e);
|
|
319
|
+
this.dataManager.clearFailedLayer(layerData);
|
|
318
320
|
throw e;
|
|
319
321
|
}
|
|
320
322
|
}
|
|
321
323
|
|
|
322
324
|
/**
|
|
323
|
-
*
|
|
325
|
+
* 同步创建Layer
|
|
324
326
|
*/
|
|
325
|
-
private
|
|
327
|
+
private syncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
326
328
|
layerData: FWLayerData,
|
|
327
329
|
data: FW.LayerOpenArgs,
|
|
328
330
|
): Ctr {
|
|
329
331
|
try {
|
|
330
332
|
const res = this.resourceManager.loadLayerSync(layerData);
|
|
331
|
-
|
|
333
|
+
const ctr = this.createLayer(layerData, res, data) as Ctr;
|
|
334
|
+
this.dataManager.removeFromRegistry(layerData.controllerConstructor);
|
|
335
|
+
return ctr;
|
|
332
336
|
} catch (e) {
|
|
333
|
-
FWLog.error(`
|
|
334
|
-
this.dataManager.
|
|
337
|
+
FWLog.error(`syncGenerationLayer failed:`, e);
|
|
338
|
+
this.dataManager.clearFailedLayer(layerData);
|
|
335
339
|
return undefined;
|
|
336
340
|
}
|
|
337
341
|
}
|
|
338
342
|
|
|
339
343
|
/**
|
|
340
|
-
* 创建Layer
|
|
344
|
+
* 创建Layer
|
|
341
345
|
*/
|
|
342
|
-
private
|
|
346
|
+
private createLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
343
347
|
layerData: FWLayerData,
|
|
344
348
|
res: { asset: cc.Prefab; uuid: string },
|
|
345
349
|
data: FW.LayerOpenArgs,
|
|
@@ -365,10 +369,9 @@ class FWLayerOpenManager {
|
|
|
365
369
|
|
|
366
370
|
this.dataManager.removeFromRegistry(layerData.controllerConstructor);
|
|
367
371
|
|
|
368
|
-
|
|
369
|
-
layerData.controllerProxy = proxy;
|
|
372
|
+
layerData.controllerProxy = this.dataManager.createControllerProxy(layerData);
|
|
370
373
|
|
|
371
|
-
return
|
|
374
|
+
return layerData.controllerProxy as Ctr;
|
|
372
375
|
}
|
|
373
376
|
}
|
|
374
377
|
|