@ives_xxz/framework 1.0.0

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.
Files changed (139) hide show
  1. package/FW.d.ts +1845 -0
  2. package/FW.d.ts.meta +6 -0
  3. package/Framework.ts +148 -0
  4. package/Framework.ts.meta +10 -0
  5. package/README.md +93 -0
  6. package/README.md.meta +6 -0
  7. package/animation/FWAnimation.ts +13 -0
  8. package/animation/FWAnimation.ts.meta +10 -0
  9. package/animation/FWSkeleton.ts +176 -0
  10. package/animation/FWSkeleton.ts.meta +10 -0
  11. package/animation/FWTween.ts +60 -0
  12. package/animation/FWTween.ts.meta +10 -0
  13. package/animation.meta +13 -0
  14. package/component/FWVirtualViewComponent.ts +2080 -0
  15. package/component/FWVirtualViewComponent.ts.meta +10 -0
  16. package/component.meta +13 -0
  17. package/config/FWAssetConfig.ts +7 -0
  18. package/config/FWAssetConfig.ts.meta +10 -0
  19. package/config.meta +13 -0
  20. package/controller/FWLayerController.ts +236 -0
  21. package/controller/FWLayerController.ts.meta +10 -0
  22. package/controller.meta +13 -0
  23. package/data/FWData.ts +10 -0
  24. package/data/FWData.ts.meta +10 -0
  25. package/data.meta +13 -0
  26. package/define/FWEventDefine.ts +26 -0
  27. package/define/FWEventDefine.ts.meta +10 -0
  28. package/define/FWSystemDefine.ts +133 -0
  29. package/define/FWSystemDefine.ts.meta +10 -0
  30. package/define.meta +13 -0
  31. package/entry/FWEntry.ts +196 -0
  32. package/entry/FWEntry.ts.meta +10 -0
  33. package/entry.meta +13 -0
  34. package/expand/FWCocosExpand.ts +73 -0
  35. package/expand/FWCocosExpand.ts.meta +10 -0
  36. package/expand/FWDecorator.ts +256 -0
  37. package/expand/FWDecorator.ts.meta +10 -0
  38. package/expand/FWRollingViewNesting.ts +191 -0
  39. package/expand/FWRollingViewNesting.ts.meta +10 -0
  40. package/expand/FWTweenExpand.ts +44 -0
  41. package/expand/FWTweenExpand.ts.meta +10 -0
  42. package/expand.meta +13 -0
  43. package/item/FWVirtualListItem.ts +150 -0
  44. package/item/FWVirtualListItem.ts.meta +10 -0
  45. package/item.meta +13 -0
  46. package/language/FWLanguage.ts +69 -0
  47. package/language/FWLanguage.ts.meta +10 -0
  48. package/language/FWLanguageLabelLocalize.ts +144 -0
  49. package/language/FWLanguageLabelLocalize.ts.meta +10 -0
  50. package/language/FWLanguageSkeletonLocalize.ts +106 -0
  51. package/language/FWLanguageSkeletonLocalize.ts.meta +10 -0
  52. package/language/FWLanguageSpriteLocalize.ts +81 -0
  53. package/language/FWLanguageSpriteLocalize.ts.meta +10 -0
  54. package/language.meta +13 -0
  55. package/layer/FWLayer.ts +13 -0
  56. package/layer/FWLayer.ts.meta +10 -0
  57. package/layer.meta +13 -0
  58. package/log/FWLog.ts +115 -0
  59. package/log/FWLog.ts.meta +10 -0
  60. package/log.meta +13 -0
  61. package/logic/FWLogic.ts +10 -0
  62. package/logic/FWLogic.ts.meta +10 -0
  63. package/logic.meta +13 -0
  64. package/machine/FWAnimationMachine.ts +28 -0
  65. package/machine/FWAnimationMachine.ts.meta +10 -0
  66. package/machine/FWStateMachine.ts +75 -0
  67. package/machine/FWStateMachine.ts.meta +10 -0
  68. package/machine.meta +13 -0
  69. package/manager/FWAnimationManager.ts +128 -0
  70. package/manager/FWAnimationManager.ts.meta +10 -0
  71. package/manager/FWAssetManager.ts +349 -0
  72. package/manager/FWAssetManager.ts.meta +10 -0
  73. package/manager/FWAudioManager.ts +289 -0
  74. package/manager/FWAudioManager.ts.meta +10 -0
  75. package/manager/FWBundleManager.ts +91 -0
  76. package/manager/FWBundleManager.ts.meta +10 -0
  77. package/manager/FWComponentManager.ts +25 -0
  78. package/manager/FWComponentManager.ts.meta +10 -0
  79. package/manager/FWEngineManager.ts +63 -0
  80. package/manager/FWEngineManager.ts.meta +10 -0
  81. package/manager/FWEventManager.ts +275 -0
  82. package/manager/FWEventManager.ts.meta +10 -0
  83. package/manager/FWHotUpdateManager.ts +213 -0
  84. package/manager/FWHotUpdateManager.ts.meta +10 -0
  85. package/manager/FWLanguageManager.ts +116 -0
  86. package/manager/FWLanguageManager.ts.meta +10 -0
  87. package/manager/FWLayerManager.ts +490 -0
  88. package/manager/FWLayerManager.ts.meta +10 -0
  89. package/manager/FWManager.ts +8 -0
  90. package/manager/FWManager.ts.meta +10 -0
  91. package/manager/FWObjectManager.ts +91 -0
  92. package/manager/FWObjectManager.ts.meta +10 -0
  93. package/manager/FWResManager.ts +171 -0
  94. package/manager/FWResManager.ts.meta +10 -0
  95. package/manager/FWSocketManager.ts +94 -0
  96. package/manager/FWSocketManager.ts.meta +10 -0
  97. package/manager/FWStateManager.ts +102 -0
  98. package/manager/FWStateManager.ts.meta +10 -0
  99. package/manager/FWTaskManager.ts +38 -0
  100. package/manager/FWTaskManager.ts.meta +10 -0
  101. package/manager/FWTimeManager.ts +473 -0
  102. package/manager/FWTimeManager.ts.meta +10 -0
  103. package/manager/FWUiManager.ts +164 -0
  104. package/manager/FWUiManager.ts.meta +10 -0
  105. package/manager.meta +13 -0
  106. package/package.json +17 -0
  107. package/package.json.meta +6 -0
  108. package/scene/FWScene.ts +25 -0
  109. package/scene/FWScene.ts.meta +10 -0
  110. package/scene.meta +13 -0
  111. package/service/FWService.ts +7 -0
  112. package/service/FWService.ts.meta +10 -0
  113. package/service/http/FWHttp.ts +70 -0
  114. package/service/http/FWHttp.ts.meta +10 -0
  115. package/service/http.meta +13 -0
  116. package/service/socket/FWSocket.ts +236 -0
  117. package/service/socket/FWSocket.ts.meta +10 -0
  118. package/service/socket/FWSocketHandle.ts +17 -0
  119. package/service/socket/FWSocketHandle.ts.meta +10 -0
  120. package/service/socket/FWSocketSender.ts +16 -0
  121. package/service/socket/FWSocketSender.ts.meta +10 -0
  122. package/service/socket.meta +13 -0
  123. package/service.meta +13 -0
  124. package/state/FWState.ts +8 -0
  125. package/state/FWState.ts.meta +10 -0
  126. package/state.meta +13 -0
  127. package/utils/FWLodash.ts +105 -0
  128. package/utils/FWLodash.ts.meta +10 -0
  129. package/utils/FWMask.ts +222 -0
  130. package/utils/FWMask.ts.meta +10 -0
  131. package/utils/FWObject.ts +22 -0
  132. package/utils/FWObject.ts.meta +10 -0
  133. package/utils/FWObjectPool.ts +178 -0
  134. package/utils/FWObjectPool.ts.meta +10 -0
  135. package/utils/FWQueue.ts +47 -0
  136. package/utils/FWQueue.ts.meta +10 -0
  137. package/utils/FWTask.ts +223 -0
  138. package/utils/FWTask.ts.meta +10 -0
  139. package/utils.meta +13 -0
