@ives_xxz/framework 1.5.8 → 1.5.10
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 +22 -22
- package/manager/FWPromiseManager.ts +1 -0
- package/package.json +1 -1
|
@@ -9,6 +9,8 @@ import FWLogic from "../logic/FWLogic";
|
|
|
9
9
|
import FWData from "../data/FWData";
|
|
10
10
|
import FWSocketSender from "../service/socket/FWSocketSender";
|
|
11
11
|
import FWSocketHandle from "../service/socket/FWSocketHandle";
|
|
12
|
+
import Framework from "../Framework";
|
|
13
|
+
import { FrameworkBase } from "../FrameworkBase";
|
|
12
14
|
|
|
13
15
|
const ADD_EXTERNAL_REFERENCE: string = "addExternalReference";
|
|
14
16
|
|
|
@@ -258,7 +260,8 @@ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
|
|
|
258
260
|
class FWLayerDataManager {
|
|
259
261
|
private layerMap: Map<new () => FW.LayerController, FWLayerData> = new Map();
|
|
260
262
|
private layerRegistry: Set<new () => FW.LayerController> = new Set();
|
|
261
|
-
|
|
263
|
+
private layerControllerFactory: FWLayerControllerFactory =
|
|
264
|
+
new FWLayerControllerFactory();
|
|
262
265
|
/**
|
|
263
266
|
* 获取已存在的Layer
|
|
264
267
|
*/
|
|
@@ -279,7 +282,7 @@ class FWLayerDataManager {
|
|
|
279
282
|
createLayerData<Ctr extends FW.LayerController = FW.LayerController>(
|
|
280
283
|
type: new () => Ctr
|
|
281
284
|
): FW.LayerData {
|
|
282
|
-
const ctr =
|
|
285
|
+
const ctr = this.layerControllerFactory.createController(type);
|
|
283
286
|
const ctrName = cc.js.getClassName(ctr);
|
|
284
287
|
const layerData = this.generationData(ctr);
|
|
285
288
|
|
|
@@ -303,12 +306,6 @@ class FWLayerDataManager {
|
|
|
303
306
|
const layerData = new FWLayerData();
|
|
304
307
|
const layerType = ctr.layerType;
|
|
305
308
|
|
|
306
|
-
ctr.config = FW.Entry.getComponent(FWAssetConfig);
|
|
307
|
-
ctr.logic = FW.Entry.getComponent(FWLogic);
|
|
308
|
-
ctr.data = FW.Entry.getComponent(FWData);
|
|
309
|
-
ctr.sender = FW.Entry.getComponent(FWSocketSender);
|
|
310
|
-
ctr.handle = FW.Entry.getComponent(FWSocketHandle);
|
|
311
|
-
|
|
312
309
|
layerData.layerRenderOrder = ctr.renderOrder;
|
|
313
310
|
layerData.layerAssetProperty = ctr.layerAssetProperty;
|
|
314
311
|
layerData.layerType = layerType;
|
|
@@ -561,20 +558,6 @@ class FWLayerOpenManager {
|
|
|
561
558
|
return true;
|
|
562
559
|
}
|
|
563
560
|
|
|
564
|
-
/**
|
|
565
|
-
* 获取undefined结果
|
|
566
|
-
*/
|
|
567
|
-
private getUndefinedResult<Ctr>(isAsync: boolean): Promise<Ctr> | Ctr {
|
|
568
|
-
return isAsync ? Promise.resolve(undefined) : undefined;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
/**
|
|
572
|
-
* 包装结果
|
|
573
|
-
*/
|
|
574
|
-
private wrapResult<Ctr>(result: Ctr, isAsync: boolean): Promise<Ctr> | Ctr {
|
|
575
|
-
return isAsync ? Promise.resolve(result) : result;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
561
|
/**
|
|
579
562
|
* 异步生成Layer
|
|
580
563
|
*/
|
|
@@ -843,3 +826,20 @@ class FWLayerLifecycleManager {
|
|
|
843
826
|
};
|
|
844
827
|
}
|
|
845
828
|
}
|
|
829
|
+
|
|
830
|
+
class FWLayerControllerFactory {
|
|
831
|
+
/**
|
|
832
|
+
* 创建并初始化 LayerController
|
|
833
|
+
*/
|
|
834
|
+
createController<Ctr extends FW.LayerController = FW.LayerController>(
|
|
835
|
+
type: new () => Ctr
|
|
836
|
+
): Ctr {
|
|
837
|
+
const ctr = new type();
|
|
838
|
+
|
|
839
|
+
if (ctr instanceof FrameworkBase) {
|
|
840
|
+
ctr.initializeDependencies?.();
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
return ctr;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
@@ -29,6 +29,7 @@ export default class FWPromiseManager
|
|
|
29
29
|
const retryInterval = options.retryInterval || 0;
|
|
30
30
|
let retryCount = 0;
|
|
31
31
|
let timerSchedule: FW.TimerSchedule;
|
|
32
|
+
|
|
32
33
|
const createPromise = (): Promise<T> => {
|
|
33
34
|
return new Promise<T>((resolve, reject) => {
|
|
34
35
|
if (options.timeout && options.timeout > 0) {
|