@ives_xxz/framework 2.3.14 → 2.3.16
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/FWAssetManager.ts +3 -1
- package/manager/FWLayerManager.ts +60 -107
- package/package.json +1 -1
|
@@ -58,7 +58,9 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const fileName = FW.Entry.utils.getFileName(img);
|
|
61
|
-
const texture: cc.Texture2D = await this.loadRemote(img
|
|
61
|
+
const texture: cc.Texture2D = await this.loadRemote(img, {
|
|
62
|
+
ext: '.png',
|
|
63
|
+
});
|
|
62
64
|
var asset = new sp.SkeletonData();
|
|
63
65
|
asset.atlasText = assets[0];
|
|
64
66
|
asset.skeletonJson = assets[1];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FWManager } from
|
|
2
|
-
import { FWQueue } from
|
|
3
|
-
import { FrameworkBase } from
|
|
4
|
-
import { PerformanceMonitor } from
|
|
1
|
+
import { FWManager } from './FWManager';
|
|
2
|
+
import { FWQueue } from '../utils/FWQueue';
|
|
3
|
+
import { FrameworkBase } from '../FrameworkBase';
|
|
4
|
+
import { PerformanceMonitor } from '../expand/FWDecorator';
|
|
5
5
|
|
|
6
|
-
const ADD_EXTERNAL_REFERENCE: string =
|
|
6
|
+
const ADD_EXTERNAL_REFERENCE: string = 'addExternalReference';
|
|
7
7
|
|
|
8
8
|
export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
9
9
|
private resourceManager: FWLayerResourceManager;
|
|
@@ -43,7 +43,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
43
43
|
/**
|
|
44
44
|
* 异步打开Layer
|
|
45
45
|
*/
|
|
46
|
-
@PerformanceMonitor(
|
|
46
|
+
@PerformanceMonitor('openAsync')
|
|
47
47
|
async openAsync<Ctr extends FW.LayerController = FW.LayerController>(
|
|
48
48
|
data: FW.LayerOpenArgs,
|
|
49
49
|
): Promise<Ctr> {
|
|
@@ -56,9 +56,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
56
56
|
/**
|
|
57
57
|
* 同步打开
|
|
58
58
|
*/
|
|
59
|
-
openSync<Ctr extends FW.LayerController = FW.LayerController>(
|
|
60
|
-
data: FW.LayerOpenArgs,
|
|
61
|
-
): Ctr {
|
|
59
|
+
openSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
|
|
62
60
|
if (this.debug) {
|
|
63
61
|
FW.Log.error(`同步打开Layer ->`, cc.js.getClassName(data.type));
|
|
64
62
|
}
|
|
@@ -68,14 +66,10 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
68
66
|
/**
|
|
69
67
|
* 显示layer并恢复所有节点事件
|
|
70
68
|
*/
|
|
71
|
-
displayLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
72
|
-
ctr: Ctr,
|
|
73
|
-
): Ctr {
|
|
69
|
+
displayLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
|
|
74
70
|
const layerData = ctr.layerData;
|
|
75
71
|
|
|
76
|
-
if (
|
|
77
|
-
!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
|
|
78
|
-
) {
|
|
72
|
+
if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
|
|
79
73
|
FW.Log.warn(`display layer failed,layer name : ${layerData.layerName}`);
|
|
80
74
|
return;
|
|
81
75
|
}
|
|
@@ -95,13 +89,9 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
95
89
|
/**
|
|
96
90
|
* 隐藏layer并隐藏所有节点事件
|
|
97
91
|
*/
|
|
98
|
-
hideLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
99
|
-
ctr: Ctr,
|
|
100
|
-
): Ctr {
|
|
92
|
+
hideLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
|
|
101
93
|
const layerData = ctr.layerData;
|
|
102
|
-
if (
|
|
103
|
-
!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
|
|
104
|
-
) {
|
|
94
|
+
if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
|
|
105
95
|
FW.Log.warn(`hide layer failed,layer name : ${layerData.layerName}`);
|
|
106
96
|
return;
|
|
107
97
|
}
|
|
@@ -145,9 +135,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
145
135
|
for (let i = 0; i < count; i++) {
|
|
146
136
|
let layerData = this.stackManager.pop();
|
|
147
137
|
let ctr = layerData.controller;
|
|
148
|
-
if (
|
|
149
|
-
!this.dataManager.getLayerMap().has(layerData.controllerConstructor)
|
|
150
|
-
) {
|
|
138
|
+
if (!this.dataManager.getLayerMap().has(layerData.controllerConstructor)) {
|
|
151
139
|
return;
|
|
152
140
|
}
|
|
153
141
|
if (cc.isValid(ctr.layer?.node)) {
|
|
@@ -178,18 +166,14 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
|
|
|
178
166
|
/**
|
|
179
167
|
* 关闭layer
|
|
180
168
|
*/
|
|
181
|
-
async close<Ctr extends FW.LayerController = FW.LayerController>(
|
|
182
|
-
ctr: Ctr,
|
|
183
|
-
): Promise<Ctr> {
|
|
169
|
+
async close<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Promise<Ctr> {
|
|
184
170
|
if (!ctr) return;
|
|
185
171
|
|
|
186
172
|
return FW.Entry.promiseMgr.execute(async (resolve, reject) => {
|
|
187
173
|
let layerData = ctr.layerData;
|
|
188
174
|
|
|
189
175
|
if (this.debug) {
|
|
190
|
-
FW.Log.error(
|
|
191
|
-
`${cc.js.getClassName(layerData?.controllerConstructor)} ->关闭Layer`,
|
|
192
|
-
);
|
|
176
|
+
FW.Log.error(`${cc.js.getClassName(layerData?.controllerConstructor)} ->关闭Layer`);
|
|
193
177
|
}
|
|
194
178
|
|
|
195
179
|
if (cc.isValid(ctr.layer?.node)) {
|
|
@@ -289,8 +273,7 @@ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
|
|
|
289
273
|
class FWLayerDataManager {
|
|
290
274
|
private layerMap: Map<new () => FW.LayerController, FWLayerData> = new Map();
|
|
291
275
|
private layerRegistry: Set<new () => FW.LayerController> = new Set();
|
|
292
|
-
private layerControllerFactory: FWLayerControllerFactory =
|
|
293
|
-
new FWLayerControllerFactory();
|
|
276
|
+
private layerControllerFactory: FWLayerControllerFactory = new FWLayerControllerFactory();
|
|
294
277
|
/**
|
|
295
278
|
* 获取已存在的Layer
|
|
296
279
|
*/
|
|
@@ -418,7 +401,7 @@ class FWLayerDataManager {
|
|
|
418
401
|
try {
|
|
419
402
|
cb?.(null);
|
|
420
403
|
} catch (e) {
|
|
421
|
-
FW.Log.error(
|
|
404
|
+
FW.Log.error('External ref update callback error:', e);
|
|
422
405
|
}
|
|
423
406
|
});
|
|
424
407
|
layerData.externalReference.clear();
|
|
@@ -443,8 +426,7 @@ class FWLayerDataManager {
|
|
|
443
426
|
}
|
|
444
427
|
|
|
445
428
|
class FWLayerCreateManager {
|
|
446
|
-
private lifecycleManager: FWLayerLifecycleManager =
|
|
447
|
-
new FWLayerLifecycleManager();
|
|
429
|
+
private lifecycleManager: FWLayerLifecycleManager = new FWLayerLifecycleManager();
|
|
448
430
|
|
|
449
431
|
/**
|
|
450
432
|
* 创建Layer节点
|
|
@@ -526,12 +508,7 @@ class FWLayerOpenManager {
|
|
|
526
508
|
return proxy as Ctr;
|
|
527
509
|
}
|
|
528
510
|
|
|
529
|
-
if (
|
|
530
|
-
this.queueManager.handlePopupQueue(
|
|
531
|
-
layerData,
|
|
532
|
-
this.dataManager.getLayerMap(),
|
|
533
|
-
)
|
|
534
|
-
) {
|
|
511
|
+
if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
|
|
535
512
|
return undefined;
|
|
536
513
|
}
|
|
537
514
|
|
|
@@ -540,9 +517,7 @@ class FWLayerOpenManager {
|
|
|
540
517
|
return this.asyncGenerationLayer(layerData, data);
|
|
541
518
|
}
|
|
542
519
|
|
|
543
|
-
openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(
|
|
544
|
-
data: FW.LayerOpenArgs,
|
|
545
|
-
): Ctr {
|
|
520
|
+
openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
|
|
546
521
|
if (!this.validateOpenData(data)) {
|
|
547
522
|
return undefined;
|
|
548
523
|
}
|
|
@@ -563,12 +538,7 @@ class FWLayerOpenManager {
|
|
|
563
538
|
return proxy as Ctr;
|
|
564
539
|
}
|
|
565
540
|
|
|
566
|
-
if (
|
|
567
|
-
this.queueManager.handlePopupQueue(
|
|
568
|
-
layerData,
|
|
569
|
-
this.dataManager.getLayerMap(),
|
|
570
|
-
)
|
|
571
|
-
) {
|
|
541
|
+
if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
|
|
572
542
|
return undefined;
|
|
573
543
|
}
|
|
574
544
|
|
|
@@ -591,9 +561,10 @@ class FWLayerOpenManager {
|
|
|
591
561
|
/**
|
|
592
562
|
* 异步生成Layer
|
|
593
563
|
*/
|
|
594
|
-
private async asyncGenerationLayer<
|
|
595
|
-
|
|
596
|
-
|
|
564
|
+
private async asyncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
565
|
+
layerData: FWLayerData,
|
|
566
|
+
data: FW.LayerOpenArgs,
|
|
567
|
+
): Promise<Ctr> {
|
|
597
568
|
try {
|
|
598
569
|
this.stateManager.setState(
|
|
599
570
|
layerData.controllerConstructor,
|
|
@@ -626,9 +597,10 @@ class FWLayerOpenManager {
|
|
|
626
597
|
/**
|
|
627
598
|
* 同步创建Layer
|
|
628
599
|
*/
|
|
629
|
-
private syncGenerationLayer<
|
|
630
|
-
|
|
631
|
-
|
|
600
|
+
private syncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
|
|
601
|
+
layerData: FWLayerData,
|
|
602
|
+
data: FW.LayerOpenArgs,
|
|
603
|
+
): Ctr {
|
|
632
604
|
try {
|
|
633
605
|
this.stateManager.setState(
|
|
634
606
|
layerData.controllerConstructor,
|
|
@@ -666,6 +638,12 @@ class FWLayerOpenManager {
|
|
|
666
638
|
data.parent,
|
|
667
639
|
data.position,
|
|
668
640
|
);
|
|
641
|
+
|
|
642
|
+
if (!layer) {
|
|
643
|
+
this.dataManager.removeFromRegistry(layerData.controllerConstructor);
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
|
|
669
647
|
const layerName = cc.js.getClassName(layer);
|
|
670
648
|
|
|
671
649
|
this.dataManager.setupLayerData(layerData, res, layer, layerName);
|
|
@@ -674,29 +652,22 @@ class FWLayerOpenManager {
|
|
|
674
652
|
|
|
675
653
|
this.createManager.setupLayerLifecycle(layer, layerData.controller);
|
|
676
654
|
|
|
677
|
-
if (
|
|
678
|
-
layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
|
|
679
|
-
) {
|
|
655
|
+
if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
|
|
680
656
|
this.stackManager.push(layerData);
|
|
681
657
|
}
|
|
682
658
|
|
|
683
659
|
this.dataManager.removeFromRegistry(layerData.controllerConstructor);
|
|
684
660
|
|
|
685
|
-
layerData.controllerProxy =
|
|
686
|
-
this.dataManager.createControllerProxy(layerData);
|
|
661
|
+
layerData.controllerProxy = this.dataManager.createControllerProxy(layerData);
|
|
687
662
|
|
|
688
663
|
return layerData.controllerProxy as Ctr;
|
|
689
664
|
}
|
|
690
665
|
}
|
|
691
666
|
|
|
692
667
|
class FWLayerResourceManager {
|
|
693
|
-
async loadLayerAsync(
|
|
694
|
-
layerData: FWLayerData,
|
|
695
|
-
): Promise<{ asset: cc.Prefab; uuid: string }> {
|
|
668
|
+
async loadLayerAsync(layerData: FWLayerData): Promise<{ asset: cc.Prefab; uuid: string }> {
|
|
696
669
|
try {
|
|
697
|
-
const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(
|
|
698
|
-
layerData.layerAssetProperty,
|
|
699
|
-
);
|
|
670
|
+
const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(layerData.layerAssetProperty);
|
|
700
671
|
if (!res) return undefined;
|
|
701
672
|
res.user = layerData.layerName;
|
|
702
673
|
res.autoRelease = layerData.controller.autoRelease;
|
|
@@ -711,9 +682,7 @@ class FWLayerResourceManager {
|
|
|
711
682
|
loadLayerSync(layerData: FWLayerData): { asset: cc.Prefab; uuid: string } {
|
|
712
683
|
layerData.layerAssetProperty.bundle =
|
|
713
684
|
layerData.layerAssetProperty.bundle || FW.Entry.bundleName;
|
|
714
|
-
const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(
|
|
715
|
-
layerData.layerAssetProperty,
|
|
716
|
-
);
|
|
685
|
+
const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(layerData.layerAssetProperty);
|
|
717
686
|
res.user = layerData.layerName;
|
|
718
687
|
res.autoRelease = layerData.controller.autoRelease;
|
|
719
688
|
res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
|
|
@@ -725,9 +694,7 @@ class FWLayerStackManager {
|
|
|
725
694
|
private layerStack: FWLayerData[] = [];
|
|
726
695
|
|
|
727
696
|
push(layerData: FWLayerData): void {
|
|
728
|
-
if (
|
|
729
|
-
layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
|
|
730
|
-
) {
|
|
697
|
+
if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
|
|
731
698
|
this.layerStack.push(layerData);
|
|
732
699
|
}
|
|
733
700
|
}
|
|
@@ -737,9 +704,7 @@ class FWLayerStackManager {
|
|
|
737
704
|
}
|
|
738
705
|
|
|
739
706
|
remove(layerData: FWLayerData): void {
|
|
740
|
-
const index = this.layerStack.findIndex(
|
|
741
|
-
(v) => v.controller === layerData.controller,
|
|
742
|
-
);
|
|
707
|
+
const index = this.layerStack.findIndex((v) => v.controller === layerData.controller);
|
|
743
708
|
if (index > -1) {
|
|
744
709
|
this.layerStack.splice(index, 1);
|
|
745
710
|
}
|
|
@@ -755,24 +720,16 @@ class FWLayerStackManager {
|
|
|
755
720
|
}
|
|
756
721
|
|
|
757
722
|
class FWLayerStateManager {
|
|
758
|
-
private layerStates = new Map<
|
|
759
|
-
new () => FW.LayerController,
|
|
760
|
-
FW.SystemDefine.FWLayerState
|
|
761
|
-
>();
|
|
723
|
+
private layerStates = new Map<new () => FW.LayerController, FW.SystemDefine.FWLayerState>();
|
|
762
724
|
constructor() {}
|
|
763
|
-
setState(
|
|
764
|
-
ctrType: new () => FW.LayerController,
|
|
765
|
-
state: FW.SystemDefine.FWLayerState,
|
|
766
|
-
): void {
|
|
725
|
+
setState(ctrType: new () => FW.LayerController, state: FW.SystemDefine.FWLayerState): void {
|
|
767
726
|
if (FW.Entry.layerMgr.isDebug()) {
|
|
768
727
|
FW.Log.debug(`${cc.js.getClassName(ctrType)}->更新状态${state}`);
|
|
769
728
|
}
|
|
770
729
|
this.layerStates.set(ctrType, state);
|
|
771
730
|
}
|
|
772
731
|
|
|
773
|
-
getState(
|
|
774
|
-
ctrType: new () => FW.LayerController,
|
|
775
|
-
): FW.SystemDefine.FWLayerState {
|
|
732
|
+
getState(ctrType: new () => FW.LayerController): FW.SystemDefine.FWLayerState {
|
|
776
733
|
return this.layerStates.get(ctrType) || FW.SystemDefine.FWLayerState.CLOSED;
|
|
777
734
|
}
|
|
778
735
|
|
|
@@ -807,9 +764,7 @@ class FWLayerQueueManager {
|
|
|
807
764
|
layerData: FWLayerData,
|
|
808
765
|
layerMap: Map<new () => FW.LayerController, FWLayerData>,
|
|
809
766
|
): boolean {
|
|
810
|
-
if (
|
|
811
|
-
layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE
|
|
812
|
-
) {
|
|
767
|
+
if (layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE) {
|
|
813
768
|
const hasNonPermanentLayers = Array.from(layerMap.values()).some(
|
|
814
769
|
(value) => value.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE,
|
|
815
770
|
);
|
|
@@ -849,44 +804,44 @@ class FWLayerQueueManager {
|
|
|
849
804
|
|
|
850
805
|
class FWLayerLifecycleManager {
|
|
851
806
|
setupLifecycleHooks(layer: FW.Layer, ctr: FW.LayerController): void {
|
|
852
|
-
const originalOnLoad = layer[
|
|
853
|
-
layer[
|
|
807
|
+
const originalOnLoad = layer['onLoad'];
|
|
808
|
+
layer['onLoad'] = function () {
|
|
854
809
|
originalOnLoad?.call(this);
|
|
855
810
|
ctr.onLoad?.();
|
|
856
811
|
};
|
|
857
812
|
|
|
858
|
-
const originalStart = layer[
|
|
859
|
-
layer[
|
|
813
|
+
const originalStart = layer['start'];
|
|
814
|
+
layer['start'] = function () {
|
|
860
815
|
originalStart?.call(this);
|
|
861
816
|
ctr.onStart?.();
|
|
862
817
|
};
|
|
863
818
|
|
|
864
|
-
const originalOnEnable = layer[
|
|
865
|
-
layer[
|
|
819
|
+
const originalOnEnable = layer['onEnable'];
|
|
820
|
+
layer['onEnable'] = function () {
|
|
866
821
|
originalOnEnable?.call(this);
|
|
867
822
|
ctr.onEnable?.();
|
|
868
823
|
};
|
|
869
824
|
|
|
870
|
-
const originalOnDisable = layer[
|
|
871
|
-
layer[
|
|
825
|
+
const originalOnDisable = layer['onDisable'];
|
|
826
|
+
layer['onDisable'] = function () {
|
|
872
827
|
originalOnDisable?.call(this);
|
|
873
828
|
ctr.onDisable?.();
|
|
874
829
|
};
|
|
875
830
|
|
|
876
|
-
const originalOnDestroy = layer[
|
|
877
|
-
layer[
|
|
831
|
+
const originalOnDestroy = layer['onDestroy'];
|
|
832
|
+
layer['onDestroy'] = function () {
|
|
878
833
|
originalOnDestroy?.call(this);
|
|
879
834
|
ctr.onDestroy?.();
|
|
880
835
|
};
|
|
881
836
|
|
|
882
|
-
const originalUpdate = layer[
|
|
883
|
-
layer[
|
|
837
|
+
const originalUpdate = layer['update'];
|
|
838
|
+
layer['update'] = function (dt: number) {
|
|
884
839
|
originalUpdate?.call(this, dt);
|
|
885
840
|
ctr.onUpdate?.(dt);
|
|
886
841
|
};
|
|
887
842
|
|
|
888
|
-
const originalLateUpdate = layer[
|
|
889
|
-
layer[
|
|
843
|
+
const originalLateUpdate = layer['lateUpdate'];
|
|
844
|
+
layer['lateUpdate'] = function () {
|
|
890
845
|
originalLateUpdate?.call(this);
|
|
891
846
|
ctr.onLateUpdate?.();
|
|
892
847
|
};
|
|
@@ -897,9 +852,7 @@ class FWLayerControllerFactory {
|
|
|
897
852
|
/**
|
|
898
853
|
* 创建并初始化 LayerController
|
|
899
854
|
*/
|
|
900
|
-
createController<Ctr extends FW.LayerController = FW.LayerController>(
|
|
901
|
-
type: new () => Ctr,
|
|
902
|
-
): Ctr {
|
|
855
|
+
createController<Ctr extends FW.LayerController = FW.LayerController>(type: new () => Ctr): Ctr {
|
|
903
856
|
const ctr = new type();
|
|
904
857
|
|
|
905
858
|
ctr.initializeDependencies?.();
|