package/FW.d.ts ADDED
@@ -0,0 +1,1845 @@
1
+ declare namespace FW {
2
+ type Newable<TInstance = unknown, TArgs extends unknown[] = any[]> = new (
3
+ ...args: TArgs
4
+ ) => TInstance;
5
+ type Abstract<T> = {
6
+ prototype: T;
7
+ };
8
+
9
+ type ServiceIdentifierData<TInstance = unknown> = string | symbol | Newable<TInstance> | Function;
10
+
11
+ type CommonNewable<TInstance = unknown, TArgs extends unknown[] = any[]> = Newable<
12
+ TInstance,
13
+ TArgs
14
+ >;
15
+ type CommonServiceIdentifier<TInstance = unknown> = ServiceIdentifierData<TInstance>;
16
+
17
+ type ServiceIdentifier<T = unknown> = CommonServiceIdentifier<T>;
18
+ /**
19
+ * 入口对象
20
+ */
21
+ type Entry = {
22
+ timeMgr: TimeManager;
23
+ layerMgr: LayerManager;
24
+ resMgr: ResManager;
25
+ animationMgr: AnimationManager;
26
+ stateMgr: StateManager;
27
+ audioMgr: AudioManager;
28
+ socketMgr: SocketManager;
29
+ objectMgr: ObjectManager;
30
+ uiMgr: UiManager;
31
+ componentMgr: ComponentManager;
32
+ languageMgr: LanguageManager;
33
+ evtMgr: EventManager;
34
+ engineMgr: EngineManager;
35
+ taskMgr: TaskManager;
36
+ hotUpdateMgr: HotUpdateManager;
37
+ scene: Scene;
38
+ bundleName: string;
39
+ getComponent<T>(serviceIdentifier: FW.ServiceIdentifier<T>): T;
40
+ getComponents<T>(serviceIdentifier?: FW.ServiceIdentifier<T>): T[];
41
+ launchScene(bundleName: string): void;
42
+ register(data: RegisterBundle): void;
43
+ getSceneName(bundleName: string): string;
44
+ getDepend(bundleName: string): string[];
45
+ update(dt: number): void;
46
+ initialize(): void;
47
+ onDestroy(): void;
48
+ };
49
+
50
+ type LanguageManager = {
51
+ registerLanguagePackageEnum(
52
+ bundleName: string,
53
+ language: any,
54
+ getter: (key: string, language?: string) => string,
55
+ ): void;
56
+ getSupportedLanguages(): string[];
57
+ setSupportedLanguages(languages: string[]): void;
58
+ getBundles(): string[];
59
+ getLanguage(): string;
60
+ getLanguageIndex(): number;
61
+ getLanguagePackageValue(bundleName: string, key: string, language?: string): string;
62
+ getLanguagePackageEnumKeys(bundleName: string): string[];
63
+ getLanguagePackageEnumValues(bundleName: string): string[];
64
+ getLanguagePackageEnum<K extends keyof ILanguageBundleAccessor>(
65
+ bundleName: K,
66
+ ): ILanguageBundleAccessor[K];
67
+ initializeLanguage(language: string);
68
+ };
69
+
70
+ type Language = {
71
+ onRefresh(): void;
72
+ };
73
+
74
+ type ComponentManager = {
75
+ bindVirtualViewComponent(args: FW.VirtualViewComponentArgs);
76
+ };
77
+
78
+ type Scene = {
79
+ node: cc.Node;
80
+ };
81
+
82
+ type Sender = {
83
+ readonly entry: FW.Entry;
84
+ initialize?();
85
+ onDestroy?();
86
+ send(msg: any);
87
+ };
88
+ type Handle = {
89
+ readonly entry: FW.Entry;
90
+ initialize?();
91
+ onDestroy?();
92
+ /** 消息处理 */
93
+ onMessage(msg: any);
94
+ /** 超时处理 */
95
+ onTimeout();
96
+ /** 错误处理 */
97
+ onError(msg: any);
98
+ /** 连接打开 */
99
+ onOpen();
100
+ /** 连接关闭 */
101
+ onClose();
102
+ /** 心跳 */
103
+ onHeart?(msg: any): Promise<boolean>;
104
+ /** 弱网 */
105
+ onWeakNetWork?(): void;
106
+ };
107
+
108
+ type ObjectManager = {
109
+ /** 创建一个对象池 */
110
+ createObjectPool<T extends FWObject = FWObject>(
111
+ node: cc.Node,
112
+ parent: cc.Node,
113
+ tag?: string,
114
+ ): Promise<ObjectPool<T>>;
115
+ createObjectPool<T extends FWObject = FWObject>(
116
+ prefab: cc.Prefab,
117
+ parent: cc.Node,
118
+ tag?: string,
119
+ ): Promise<ObjectPool<T>>;
120
+ createObjectPool<T extends FWObject = FWObject>(
121
+ assetProperty: FW.AssetProperty,
122
+ parent: cc.Node,
123
+ tag?: string,
124
+ ): Promise<ObjectPool<T>>;
125
+ createObjectPool<T extends FWObject = FWObject>(
126
+ node: cc.Node,
127
+ parent: cc.Node,
128
+ type?: number,
129
+ ): Promise<ObjectPool<T>>;
130
+ createObjectPool<T extends FWObject = FWObject>(
131
+ prefab: cc.Prefab,
132
+ parent: cc.Node,
133
+ type?: number,
134
+ ): Promise<ObjectPool<T>>;
135
+ createObjectPool<T extends FWObject = FWObject>(
136
+ assetProperty: FW.AssetProperty,
137
+ parent: cc.Node,
138
+ type?: number,
139
+ ): Promise<ObjectPool<T>>;
140
+ /** 获取已经创建的对象池 */
141
+ getObjectPool(tag: string): ObjectPool;
142
+
143
+ /** 销毁一个对象池 */
144
+ destroyObjectPool(tag: string): void;
145
+ };
146
+
147
+ type ObjectPool = {
148
+ getEnableObjectMap();
149
+ getDisableObjectMap();
150
+ getAllObjectMap();
151
+ findObjectProperty(node: cc.Node);
152
+ findObjectProperty(component: FW.Object);
153
+ findObjectProperty(uniqueId: number);
154
+ get(...args: any): FW.ObjectProperty;
155
+ put(node: cc.Node);
156
+ put(component: FW.Object);
157
+ put(uniqueId: number);
158
+ onDestroy();
159
+ };
160
+ type SocketManager = {
161
+ createSocket(
162
+ tag: string,
163
+ address: string,
164
+ sender: SocketSender,
165
+ handle: SocketHandle,
166
+ config: {
167
+ heartTimeout?: number;
168
+ heartWeakTime?: number;
169
+ heartInternal?: number;
170
+ maxReconnectTimes?: number;
171
+ reconnectInternal?: number;
172
+ },
173
+ ): Promise<Socket>;
174
+ /**
175
+ * 获取socket
176
+ * @param type
177
+ * @returns
178
+ */
179
+ getSocket(tag?: string): Socket;
180
+
181
+ getSocketMap(): Map<string, Socket>;
182
+ /** 暂停消息处理 */
183
+ pauseMessageHandle(): void;
184
+
185
+ /** 恢复消息处理 */
186
+ resumeMessageHandle(): void;
187
+ /**
188
+ * 关闭
189
+ * @param fs
190
+ * @returns
191
+ */
192
+ closeSocket(fs: Socket): void;
193
+ };
194
+
195
+ type ScrollViewComponent = {
196
+ /**
197
+ * 模板类型,1:cc.Node,2.cc.prefab
198
+ */
199
+ templateType: number;
200
+ /**
201
+ * 滑动类型 1.无 2.粘性模式,强制关闭不自动滑动,3.页面模式,强制关闭不自动滑动
202
+ */
203
+ slideType: number;
204
+ /**
205
+ * 是否是虚拟列表
206
+ */
207
+ virtual: boolean;
208
+ };
209
+
210
+ type SocketPromiseProxy = {
211
+ promise: Function;
212
+ socket: FW.Socket;
213
+ };
214
+
215
+ type Socket = {
216
+ public onDestroy(): void;
217
+ /**
218
+ * 获取tag
219
+ * */
220
+ public getTag(): string;
221
+ /**
222
+ * 获取地址
223
+ * @returns
224
+ */
225
+ getAddress(): string;
226
+
227
+ /**
228
+ * 获取socket状态
229
+ * @returns
230
+ */
231
+ getReadyState(): number;
232
+
233
+ /**
234
+ * 关闭连接
235
+ */
236
+ close();
237
+ /**
238
+ * 暂停消息处理
239
+ */
240
+ pauseMessageHandle();
241
+ /**
242
+ * 恢复消息处理
243
+ */
244
+ resumeMessageHandle();
245
+
246
+ send(msg);
247
+
248
+ createSocket(
249
+ address: string,
250
+ tag: string,
251
+ sender: FWSocketSender,
252
+ handle: FWSocketHandle,
253
+ config: {
254
+ heartInternal: number;
255
+ heartTimeout: number;
256
+ heartWeakTime: number;
257
+ maxReconnectTimes: number;
258
+ },
259
+ ): SocketPromiseProxy;
260
+ };
261
+
262
+ /**
263
+ * 观察者
264
+ */
265
+ type Observer = {
266
+ priority: number;
267
+ intercept: boolean;
268
+ /**
269
+ * 事件通知
270
+ */
271
+ notify(
272
+ args1?: FW.EventManagerArgs,
273
+ args2?: FW.EventManagerArgs,
274
+ args3?: FW.EventManagerArgs,
275
+ args4?: FW.EventManagerArgs,
276
+ args5?: FW.EventManagerArgs,
277
+ args6?: FW.EventManagerArgs,
278
+ args7?: FW.EventManagerArgs,
279
+ args8?: FW.EventManagerArgs,
280
+ args9?: FW.EventManagerArgs,
281
+ args10?: FW.EventManagerArgs,
282
+ );
283
+ /**
284
+ * 比较目标
285
+ */
286
+ compar(target: TargetType);
287
+ /**
288
+ * 获取事件名字
289
+ */
290
+ getEventName(): string | number;
291
+ /**
292
+ * 暂停观察
293
+ */
294
+ pauseObserver(): void;
295
+ /**
296
+ * 恢复观察
297
+ */
298
+ resumeObserver(): void;
299
+ };
300
+
301
+ type TargetType = cc.Component | Record<string, any> | cc.Node;
302
+
303
+ type UiManager = {
304
+ registerButtonEvent(args: FW.RegisterEventArgs | FW.RegisterEventArgs[]);
305
+ pauseEvent<T extends TargetType>(target: T);
306
+ resumeEvent<T extends TargetType>(target: T);
307
+ hasRegister(eventName: string, target: FW.TargetType): boolean;
308
+ unRegisterEvent(args: FW.RegisterEventArgs);
309
+ unRegisterTarget(target: TargetType);
310
+ unRegisterAll();
311
+ buttonEnable(target: TargetType);
312
+ buttonDisable(target: TargetType);
313
+ };
314
+
315
+ type TimeManager = {
316
+ initialize(): void;
317
+ onDestroy(): void;
318
+
319
+ getTime(): string;
320
+ /**
321
+ * 一次性调度器
322
+ */
323
+ scheduleOnce(cb?: () => void, tag?: string): FW.TimerSchedule;
324
+ /**
325
+ * 一次性调度器
326
+ */
327
+ scheduleOnce(time?: number, tag?: string): FW.TimerSchedule;
328
+ /**
329
+ * 一次性调度器
330
+ */
331
+ scheduleOnce(cb?: () => void, target?: any): FW.TimerSchedule;
332
+ /**
333
+ * 一次性调度器
334
+ */
335
+ scheduleOnce(time?: number, target?: any): FW.TimerSchedule;
336
+ /**
337
+ * 一次性调度器
338
+ */
339
+ scheduleOnce(cb?: () => void, time?: number, tag?: string): FW.TimerSchedule;
340
+ /**
341
+ * 一次性调度器
342
+ */
343
+ scheduleOnce(time?: number, cb?: () => void, tag?: string): FW.TimerSchedule;
344
+ /**
345
+ * 一次性调度器
346
+ */
347
+ scheduleOnce(time?: number, cb?: () => void, target?: any): FW.TimerSchedule;
348
+ /**
349
+ * 一次性调度器
350
+ */
351
+ scheduleOnce(cb?: () => void, time?: number, target?: any): FW.TimerSchedule;
352
+ /**
353
+ * 自定义调度器
354
+ * */
355
+ schedule(
356
+ cb?: () => void,
357
+ time?: number,
358
+ repeat?: number,
359
+ target?: TargetType,
360
+ tag?: string,
361
+ ): TimerSchedule;
362
+ /** 暂停调度器 */
363
+ pauseSchedule(tag: string): void;
364
+ pauseSchedule(target: TargetType): void;
365
+ pauseSchedule(id: number): void;
366
+ /**
367
+ * 取消调度器
368
+ * */
369
+ unSchedule(tag: string): void;
370
+ unSchedule(target: TargetType): void;
371
+ unSchedule(id: number): void;
372
+ /**
373
+ * 恢复调度器
374
+ * @param tag
375
+ */
376
+ resumeSchedule(tag: string): void;
377
+ resumeSchedule(target: TargetType): void;
378
+ resumeSchedule(id: number): void;
379
+ /**
380
+ * 每一帧更新
381
+ * @param cb
382
+ * @param tag
383
+ */
384
+ update(cb: (dt: number) => void, tag?: string): void;
385
+ update(cb: (dt: number) => void, target?: TargetType): void;
386
+ update(cb: (dt: number) => void, tag?: string, target?: TargetType): void;
387
+ onUpdate(dt: number): void;
388
+ };
389
+
390
+ type EventManager = {
391
+ initialize(): void;
392
+ onDestroy(): void;
393
+ /**
394
+ * 注册事件
395
+ * @param eventName
396
+ * @param cb
397
+ * @param target
398
+ */
399
+ register(
400
+ eventName: string | number,
401
+ cb: (any) => void,
402
+ target: TargetType,
403
+ options?: {
404
+ priority?: FWSystemDefine.FWPriorityOrder;
405
+ intercept?: boolean;
406
+ },
407
+ );
408
+ /**
409
+ * 派发事件
410
+ * @param eventName
411
+ * @param args1
412
+ * @param args2
413
+ * @param args3
414
+ * @param args4
415
+ * @param args5
416
+ * @param args6
417
+ * @param args7
418
+ * @param args8
419
+ * @param args9
420
+ * @param args10
421
+ */
422
+ dispatch(
423
+ eventName: string | number,
424
+ args1?: FW.EventManagerArgs,
425
+ args2?: FW.EventManagerArgs,
426
+ args3?: FW.EventManagerArgs,
427
+ args4?: FW.EventManagerArgs,
428
+ args5?: FW.EventManagerArgs,
429
+ args6?: FW.EventManagerArgs,
430
+ args7?: FW.EventManagerArgs,
431
+ args8?: FW.EventManagerArgs,
432
+ args9?: FW.EventManagerArgs,
433
+ args10?: FW.EventManagerArgs,
434
+ ): void;
435
+ /**
436
+ * 注销事件
437
+ * @param eventName
438
+ */
439
+ unRegister(eventName: string | number, target: TargetType): void;
440
+
441
+ /**
442
+ * 注销所有事件
443
+ * @param eventName
444
+ */
445
+ eventOff(eventName: string | number): void;
446
+
447
+ /**
448
+ * 注销目标所有事件
449
+ * @param target
450
+ */
451
+ targetOff(target: TargetType): void;
452
+
453
+ /**
454
+ * 目标对象是否注册了指定事件
455
+ * @param eventName
456
+ * @param target
457
+ */
458
+ has(eventName: string | number, target: Comment | Object): boolean;
459
+
460
+ /**
461
+ * 暂停目标身上注册事件
462
+ * @param target
463
+ */
464
+ targetPause(target: TargetType): void;
465
+ /**
466
+ * 恢复目标身上注册事件
467
+ * @param target
468
+ */
469
+ targetResume(target: TargetType);
470
+ };
471
+
472
+ /**
473
+ * 事件管理参数
474
+ */
475
+ type EventManagerArgs = string | number | object | [];
476
+
477
+ /**
478
+ * 层级打开参数
479
+ */
480
+ type LayerOpenArgs<T> = {
481
+ /**
482
+ * 控制器类型
483
+ */
484
+ type: new () => T;
485
+ /**
486
+ * 父节点
487
+ */
488
+ parent?: cc.Node;
489
+ /**
490
+ * 坐标
491
+ */
492
+ position?: cc.Vec3;
493
+ /**
494
+ * 传递参数
495
+ */
496
+ args?: any;
497
+ };
498
+
499
+ /**
500
+ * 层级数据
501
+ */
502
+ type LayerData<T> = {
503
+ /**
504
+ * 外部引用
505
+ */
506
+ externalReference?: Set<(ref: LayerController | null) => void> = new Set();
507
+ /**
508
+ * 构造类
509
+ */
510
+ layerConstructor: new () => T;
511
+ /**
512
+ * 唯一id
513
+ */
514
+ uuid: string;
515
+ /**
516
+ * layer名字
517
+ */
518
+ layerName: string;
519
+ /**
520
+ * layer
521
+ */
522
+ layer: FWLayer;
523
+ /**
524
+ * layer资源属性
525
+ */
526
+ layerAssetProperty: AssetProperty;
527
+ /**
528
+ * layer类型
529
+ */
530
+ layerType: FWSystemDefine.FWLayerType;
531
+ /**
532
+ * layer渲染顺序
533
+ */
534
+ layerRenderOrder: FWSystemDefine.FWLayerRenderOrder;
535
+ /**
536
+ * layer控制器名字
537
+ */
538
+ controllerName: string;
539
+ /**
540
+ * layer控制器
541
+ */
542
+ controller: FWLayerController;
543
+ /**
544
+ * 是否加载完成
545
+ */
546
+ loaded: boolean;
547
+ /**
548
+ * layer父节点
549
+ */
550
+ layerParent?: cc.Node;
551
+ /**
552
+ * 坐标
553
+ */
554
+ layerPosition?: Vec3;
555
+ };
556
+
557
+ /**
558
+ * 层级管理器
559
+ */
560
+ type LayerManager = {
561
+ initialize(): void;
562
+ onDestroy(): void;
563
+ clear(): void;
564
+
565
+ /**
566
+ * 异步打开layer
567
+ * @param data
568
+ */
569
+ openAsync<Ctr extends FWLayerController = FWLayerController>(
570
+ data: LayerOpenArgs<Ctr>,
571
+ ): Promise<Ctr>;
572
+
573
+ /**
574
+ * 同步打开layer
575
+ * @param data
576
+ */
577
+ openSync<Ctr extends FWLayerController = FWLayerController>(data: LayerOpenArgs<Ctr>): Ctr;
578
+ /**
579
+ * 显示常驻layer
580
+ * @param layer
581
+ */
582
+ displayLayer<Ctr extends FWLayerController = FWLayerController>(ctr: Ctr): Ctr;
583
+ /**
584
+ * 隐藏常驻layer
585
+ * @param layer
586
+ */
587
+ hideLayer<Ctr extends FWLayerController = FWLayerController>(ctr: Ctr): Ctr;
588
+ /**
589
+ * 关闭layer
590
+ * @param layer
591
+ */
592
+ close<Ctr extends FWLayerController = FWLayerController>(ctr: Ctr): FWLayerController;
593
+
594
+ /**
595
+ * 从栈关闭
596
+ */
597
+ closeFromStack(count?: number): void;
598
+ /**
599
+ * 通过名字关闭
600
+ * @param name
601
+ */
602
+ closeFromLayerName(name: string | string[]);
603
+
604
+ getLayerMap(): Map<string, LayerData>;
605
+ };
606
+
607
+ /**
608
+ * 资源数据
609
+ */
610
+ type AssetData = {
611
+ /** 资源 */
612
+ asset: T;
613
+ /**
614
+ * 资源id
615
+ */
616
+ uuid: string;
617
+ /**
618
+ * 资源使用者
619
+ */
620
+ user: string;
621
+ /**
622
+ * 资源依赖
623
+ */
624
+ depend: string[];
625
+ /**
626
+ * 资源引用
627
+ */
628
+ reference: string[];
629
+ /**
630
+ * 资源类型
631
+ */
632
+ type: typeof cc.Asset;
633
+ /**
634
+ * 所属bundle
635
+ */
636
+ dependentBundle: string;
637
+ /**
638
+ * 是否加载完成
639
+ */
640
+ loaded: boolean;
641
+ /**
642
+ * 释放时是否从bundle内释放
643
+ */
644
+ autoRelease: boolean;
645
+ /**
646
+ * 资源引用计数
647
+ */
648
+ refCount: number;
649
+ };
650
+
651
+ type ResManager = {
652
+ assetMgr: AssetManager;
653
+ bundleMgr: BundleManager;
654
+ initialize(): void;
655
+ onDestroy(): void;
656
+
657
+ /**
658
+ * 加载包
659
+ * @param bundleName
660
+ */
661
+ loadBundle(bundleName: string): Promise<cc.AssetManager.Bundle>;
662
+ /**
663
+ * 获取包
664
+ * @param bundleName
665
+ */
666
+ getBundle(bundleName: string): cc.AssetManager.Bundle;
667
+ /**
668
+ * 获取所有bundle
669
+ */
670
+ getBundleMap(): Map<string, cc.AssetManager.Bundle>;
671
+ /**
672
+ * 释放包
673
+ * @param bundleName
674
+ */
675
+ releaseBundle(bundleName: string): void;
676
+ /**
677
+ * 包是否存在
678
+ * @param bundleName
679
+ */
680
+ hasBundle(bundleName: string): boolean;
681
+ /**
682
+ * 加载远程资源
683
+ * @param url
684
+ * @param cb
685
+ */
686
+ loadRemote<T extends cc.Asset = cc.Asset>(url: string, cb?: (asset: cc.Asset) => T): Promise<T>;
687
+ /**
688
+ * 从远程加载spine动画
689
+ * @param data
690
+ */
691
+ loadSpineDataFromRemote(data: {
692
+ img: string;
693
+ ske: string;
694
+ atlas: string;
695
+ bin?: boolean;
696
+ }): Promise<sp.SkeletonData>;
697
+
698
+ /**
699
+ * 加载资源返回数据
700
+ * @param assetProperty
701
+ */
702
+ loadAssetData<T extends cc.Asset>(assetProperty: AssetProperty): Promise<AssetData>;
703
+
704
+ /**
705
+ * 加载资源
706
+ * @param assetProperty
707
+ */
708
+ loadAsset<T extends cc.Asset>(assetProperty: AssetProperty, cb?: () => void): Promise<T>;
709
+
710
+ /**
711
+ * 获取资源
712
+ * @param assetProperty
713
+ */
714
+ getAssetData<T extends cc.Asset>(assetProperty: AssetProperty): AssetData;
715
+
716
+ /**
717
+ * 获取资源
718
+ * @param assetProperty
719
+ */
720
+ getAsset<T extends cc.Asset = cc.Asset>(assetProperty: AssetProperty): T;
721
+ /**
722
+ * 释放资源
723
+ * @param assetProperty
724
+ */
725
+ releaseAsset(assetProperty: AssetProperty): void;
726
+
727
+ /**
728
+ * 资源是否存在
729
+ * @param assetProperty
730
+ */
731
+ hasAsset(assetProperty: AssetProperty): boolean;
732
+ };
733
+
734
+ type RemoteBundleConfig = {
735
+ bundleName: string;
736
+ url: string;
737
+ hash: string;
738
+ };
739
+
740
+ type BundleManager = {
741
+ initialize();
742
+ onDestroy();
743
+ /**
744
+ * 初始化远程包配置
745
+ * @param config
746
+ */
747
+ initializeRemoteBundleConfig(config: FW.RemoteBundleConfig): void;
748
+
749
+ getBundleMap(): Map<string, cc.AssetManager.Bundle>;
750
+ /**
751
+ * 加载包
752
+ * @param bundleName
753
+ */
754
+ load(bundleName: string): Promise<AssetManager.Bundle>;
755
+
756
+ /**
757
+ * 获取包
758
+ * @param bundleName
759
+ */
760
+ get(bundleName: string): AssetManager.Bundle;
761
+
762
+ /**
763
+ * 释放包
764
+ * @param bundleName
765
+ */
766
+ release(bundleName: string): void;
767
+
768
+ /**
769
+ * 是否已经加载某个bundle
770
+ * @param bundleName
771
+ */
772
+ has(bundleName: string): boolean;
773
+ };
774
+
775
+ type AssetProperty = {
776
+ /**
777
+ * 资源id
778
+ */
779
+ resourceId?: number;
780
+ /**
781
+ * 所在bundle
782
+ */
783
+ bundle?: string;
784
+ /**
785
+ * 资源路径
786
+ */
787
+ path: string;
788
+ /**
789
+ * 资源类型
790
+ */
791
+ type?: typeof Asset;
792
+ /**
793
+ * 加载完成回调
794
+ * @param asset
795
+ * @returns
796
+ */
797
+ cb?: (asset: AssetData | AssetData[]) => void;
798
+ /**
799
+ * 进度回调
800
+ * @param finish
801
+ * @param total
802
+ * @param item
803
+ * @returns
804
+ */
805
+ progress?: (finish: number, total: number, item: RequestItem) => void;
806
+ /**
807
+ * 资源使用者
808
+ */
809
+ user?: string;
810
+ /**
811
+ * 是否需要自动释放
812
+ */
813
+ autoRelease?: boolean;
814
+ /**
815
+ * 是否优先加载
816
+ */
817
+ priorityLoaded?: boolean;
818
+ };
819
+
820
+ type HotUpdateManager = {
821
+ setListener(listener: HotUpdateListener): void;
822
+ update(localManifest: cc.Asset): void;
823
+ };
824
+
825
+ type HotUpdateListener = {
826
+ versionCompareHandle: (currentVersion: string, newVersion: string) => void;
827
+ checkHotUpdateHandle: (code: string) => void;
828
+ hotUpdatingHandle: (code: string, param: HotUpdatingParam) => void;
829
+ completedHandle: () => void;
830
+ retryHandle: () => void;
831
+ };
832
+
833
+ type HotUpdatingParam = {
834
+ downloadedFiles?: number;
835
+ totalFiles?: number;
836
+ downloadedBytes?: number;
837
+ totalBytes?: number;
838
+ percent?: number;
839
+ convertDownloadedBytes?: string;
840
+ convertTotalBytes?: string;
841
+ };
842
+
843
+ type AssetManager = {
844
+ initialize();
845
+ onDestroy();
846
+ /**
847
+ * 加载远程资源
848
+ * @param url
849
+ * @param cb
850
+ */
851
+ loadRemote<T extends cc.Asset = cc.Asset>(url: string, cb?: (asset: cc.Asset) => T): Promise<T>;
852
+ /**
853
+ * 从远程加载spine动画
854
+ * @param data
855
+ */
856
+ loadSpineDataFromRemote(data: {
857
+ img: string;
858
+ ske: string;
859
+ atlas: string;
860
+ bin?: boolean;
861
+ }): Promise<sp.SkeletonData>;
862
+
863
+ /**
864
+ * 加载资源
865
+ * @param asset
866
+ */
867
+ load(assetProperty: AssetProperty): Promise<AssetData>;
868
+
869
+ loadDir(assetProperty: FW.AssetProperty): Promise<FW.AssetData[]>;
870
+
871
+ /**
872
+ * 获取资源
873
+ * @param asset
874
+ */
875
+ get(assetProperty: FW.AssetProperty): AssetData;
876
+
877
+ /**
878
+ * 释放资源
879
+ */
880
+ release(assetProperty: AssetProperty): void;
881
+
882
+ /**
883
+ * 获取资源引用计数
884
+ * @param assetProperty
885
+ */
886
+ getReferenceCount(assetProperty: AssetProperty): number;
887
+
888
+ /**
889
+ * 是否已经加载
890
+ * @param uuid
891
+ */
892
+ has(assetProperty: AssetProperty): boolean;
893
+ };
894
+
895
+ type EngineManager = {
896
+ debug: boolean;
897
+ getMemory(): void;
898
+ };
899
+
900
+ type Layer = {
901
+ readonly entry: FW.Entry;
902
+ onLoad(): void;
903
+ start(): void;
904
+ onEnable(): void;
905
+ onDisable(): void;
906
+ onDestroy(): void;
907
+ update(dt: number): void;
908
+ lateUpdate(dt: number): void;
909
+ };
910
+ type LayerController = {
911
+ readonly entry: FW.Entry;
912
+
913
+ layerData: FWLayerData;
914
+ /** uuid */
915
+ uuid: string;
916
+ /** 渲染顺序 */
917
+ renderOrder: number;
918
+ /** 当前layer */
919
+ layer: FWLayer;
920
+ /** layer类型 */
921
+ layerType: FWSystemDefine.FWLayerType;
922
+ /** 资源地址 */
923
+ layerAssetProperty: FW.AssetProperty;
924
+ /** 关闭后是否自动释放资源 */
925
+ autoRelease: boolean;
926
+ /** 是否允许重复打开 */
927
+ isRepeatOpen: boolean;
928
+
929
+ /** 生命周期函数 */
930
+ onInit?(...args: any);
931
+ onLoad?();
932
+ onStart?();
933
+ onUpdate?(dt?: number);
934
+ onLateUpdate?(dt?: number);
935
+ onEnable?();
936
+ onDisable?();
937
+ onDestroy?();
938
+ onClose?();
939
+
940
+ /**
941
+ * 查找节点
942
+ * @param path
943
+ * @param referenceNode
944
+ * @returns
945
+ */
946
+ find(path: string, referenceNode: cc.Node): cc.Node;
947
+ /**
948
+ * 查找组件
949
+ * @param path
950
+ * @param referenceNode
951
+ * @param type
952
+ * @returns
953
+ */
954
+ findComponent<T extends cc.Component = cc.Component>(
955
+ path: string,
956
+ referenceNode: cc.Node,
957
+ type?: {
958
+ prototype: T;
959
+ },
960
+ ): T;
961
+ /** 指定注册CC事件 */
962
+ registerCCEvent(eventName: string, event: FW.CCEvent | FW.CCEvent[]): void;
963
+
964
+ /** 指定注册框架自定义事件 */
965
+ registerFWEvent(eventName: string, event: FW.FWEvent | FW.FWEvent[]): void;
966
+
967
+ registerEvent(args: FW.RegisterEventArgs | FW.RegisterEventArgs[]): void;
968
+
969
+ unRegisterEvent(args: FW.RegisterEventArgs);
970
+ unRegisterAll(): void;
971
+ unRegisterTarget(target: TargetType);
972
+ /** 暂停事件 */
973
+ pauseEvent();
974
+ /** 恢复事件 */
975
+ resumeEvent();
976
+ /** 关闭layer */
977
+ close();
978
+ };
979
+ type Logic = {
980
+ readonly entry: FW.Entry;
981
+ initialize?(): void;
982
+ onDestroy?(): void;
983
+ };
984
+ type Data = {
985
+ readonly entry: FW.Entry;
986
+ initialize?(): void;
987
+ onDestroy?(): void;
988
+ };
989
+
990
+ type CCEvent = {
991
+ cb: (...args: any) => void;
992
+ target: TargetType;
993
+ pause?: boolean;
994
+ };
995
+
996
+ type FWEvent = {
997
+ cb: (...args: any) => void;
998
+ target: any;
999
+ pause?: boolean;
1000
+ };
1001
+
1002
+ type RegisterEventArgs = {
1003
+ /** 事件名字 */
1004
+ eventName?: string;
1005
+ /**
1006
+ * CC事件
1007
+ */
1008
+ CCEvent?: CCEvent;
1009
+ /**
1010
+ * 注册事件对象
1011
+ */
1012
+ target: any;
1013
+ /**
1014
+ * 自定义事件
1015
+ */
1016
+ FWEvent?: FWEvent;
1017
+ /**
1018
+ * 上一次响应时间戳
1019
+ */
1020
+ lastResponseTimestamp?: number;
1021
+ /**
1022
+ * 响应间隔
1023
+ */
1024
+ responseInterval?: number;
1025
+ /**
1026
+ * 参数
1027
+ */
1028
+ data?: any;
1029
+ /**
1030
+ * 是否启用
1031
+ */
1032
+ enable?: boolean;
1033
+ };
1034
+
1035
+ /**
1036
+ * 时间调度器
1037
+ */
1038
+ type TimerSchedule = {
1039
+ /**
1040
+ * 时间对象
1041
+ */
1042
+ timer: Timer;
1043
+ /**
1044
+ * promise
1045
+ */
1046
+ promise?: Promise<void>;
1047
+ /**
1048
+ * 取消调度器
1049
+ */
1050
+ unSchedule(): void;
1051
+ /**
1052
+ * 暂停
1053
+ */
1054
+ pauseSchedule(): void;
1055
+ /**
1056
+ * 恢复
1057
+ */
1058
+ resumeSchedule(): void;
1059
+ };
1060
+
1061
+ type TaskManager = {
1062
+ /**
1063
+ * 创建任务
1064
+ * @param options
1065
+ *
1066
+ * frameBudget?: number; 每帧最大执行时间
1067
+ * tasksFrameCount?: number; 每帧最多执行的任务个数
1068
+ */
1069
+
1070
+ createTask(options: FW.TaskOptions): FW.Task;
1071
+ /**
1072
+ * 获取任务
1073
+ * @param taskId
1074
+ */
1075
+ getTask(taskId: number): FW.Task | undefined;
1076
+ /**
1077
+ * 移除任务
1078
+ * @param taskId
1079
+ */
1080
+ removeTask(taskId: number): void;
1081
+ /**
1082
+ * 获取所有任务
1083
+ */
1084
+ getAllTasks(): FW.Task[];
1085
+ };
1086
+
1087
+ type StateManager = {
1088
+ initialize(): void;
1089
+ onDestroy(): void;
1090
+ /**
1091
+ * 创建一个状态机
1092
+ * @param stateMachineName
1093
+ */
1094
+ createStateMachine(stateMachineName?: string): StateMachine;
1095
+ /**
1096
+ * 移除一个状态机
1097
+ * @param stateMachineName
1098
+ * @returns
1099
+ */
1100
+ removeStateMachine(stateMachineName?: string);
1101
+ /**
1102
+ * 暂停一个状态机
1103
+ * @param stateMachineName
1104
+ * @returns
1105
+ */
1106
+ pauseStateMachine(stateMachineName?: string);
1107
+ /**
1108
+ * 恢复状态机
1109
+ * @param stateMachineName
1110
+ * @returns
1111
+ */
1112
+ resumeStateMachine(stateMachineName?: string);
1113
+ /**
1114
+ * 注册状态进指定状态机
1115
+ * @param stateMachineName
1116
+ * @param state
1117
+ * @returns
1118
+ */
1119
+ register(
1120
+ state: FW.StateMachineRegisterArgs | FW.StateMachineRegisterArgs[],
1121
+ stateMachineName?: string,
1122
+ );
1123
+ /**
1124
+ * 注销指定状态机的某个状态
1125
+ * @param stateMachineName
1126
+ * @param stateType
1127
+ */
1128
+ unRegister(stateType: number, stateMachineName?: string);
1129
+ };
1130
+
1131
+ type AnimationManager = {
1132
+ initialize(): void;
1133
+ onDestroy(): void;
1134
+
1135
+ /**
1136
+ * 创建一个tween动画
1137
+ * @param args
1138
+ * @returns
1139
+ */
1140
+ createTween(args?: FW.TweenArgs): FW.Tween;
1141
+ /**
1142
+ * 创建一个skeleton动画
1143
+ * @param skeleton
1144
+ * @returns
1145
+ */
1146
+ createSkeleton(skeleton: sp.Skeleton): FW.Skeleton;
1147
+ /**
1148
+ * 获取一个skeleton动画
1149
+ * @param animationName
1150
+ * @returns
1151
+ */
1152
+ getSkeleton(animationName: string): FW.Skeleton;
1153
+
1154
+ /**
1155
+ * 暂停一个skeleton动画
1156
+ * @param animationName
1157
+ * @returns
1158
+ */
1159
+ pauseSkeleton(animationName: string): void;
1160
+
1161
+ /**
1162
+ * 恢复一个skeleton动画
1163
+ * @param animationName
1164
+ * @returns
1165
+ */
1166
+ resumeSkeleton(animationName: string): void;
1167
+
1168
+ /**
1169
+ * 移除一个skeleton动画
1170
+ * @param animationName
1171
+ * @returns
1172
+ */
1173
+ removeSkeleton(animationName: string): void;
1174
+
1175
+ /**
1176
+ * 暂停所有动画
1177
+ */
1178
+ pauseAll(): void;
1179
+ /**
1180
+ * 恢复所有动画
1181
+ * */
1182
+ resumeAll(): void;
1183
+ /**
1184
+ * 创建动画机
1185
+ * @param animationMachineName
1186
+ * @returns
1187
+ */
1188
+ createAnimationMachine(animationMachineName: string): void;
1189
+
1190
+ /**
1191
+ * 移除动画机
1192
+ * @param animationMachineName
1193
+ * @returns
1194
+ */
1195
+ removeAnimationMachine(animationMachineName: string): void;
1196
+ };
1197
+
1198
+ type Tween = {
1199
+ animationName: string;
1200
+ animation: cc.Tween;
1201
+ onInit?(): void;
1202
+ pause(): FW.Tween;
1203
+ resume(): FW.Tween;
1204
+ timeScale(scale: number): FW.Tween;
1205
+ start(): FW.Tween;
1206
+ stop(): FW.Tween;
1207
+ to<
1208
+ OPTS extends Partial<{
1209
+ progress: Function;
1210
+ easing: Function | String;
1211
+ onUpdate: Function;
1212
+ }>,
1213
+ >(
1214
+ duration: number,
1215
+ props: ConstructorType<T>,
1216
+ opts?: OPTS,
1217
+ ): FW.Tween;
1218
+ by<
1219
+ OPTS extends Partial<{
1220
+ progress: Function;
1221
+ easing: Function | String;
1222
+ onUpdate: Function;
1223
+ }>,
1224
+ >(
1225
+ duration: number,
1226
+ props: ConstructorType<T>,
1227
+ opts?: OPTS,
1228
+ ): FW.Tween;
1229
+ set(props: ConstructorType<T>): FW.Tween;
1230
+ };
1231
+
1232
+ type Skeleton = {
1233
+ play(args?: FW.SkeletonArgs): Promise<void>;
1234
+ play(animationName?: string, args?: FW.SkeletonArgs): Promise<void>;
1235
+ /** 设置皮肤 */
1236
+ setSkin(skinName: string);
1237
+ /** 更新数据 */
1238
+ updateSkeletonData(data: sp.SkeletonData);
1239
+
1240
+ getTrackEntry();
1241
+ /**
1242
+ * 是否存在动画名
1243
+ * @param animName
1244
+ * @returns
1245
+ */
1246
+ hasAnimation(animName: string);
1247
+ /**
1248
+ * 获取所有动画
1249
+ * @returns
1250
+ */
1251
+ getAnimations();
1252
+
1253
+ /**
1254
+ * 获取所有动画名字
1255
+ * @returns
1256
+ */
1257
+ getAnimationNames(): string[];
1258
+
1259
+ /** 速度缩放 */
1260
+ timeScale(timeScale: number);
1261
+ /**
1262
+ * 暂停
1263
+ */
1264
+ pause(): void;
1265
+ /**
1266
+ * 恢复
1267
+ */
1268
+ resume(): void;
1269
+ /**
1270
+ * 添加spine挂点
1271
+ * @param boneName
1272
+ * @param node
1273
+ */
1274
+ addBone(boneName: string, node: cc.Node);
1275
+ };
1276
+
1277
+ /**
1278
+ * spine动画参数
1279
+ */
1280
+ type SkeletonArgs = {
1281
+ loop?: boolean;
1282
+ timeScale?: number;
1283
+ progress?: number;
1284
+ cb?: () => void;
1285
+ };
1286
+ /**
1287
+ * tween动画参数
1288
+ */
1289
+ type TweenArgs = {
1290
+ id?: number;
1291
+ tag?: string;
1292
+ target?: Component | Node;
1293
+ timeScale?: number;
1294
+ };
1295
+
1296
+ /**
1297
+ * 时间对象
1298
+ */
1299
+
1300
+ type Timer = {
1301
+ /**
1302
+ * 状态改变调用
1303
+ */
1304
+ resolve: Function;
1305
+ /**
1306
+ * 是否暂停
1307
+ * */
1308
+ pause: boolean;
1309
+ /**
1310
+ * id
1311
+ */
1312
+ id: number;
1313
+ /**
1314
+ * 重复次数
1315
+ */
1316
+ repeat: number;
1317
+ /**
1318
+ * 目标对象
1319
+ */
1320
+ target: TargetType;
1321
+ /**
1322
+ * 执行间隔
1323
+ */
1324
+ internal?: number;
1325
+ /**
1326
+ * 标签
1327
+ */
1328
+ tag?: string;
1329
+
1330
+ /**
1331
+ * 执行时间
1332
+ */
1333
+ executeTime: number;
1334
+ /**
1335
+ * 回调函数
1336
+ * @returns
1337
+ */
1338
+ cb?: () => void;
1339
+ };
1340
+
1341
+ type Config = {
1342
+ preLoad?: LoadConfig;
1343
+ demandLoad?: LoadConfig;
1344
+ };
1345
+
1346
+ type RegisterInitialize = {
1347
+ initialize();
1348
+ destroy();
1349
+ };
1350
+
1351
+ type RegisterBundle = {
1352
+ bundleName: string;
1353
+ sceneName?: string;
1354
+ depend?: string[];
1355
+ autoRelease?: boolean;
1356
+ };
1357
+
1358
+ type RegisterFramework = {
1359
+ /**
1360
+ * bundle名字
1361
+ */
1362
+ bundleName: string;
1363
+ /**
1364
+ * 逻辑
1365
+ */
1366
+ logic?: Newable<Logic>;
1367
+ /**
1368
+ * 数据
1369
+ */
1370
+ data?: Newable<Data>;
1371
+ /**
1372
+ * 资源配置
1373
+ */
1374
+ config?: Newable<Config>;
1375
+ /**
1376
+ * socket发送者
1377
+ */
1378
+ sender?: Newable<Sender>;
1379
+ /**
1380
+ * socket处理者
1381
+ */
1382
+ handle?: Newable<Handle>;
1383
+ };
1384
+
1385
+ /**
1386
+ * 状态机
1387
+ */
1388
+ type State = {
1389
+ /**
1390
+ * 进入状态
1391
+ */
1392
+ onEnter(args: any): void;
1393
+ /**
1394
+ * 退出状态
1395
+ */
1396
+ onExit(): void;
1397
+ /**
1398
+ * 初始化
1399
+ */
1400
+ onInit(): void;
1401
+ /**
1402
+ * 销毁状态
1403
+ */
1404
+ onDestroy(): void;
1405
+ /**
1406
+ * 状态每一帧更新
1407
+ */
1408
+ onUpdate(dt?: number): void;
1409
+ };
1410
+
1411
+ type StateMachine = {
1412
+ state: number;
1413
+
1414
+ enter(stateType: number, ...args: any): void;
1415
+ /**
1416
+ * 暂停状态机
1417
+ * */
1418
+ pause();
1419
+ /**
1420
+ * 恢复状态机
1421
+ */
1422
+ resume();
1423
+ /**
1424
+ * 注册
1425
+ * @param type
1426
+ * @param state
1427
+ */
1428
+ register<T extends FWStateBase>(state: FW.StateMachineRegisterArgs<T>);
1429
+ /**
1430
+ * 注销
1431
+ * @param type
1432
+ */
1433
+ unRegister(stateType: number);
1434
+ onDestroy();
1435
+ };
1436
+
1437
+ /**
1438
+ * 状态机注册参数
1439
+ */
1440
+ type StateMachineRegisterArgs<T extends FWStateBase = FWStateBase> = {
1441
+ /**
1442
+ * 状态类型
1443
+ */
1444
+ stateType: number;
1445
+ /**
1446
+ * 状态构造类
1447
+ */
1448
+ stateConstructor: { new (): T };
1449
+ };
1450
+
1451
+ type AudioManager = {
1452
+ /**
1453
+ * 播放背景音乐
1454
+ * @param path
1455
+ * @param volume
1456
+ * @param loop
1457
+ */
1458
+ playMusic(path: string, volume?: number, loop?: boolean): void;
1459
+ /**
1460
+ * 播放背景音乐
1461
+ * @param music
1462
+ * @param volume
1463
+ * @param loop
1464
+ */
1465
+ playMusic(music: cc.AudioClip, volume?: number, loop?: boolean);
1466
+ /**
1467
+ * 播放背景音乐
1468
+ * @param assetProperty
1469
+ * @param volume
1470
+ * @param loop
1471
+ */
1472
+ playMusic(assetProperty: AssetProperty, volume?: number, loop?: boolean): void;
1473
+ /**
1474
+ * 停止背景音乐
1475
+ */
1476
+ stopMusic(): void;
1477
+ /**
1478
+ * 暂停背景音乐
1479
+ */
1480
+ pauseMusic(): void;
1481
+ /**
1482
+ * 恢复背景音乐
1483
+ */
1484
+ resumeMusic(): void;
1485
+ /**
1486
+ * 设置背景音效是否静音
1487
+ * @param mute
1488
+ */
1489
+ setMusicMute(mute: boolean): void;
1490
+ /**
1491
+ * 停止
1492
+ * @param id
1493
+ */
1494
+ stop(id: number): void;
1495
+ /**
1496
+ * 播放音效
1497
+ * @param path
1498
+ * @param volume
1499
+ * @param loop
1500
+ */
1501
+ play(path: string, cb?: (id: number) => void, volume?: number, loop?: boolean);
1502
+ /**
1503
+ * 播放音效
1504
+ * @param audio
1505
+ * @param volume
1506
+ * @param loop
1507
+ */
1508
+ play(audio: cc.AudioClip, cb?: (id: number) => void, volume?: number, loop?: boolean);
1509
+ /**
1510
+ * 播放音效
1511
+ * @param assetProperty
1512
+ * @param volume
1513
+ * @param loop
1514
+ */
1515
+ play(assetProperty: AssetProperty, cb?: (id: number) => void, volume?: number, loop?: boolean);
1516
+ /**
1517
+ * 暂停所有
1518
+ */
1519
+ pauseAll(): void;
1520
+ /**
1521
+ * 恢复所有
1522
+ */
1523
+ resumeAll(): void;
1524
+ /**
1525
+ * 停止所有
1526
+ */
1527
+ stopAll(): void;
1528
+ /**
1529
+ * 设置播放音效是否静音
1530
+ * @param mute
1531
+ */
1532
+ setSoundMute(mute: boolean): void;
1533
+ /**
1534
+ * 播放音效
1535
+ * @param path
1536
+ * @param loop
1537
+ */
1538
+ playEffect(path: string, loop?: boolean): Promise<number>;
1539
+ /**
1540
+ * 播放音效
1541
+ * @param audio
1542
+ * @param loop
1543
+ */
1544
+ playEffect(audio: cc.AudioClip, loop?: boolean): Promise<number>;
1545
+ /**
1546
+ * 播放音效
1547
+ * @param assetProperty
1548
+ * @param loop
1549
+ */
1550
+ playEffect(assetProperty: FW.AssetProperty, loop?: boolean): Promise<number>;
1551
+ /**
1552
+ * 停止音效
1553
+ * @param audioID
1554
+ */
1555
+ stopEffect(audioID: number): void;
1556
+ /**
1557
+ * 设置音效音量
1558
+ * @param volume
1559
+ */
1560
+ setEffectsVolume(volume: number): void;
1561
+ /**
1562
+ * 停止全部音效
1563
+ */
1564
+ stopAllEffects(): void;
1565
+ /**
1566
+ * 设置音效是否静音
1567
+ * @param mute
1568
+ */
1569
+ setEffectsMute(mute: boolean): void;
1570
+ };
1571
+
1572
+ type Object = {
1573
+ /** 是否已经初始化 */
1574
+ initialize: boolean;
1575
+ /** 对象唯一id */
1576
+ uniqueId: number;
1577
+ /** 对象是否启用 */
1578
+ enable: boolean;
1579
+ onGet(...args: any);
1580
+ onPut();
1581
+ onInit();
1582
+ onDestroy();
1583
+ };
1584
+
1585
+ type ObjectProperty<T extends Object = Object> = {
1586
+ /** 对象节点 */
1587
+ node?: cc.Node;
1588
+ /** 唯一id */
1589
+ uniqueId: number;
1590
+ /** 节点组件继承自FW.Object */
1591
+ component?: T;
1592
+ /** 是否启用 */
1593
+ enable?: boolean;
1594
+ };
1595
+
1596
+ type LoadConfig = {
1597
+ prefab?: {};
1598
+ texture?: {};
1599
+ animation?: {};
1600
+ font?: {};
1601
+ audio?: {};
1602
+ config?: {};
1603
+ };
1604
+
1605
+ type OpacityAnimationArgs = {
1606
+ target: cc.Node;
1607
+ duration: number;
1608
+ initOpacity?: number;
1609
+ targetOpacity: number;
1610
+ cb?: () => void;
1611
+ };
1612
+
1613
+ type ScaleAnimationArgs = {
1614
+ target: cc.Node;
1615
+ duration: number;
1616
+ initScale?: number;
1617
+ targetScale: number;
1618
+ easing?: cc.Easing;
1619
+ cb?: () => void;
1620
+ };
1621
+
1622
+ type PositionAnimationArgs = {
1623
+ target: cc.Node;
1624
+ duration: number;
1625
+ initPosition?: Vec3;
1626
+ targetPosition: Vec3;
1627
+ cb?: () => void;
1628
+ };
1629
+
1630
+ type Vec3 = {
1631
+ x?: number;
1632
+ y?: number;
1633
+ z?: number;
1634
+ };
1635
+
1636
+ type Vec2 = {
1637
+ x?: number;
1638
+ y?: number;
1639
+ };
1640
+
1641
+ type VirtualViewListener = (item: cc.Node, id: number, ...data: any) => void;
1642
+ type VirtualViewComponentArgs = {
1643
+ /**
1644
+ * 列表个数
1645
+ */
1646
+ count: number;
1647
+ /**
1648
+ * 渲染事件
1649
+ */
1650
+ onRender?: VirtualViewListener;
1651
+ /**
1652
+ * 页面更改事件
1653
+ */
1654
+ onPageChange?: VirtualViewListener;
1655
+ /**
1656
+ * 选择事件
1657
+ */
1658
+ onSelected?: VirtualViewListener;
1659
+ /**
1660
+ * 注册目标
1661
+ */
1662
+ target: any;
1663
+ /**
1664
+ * 虚拟列表组件
1665
+ */
1666
+ virtualView: VirtualViewComponent;
1667
+ /**
1668
+ * 预制体
1669
+ */
1670
+ templatePrefab?: cc.Prefab;
1671
+ /**
1672
+ * 节点
1673
+ */
1674
+ templateNode?: cc.Node;
1675
+ };
1676
+
1677
+ type VirtualViewComponent = {
1678
+ /**
1679
+ * 列表个数
1680
+ */
1681
+ count: number;
1682
+ /**
1683
+ * 渲染事件
1684
+ */
1685
+ onRender?: VirtualViewListener;
1686
+ /**
1687
+ * 页面更改事件
1688
+ */
1689
+ onPageChange?: VirtualViewListener;
1690
+ /**
1691
+ * 选择事件
1692
+ */
1693
+ onSelected?: VirtualViewListener;
1694
+ /**
1695
+ * 预制体
1696
+ */
1697
+ templatePrefab?: cc.Prefab;
1698
+ /**
1699
+ * 节点
1700
+ */
1701
+ templateNode?: cc.Node;
1702
+ };
1703
+
1704
+ interface ILanguageBundleAccessor {
1705
+ [bundleName: string]: any;
1706
+ getString: <T extends string>(key: string) => T;
1707
+ }
1708
+
1709
+ type TaskOptions = {
1710
+ taskId?: number;
1711
+ /**
1712
+ * 每帧最大执行时间(ms),默认16ms (60fps) 帧预算
1713
+ */
1714
+ frameBudget?: number;
1715
+ /**
1716
+ * 每帧最多执行的任务个数
1717
+ */
1718
+ tasksFrameCount?: number;
1719
+ /**
1720
+ * 是否打印日志
1721
+ */
1722
+ log?: boolean;
1723
+ };
1724
+
1725
+ type TaskEvent = {
1726
+ taskId?: string;
1727
+ type: string;
1728
+ progress?: number;
1729
+ message?: string;
1730
+ };
1731
+ /**
1732
+ * 生产器
1733
+ */
1734
+ type TaskGenerator = AsyncGenerator<TaskEvent, void, unknown>;
1735
+ /**
1736
+ * 任务函数
1737
+ */
1738
+ type TaskFunction = () => TaskGenerator;
1739
+
1740
+ type PerformanceReport = {
1741
+ startTime: string;
1742
+ endTime: string;
1743
+ totalTasks: number;
1744
+ avgFrameTime: number;
1745
+ longestFrame: number;
1746
+ shortestFrame: number;
1747
+ totalFrames: number;
1748
+ frameJitter: number;
1749
+ budgetUsage: number;
1750
+ totalDuration: number;
1751
+ frameDetails: FrameDetail[];
1752
+ timeline: Array<{
1753
+ type: string;
1754
+ progress?: number;
1755
+ message?: string;
1756
+ }>;
1757
+ };
1758
+
1759
+ /**
1760
+ * 任务
1761
+ */
1762
+ type Task = {
1763
+ /** id */
1764
+ readonly id: number;
1765
+ /**
1766
+ * 获取当前任务状态
1767
+ */
1768
+ getStatus(): FWSystemDefine.FWTaskStatus;
1769
+ /**
1770
+ * 任务开始
1771
+ * @param generator
1772
+ */
1773
+ start(generator: TaskFunction): Promise<Task>;
1774
+ /**
1775
+ * 添加任务
1776
+ * @param generator
1777
+ */
1778
+ add(generator: TaskFunction): Promise<Task>;
1779
+ /**
1780
+ * 任务暂停
1781
+ */
1782
+ pause(): void;
1783
+ /**
1784
+ * 任务恢复
1785
+ */
1786
+ resume(): void;
1787
+ /**
1788
+ * 重置
1789
+ */
1790
+ reset(): void;
1791
+ /**
1792
+ * 获取任务性能报告
1793
+ */
1794
+ getPerformanceReport(): PerformanceReport;
1795
+ };
1796
+
1797
+ type FrameDetail = {
1798
+ /**
1799
+ * 帧开始时间
1800
+ */
1801
+ frameStart: string;
1802
+ /**
1803
+ * 帧结束时间
1804
+ */
1805
+ frameEnd: string;
1806
+ /**
1807
+ * 总耗时
1808
+ */
1809
+ frameTime: number;
1810
+ /**
1811
+ * 本帧处理的任务数
1812
+ */
1813
+ tasksProcessed: number;
1814
+ /**
1815
+ * 本帧处理的任务详情
1816
+ */
1817
+ tasks: TaskExecutionRecord[];
1818
+ /**
1819
+ * 帧预算时间
1820
+ */
1821
+ frameBudget: number;
1822
+ /**
1823
+ * 预算使用率
1824
+ */
1825
+ frameBudgetUsed: number;
1826
+ };
1827
+
1828
+ type TaskExecutionRecord = {
1829
+ /**
1830
+ * 任务唯一标识
1831
+ */
1832
+ taskId: string;
1833
+ /**
1834
+ * 任务结果
1835
+ */
1836
+ result: string;
1837
+ /**
1838
+ * 消息
1839
+ */
1840
+ message?: string;
1841
+ };
1842
+
1843
+ declare function timeScale(scale: number);
1844
+ declare let Entry: Entry;
1845
+ }