@ives_xxz/framework 1.5.5 → 1.5.8

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.
@@ -1,11 +1,16 @@
1
- import { FWManager } from './FWManager';
2
- import { FWLayerController } from '../controller/FWLayerController';
3
- import { FWSystemDefine } from '../define/FWSystemDefine';
4
- import FWLayer from '../layer/FWLayer';
5
- import FWLog from '../log/FWLog';
6
- import { FWQueue } from '../utils/FWQueue';
7
-
8
- const ADD_EXTERNAL_REFERENCE: string = 'addExternalReference';
1
+ import { FWManager } from "./FWManager";
2
+ import { FWLayerController } from "../controller/FWLayerController";
3
+ import { FWSystemDefine } from "../define/FWSystemDefine";
4
+ import FWLayer from "../layer/FWLayer";
5
+ import FWLog from "../log/FWLog";
6
+ import { FWQueue } from "../utils/FWQueue";
7
+ import FWAssetConfig from "../config/FWAssetConfig";
8
+ import FWLogic from "../logic/FWLogic";
9
+ import FWData from "../data/FWData";
10
+ import FWSocketSender from "../service/socket/FWSocketSender";
11
+ import FWSocketHandle from "../service/socket/FWSocketHandle";
12
+
13
+ const ADD_EXTERNAL_REFERENCE: string = "addExternalReference";
9
14
 
10
15
  export class FWLayerManager extends FWManager implements FW.LayerManager {
11
16
  private resourceManager: FWLayerResourceManager;
@@ -29,7 +34,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
29
34
  this.resourceManager,
30
35
  this.createManager,
31
36
  this.stackManager,
32
- this.queueManager,
37
+ this.queueManager
33
38
  );
34
39
  }
35
40
 
@@ -37,7 +42,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
37
42
  * 异步打开Layer
38
43
  */
39
44
  async openAsync<Ctr extends FW.LayerController = FW.LayerController>(
40
- data: FW.LayerOpenArgs,
45
+ data: FW.LayerOpenArgs
41
46
  ): Promise<Ctr> {
42
47
  return this.openManager.openLayerAsync(data) as Promise<Ctr>;
43
48
  }
@@ -45,17 +50,23 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
45
50
  /**
46
51
  * 同步打开
47
52
  */
48
- openSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
53
+ openSync<Ctr extends FW.LayerController = FW.LayerController>(
54
+ data: FW.LayerOpenArgs
55
+ ): Ctr {
49
56
  return this.openManager.openLayerSync(data) as unknown as Ctr;
50
57
  }
51
58
 
52
59
  /**
53
60
  * 显示layer并恢复所有节点事件
54
61
  */
55
- displayLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
62
+ displayLayer<Ctr extends FW.LayerController = FW.LayerController>(
63
+ ctr: Ctr
64
+ ): Ctr {
56
65
  const layerData = ctr.layerData;
57
66
 
58
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
67
+ if (
68
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
69
+ ) {
59
70
  FWLog.warn(`display layer failed,layer name : ${layerData.layerName}`);
60
71
  return;
61
72
  }
@@ -75,9 +86,13 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
75
86
  /**
76
87
  * 隐藏layer并隐藏所有节点事件
77
88
  */
78
- hideLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
89
+ hideLayer<Ctr extends FW.LayerController = FW.LayerController>(
90
+ ctr: Ctr
91
+ ): Ctr {
79
92
  const layerData = ctr.layerData;
80
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
93
+ if (
94
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
95
+ ) {
81
96
  FWLog.warn(`hide layer failed,layer name : ${layerData.layerName}`);
82
97
  return;
83
98
  }
@@ -121,7 +136,9 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
121
136
  for (let i = 0; i < count; i++) {
122
137
  let layerData = this.stackManager.pop();
123
138
  let ctr = layerData.controller;
124
- if (!this.dataManager.getLayerMap().has(layerData.controllerConstructor)) {
139
+ if (
140
+ !this.dataManager.getLayerMap().has(layerData.controllerConstructor)
141
+ ) {
125
142
  return;
126
143
  }
127
144
  if (cc.isValid(ctr.layer?.node)) {
@@ -153,7 +170,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
153
170
  * 关闭layer
154
171
  */
155
172
  async close<Ctr extends FW.LayerController = FW.LayerController>(
156
- ctr: Ctr,
173
+ ctr: Ctr
157
174
  ): Promise<FW.LayerController> {
158
175
  if (!ctr) return;
159
176
 
@@ -246,7 +263,7 @@ class FWLayerDataManager {
246
263
  * 获取已存在的Layer
247
264
  */
248
265
  getExistingLayer<Ctr extends FW.LayerController = FW.LayerController>(
249
- type: new () => Ctr,
266
+ type: new () => Ctr
250
267
  ): Ctr | undefined {
251
268
  for (const [key, value] of this.layerMap) {
252
269
  if (value.controllerConstructor === type) {
@@ -260,11 +277,11 @@ class FWLayerDataManager {
260
277
  * 从类型创建Layer数据
261
278
  */
262
279
  createLayerData<Ctr extends FW.LayerController = FW.LayerController>(
263
- type: new () => Ctr,
280
+ type: new () => Ctr
264
281
  ): FW.LayerData {
265
282
  const ctr = new type();
266
283
  const ctrName = cc.js.getClassName(ctr);
267
- const layerData = this.createBaseLayerData(ctr);
284
+ const layerData = this.generationData(ctr);
268
285
 
269
286
  layerData.controllerConstructor = type;
270
287
  layerData.controller = ctr;
@@ -280,12 +297,18 @@ class FWLayerDataManager {
280
297
  }
281
298
 
282
299
  /**
283
- * 创建基础Layer数据
300
+ * 生成数据
284
301
  */
285
- private createBaseLayerData(ctr: FW.LayerController): FWLayerData {
302
+ private generationData(ctr: FW.LayerController): FWLayerData {
286
303
  const layerData = new FWLayerData();
287
304
  const layerType = ctr.layerType;
288
305
 
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
+
289
312
  layerData.layerRenderOrder = ctr.renderOrder;
290
313
  layerData.layerAssetProperty = ctr.layerAssetProperty;
291
314
  layerData.layerType = layerType;
@@ -311,7 +334,7 @@ class FWLayerDataManager {
311
334
  * 获取已存在的代理
312
335
  */
313
336
  getExistingProxy<Ctr extends FW.LayerController = FW.LayerController>(
314
- type: new () => Ctr,
337
+ type: new () => Ctr
315
338
  ): Ctr | undefined {
316
339
  return this.layerMap.get(type)?.controllerProxy as Ctr;
317
340
  }
@@ -323,7 +346,7 @@ class FWLayerDataManager {
323
346
  layerData: FWLayerData,
324
347
  res: { asset: cc.Prefab; uuid: string },
325
348
  layer: FWLayer,
326
- layerName: string,
349
+ layerName: string
327
350
  ): void {
328
351
  layerData.loaded = true;
329
352
  layerData.layer = layer;
@@ -369,7 +392,7 @@ class FWLayerDataManager {
369
392
  try {
370
393
  cb?.(null);
371
394
  } catch (e) {
372
- FWLog.error('External ref update callback error:', e);
395
+ FWLog.error("External ref update callback error:", e);
373
396
  }
374
397
  });
375
398
  layerData.externalReference.clear();
@@ -394,7 +417,8 @@ class FWLayerDataManager {
394
417
  }
395
418
 
396
419
  class FWLayerCreateManager {
397
- private lifecycleManager: FWLayerLifecycleManager = new FWLayerLifecycleManager();
420
+ private lifecycleManager: FWLayerLifecycleManager =
421
+ new FWLayerLifecycleManager();
398
422
 
399
423
  /**
400
424
  * 创建Layer节点
@@ -404,7 +428,7 @@ class FWLayerCreateManager {
404
428
  layerComponent: string,
405
429
  renderOrder: number,
406
430
  parent: cc.Node,
407
- position: FW.Vec3,
431
+ position: FW.Vec3
408
432
  ): FWLayer {
409
433
  parent = parent || FW.Entry.scene?.node;
410
434
  position = position || cc.Vec3.ZERO;
@@ -446,14 +470,14 @@ class FWLayerOpenManager {
446
470
  private resourceManager: FWLayerResourceManager,
447
471
  private createManager: FWLayerCreateManager,
448
472
  private stackManager: FWLayerStackManager,
449
- private queueManager: FWLayerQueueManager,
473
+ private queueManager: FWLayerQueueManager
450
474
  ) {}
451
475
 
452
476
  /**
453
477
  * 统一的Layer打开方法
454
478
  */
455
479
  async openLayerAsync<Ctr extends FW.LayerController = FW.LayerController>(
456
- data: FW.LayerOpenArgs,
480
+ data: FW.LayerOpenArgs
457
481
  ): Promise<Ctr> {
458
482
  if (!this.validateOpenData(data)) {
459
483
  return undefined;
@@ -475,7 +499,12 @@ class FWLayerOpenManager {
475
499
  return proxy as Ctr;
476
500
  }
477
501
 
478
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
502
+ if (
503
+ this.queueManager.handlePopupQueue(
504
+ layerData,
505
+ this.dataManager.getLayerMap()
506
+ )
507
+ ) {
479
508
  return undefined;
480
509
  }
481
510
 
@@ -484,7 +513,9 @@ class FWLayerOpenManager {
484
513
  return this.asyncGenerationLayer(layerData, data);
485
514
  }
486
515
 
487
- openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
516
+ openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(
517
+ data: FW.LayerOpenArgs
518
+ ): Ctr {
488
519
  if (!this.validateOpenData(data)) {
489
520
  return undefined;
490
521
  }
@@ -505,7 +536,12 @@ class FWLayerOpenManager {
505
536
  return proxy as Ctr;
506
537
  }
507
538
 
508
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
539
+ if (
540
+ this.queueManager.handlePopupQueue(
541
+ layerData,
542
+ this.dataManager.getLayerMap()
543
+ )
544
+ ) {
509
545
  return undefined;
510
546
  }
511
547
 
@@ -542,10 +578,9 @@ class FWLayerOpenManager {
542
578
  /**
543
579
  * 异步生成Layer
544
580
  */
545
- private async asyncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
546
- layerData: FWLayerData,
547
- data: FW.LayerOpenArgs,
548
- ): Promise<Ctr> {
581
+ private async asyncGenerationLayer<
582
+ Ctr extends FW.LayerController = FW.LayerController
583
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Promise<Ctr> {
549
584
  try {
550
585
  const res = await this.resourceManager.loadLayerAsync(layerData);
551
586
  const ctr = this.createLayer(layerData, res, data) as Ctr;
@@ -561,10 +596,9 @@ class FWLayerOpenManager {
561
596
  /**
562
597
  * 同步创建Layer
563
598
  */
564
- private syncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
565
- layerData: FWLayerData,
566
- data: FW.LayerOpenArgs,
567
- ): Ctr {
599
+ private syncGenerationLayer<
600
+ Ctr extends FW.LayerController = FW.LayerController
601
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Ctr {
568
602
  try {
569
603
  const res = this.resourceManager.loadLayerSync(layerData);
570
604
  const ctr = this.createLayer(layerData, res, data) as Ctr;
@@ -583,14 +617,14 @@ class FWLayerOpenManager {
583
617
  private createLayer<Ctr extends FW.LayerController = FW.LayerController>(
584
618
  layerData: FWLayerData,
585
619
  res: { asset: cc.Prefab; uuid: string },
586
- data: FW.LayerOpenArgs,
620
+ data: FW.LayerOpenArgs
587
621
  ): Ctr {
588
622
  const layer = this.createManager.createLayer(
589
623
  res.asset,
590
624
  res.asset.name,
591
625
  layerData.controller.renderOrder,
592
626
  data.parent,
593
- data.position,
627
+ data.position
594
628
  );
595
629
  const layerName = cc.js.getClassName(layer);
596
630
 
@@ -600,22 +634,29 @@ class FWLayerOpenManager {
600
634
 
601
635
  this.createManager.setupLayerLifecycle(layer, layerData.controller);
602
636
 
603
- if (layerData.controller.layerType !== FWSystemDefine.FWLayerType.PERMANENT) {
637
+ if (
638
+ layerData.controller.layerType !== FWSystemDefine.FWLayerType.PERMANENT
639
+ ) {
604
640
  this.stackManager.push(layerData);
605
641
  }
606
642
 
607
643
  this.dataManager.removeFromRegistry(layerData.controllerConstructor);
608
644
 
609
- layerData.controllerProxy = this.dataManager.createControllerProxy(layerData);
645
+ layerData.controllerProxy =
646
+ this.dataManager.createControllerProxy(layerData);
610
647
 
611
648
  return layerData.controllerProxy as Ctr;
612
649
  }
613
650
  }
614
651
 
615
652
  class FWLayerResourceManager {
616
- async loadLayerAsync(layerData: FWLayerData): Promise<{ asset: cc.Prefab; uuid: string }> {
653
+ async loadLayerAsync(
654
+ layerData: FWLayerData
655
+ ): Promise<{ asset: cc.Prefab; uuid: string }> {
617
656
  try {
618
- const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(layerData.layerAssetProperty);
657
+ const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(
658
+ layerData.layerAssetProperty
659
+ );
619
660
  res.user = layerData.layerName;
620
661
  res.autoRelease = layerData.controller.autoRelease;
621
662
  res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
@@ -629,7 +670,9 @@ class FWLayerResourceManager {
629
670
  loadLayerSync(layerData: FWLayerData): { asset: cc.Prefab; uuid: string } {
630
671
  layerData.layerAssetProperty.bundle =
631
672
  layerData.layerAssetProperty.bundle || FW.Entry.bundleName;
632
- const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(layerData.layerAssetProperty);
673
+ const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(
674
+ layerData.layerAssetProperty
675
+ );
633
676
  res.user = layerData.layerName;
634
677
  res.autoRelease = layerData.controller.autoRelease;
635
678
  res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
@@ -641,7 +684,9 @@ class FWLayerStackManager {
641
684
  private layerStack: FWLayerData[] = [];
642
685
 
643
686
  push(layerData: FWLayerData): void {
644
- if (layerData.controller.layerType !== FWSystemDefine.FWLayerType.PERMANENT) {
687
+ if (
688
+ layerData.controller.layerType !== FWSystemDefine.FWLayerType.PERMANENT
689
+ ) {
645
690
  this.layerStack.push(layerData);
646
691
  }
647
692
  }
@@ -651,7 +696,9 @@ class FWLayerStackManager {
651
696
  }
652
697
 
653
698
  remove(layerData: FWLayerData): void {
654
- const index = this.layerStack.findIndex((v) => v.controller === layerData.controller);
699
+ const index = this.layerStack.findIndex(
700
+ (v) => v.controller === layerData.controller
701
+ );
655
702
  if (index > -1) {
656
703
  this.layerStack.splice(index, 1);
657
704
  }
@@ -667,9 +714,15 @@ class FWLayerStackManager {
667
714
  }
668
715
 
669
716
  class FWLayerStateManager {
670
- private layerStates = new Map<new () => FW.LayerController, FWSystemDefine.FWLayerState>();
671
-
672
- setState(ctrType: new () => FW.LayerController, state: FWSystemDefine.FWLayerState): void {
717
+ private layerStates = new Map<
718
+ new () => FW.LayerController,
719
+ FWSystemDefine.FWLayerState
720
+ >();
721
+
722
+ setState(
723
+ ctrType: new () => FW.LayerController,
724
+ state: FWSystemDefine.FWLayerState
725
+ ): void {
673
726
  this.layerStates.set(ctrType, state);
674
727
  }
675
728
 
@@ -703,11 +756,13 @@ class FWLayerQueueManager {
703
756
 
704
757
  handlePopupQueue(
705
758
  layerData: FWLayerData,
706
- layerMap: Map<new () => FW.LayerController, FWLayerData>,
759
+ layerMap: Map<new () => FW.LayerController, FWLayerData>
707
760
  ): boolean {
708
- if (layerData.controller.layerType === FWSystemDefine.FWLayerType.POPUP_QUEUE) {
761
+ if (
762
+ layerData.controller.layerType === FWSystemDefine.FWLayerType.POPUP_QUEUE
763
+ ) {
709
764
  const hasNonPermanentLayers = Array.from(layerMap.values()).some(
710
- (value) => value.layerType === FWSystemDefine.FWLayerType.POPUP_QUEUE,
765
+ (value) => value.layerType === FWSystemDefine.FWLayerType.POPUP_QUEUE
711
766
  );
712
767
 
713
768
  if (hasNonPermanentLayers) {
@@ -745,44 +800,44 @@ class FWLayerQueueManager {
745
800
 
746
801
  class FWLayerLifecycleManager {
747
802
  setupLifecycleHooks(layer: FWLayer, ctr: FW.LayerController): void {
748
- const originalOnLoad = layer['onLoad'];
749
- layer['onLoad'] = function () {
803
+ const originalOnLoad = layer["onLoad"];
804
+ layer["onLoad"] = function () {
750
805
  originalOnLoad?.call(this);
751
806
  ctr.onLoad?.();
752
807
  };
753
808
 
754
- const originalStart = layer['start'];
755
- layer['start'] = function () {
809
+ const originalStart = layer["start"];
810
+ layer["start"] = function () {
756
811
  originalStart?.call(this);
757
812
  ctr.onStart?.();
758
813
  };
759
814
 
760
- const originalOnEnable = layer['onEnable'];
761
- layer['onEnable'] = function () {
815
+ const originalOnEnable = layer["onEnable"];
816
+ layer["onEnable"] = function () {
762
817
  originalOnEnable?.call(this);
763
818
  ctr.onEnable?.();
764
819
  };
765
820
 
766
- const originalOnDisable = layer['onDisable'];
767
- layer['onDisable'] = function () {
821
+ const originalOnDisable = layer["onDisable"];
822
+ layer["onDisable"] = function () {
768
823
  originalOnDisable?.call(this);
769
824
  ctr.onDisable?.();
770
825
  };
771
826
 
772
- const originalOnDestroy = layer['onDestroy'];
773
- layer['onDestroy'] = function () {
827
+ const originalOnDestroy = layer["onDestroy"];
828
+ layer["onDestroy"] = function () {
774
829
  originalOnDestroy?.call(this);
775
830
  ctr.onDestroy?.();
776
831
  };
777
832
 
778
- const originalUpdate = layer['update'];
779
- layer['update'] = function (dt: number) {
833
+ const originalUpdate = layer["update"];
834
+ layer["update"] = function (dt: number) {
780
835
  originalUpdate?.call(this, dt);
781
836
  ctr.onUpdate?.(dt);
782
837
  };
783
838
 
784
- const originalLateUpdate = layer['lateUpdate'];
785
- layer['lateUpdate'] = function () {
839
+ const originalLateUpdate = layer["lateUpdate"];
840
+ layer["lateUpdate"] = function () {
786
841
  originalLateUpdate?.call(this);
787
842
  ctr.onLateUpdate?.();
788
843
  };