@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
@@ -0,0 +1,171 @@
1
+ import { FWAssetManager } from './FWAssetManager';
2
+ import { FWBundleManager } from './FWBundleManager';
3
+ import { FWManager } from './FWManager';
4
+
5
+ export class FWResManager extends FWManager implements FW.ResManager {
6
+ bundleMgr: FW.BundleManager;
7
+ assetMgr: FW.AssetManager;
8
+
9
+ public initialize() {
10
+ this.bundleMgr = new FWBundleManager(this);
11
+ this.assetMgr = new FWAssetManager(this);
12
+ this.bundleMgr.initialize();
13
+ this.assetMgr.initialize();
14
+ }
15
+
16
+ /**
17
+ * 加载bundle
18
+ * @param bundleName
19
+ * @returns
20
+ */
21
+ async loadBundle(bundleName: string): Promise<cc.AssetManager.Bundle> {
22
+ return this.bundleMgr.load(bundleName);
23
+ }
24
+ /**
25
+ * 从远程加载spine动画
26
+ * @param data
27
+ * @returns sp.skeletonData
28
+ */
29
+ async loadSpineDataFromRemote(data: {
30
+ img: string;
31
+ ske: string;
32
+ atlas: string;
33
+ bin?: boolean;
34
+ }): Promise<sp.SkeletonData> {
35
+ return await this.assetMgr.loadSpineDataFromRemote(data);
36
+ }
37
+
38
+ async loadRemote<T extends cc.Asset = cc.Asset>(url: string, cb: (asset: any) => T): Promise<T> {
39
+ const asset = await this.assetMgr.loadRemote(url);
40
+ if (asset instanceof cc.Texture2D) {
41
+ return new cc.SpriteFrame(asset) as unknown as T;
42
+ } else {
43
+ return asset as T;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * 获取bundle
49
+ * @param bundleName
50
+ * @returns
51
+ */
52
+ getBundle(bundleName: string): cc.AssetManager.Bundle {
53
+ return this.bundleMgr.get(bundleName);
54
+ }
55
+
56
+ getBundleMap(): Map<string, cc.AssetManager.Bundle> {
57
+ return this.bundleMgr.getBundleMap();
58
+ }
59
+
60
+ initializeRemoteBundleConfig(config: FW.RemoteBundleConfig) {
61
+ return this.bundleMgr.initializeRemoteBundleConfig(config);
62
+ }
63
+ /**
64
+ * 释放bundle
65
+ * @param bundleName
66
+ * @returns
67
+ */
68
+ releaseBundle(bundleName: string): void {
69
+ this.bundleMgr.release(bundleName);
70
+ }
71
+
72
+ /**
73
+ * 加载资源数据
74
+ * @param bundleName
75
+ * @returns
76
+ */
77
+ async loadAssetData<T extends cc.Asset>(assetProperty: FW.AssetProperty) {
78
+ return this.dataProcessing<T>(await this.assetMgr.load(assetProperty));
79
+ }
80
+ /**
81
+ * 加载资源
82
+ * @param assetProperty
83
+ * @returns
84
+ */
85
+ async loadAsset<T extends cc.Asset>(assetProperty: FW.AssetProperty): Promise<T> {
86
+ const res = await this.assetMgr.load(assetProperty);
87
+ return this.dataProcessing<T>(res).asset as T;
88
+ }
89
+
90
+ /**
91
+ * 加载文件夹
92
+ */
93
+ async loadDir(assetProperty: FW.AssetProperty) {
94
+ const res = await this.assetMgr.loadDir(assetProperty);
95
+
96
+ return res;
97
+ }
98
+
99
+ /**
100
+ * 获取资源数据
101
+ * @param bundleName
102
+ * @returns
103
+ */
104
+ getAssetData<T extends cc.Asset>(assetProperty: FW.AssetProperty) {
105
+ return this.dataProcessing<T>(this.assetMgr.get(assetProperty));
106
+ }
107
+ /**
108
+ * 获取资源
109
+ * @param assetProperty
110
+ * @returns
111
+ */
112
+ getAsset<T extends cc.Asset>(assetProperty: FW.AssetProperty): T {
113
+ return this.dataProcessing<T>(this.assetMgr.get(assetProperty)).asset as T;
114
+ }
115
+
116
+ /**
117
+ * 释放资源
118
+ * @param bundleName
119
+ * @returns
120
+ */
121
+ releaseAsset(assetProperty: FW.AssetProperty): void {
122
+ this.assetMgr.release(assetProperty);
123
+ }
124
+ /**
125
+ * 包是否存在
126
+ * @param bundleName
127
+ */
128
+ hasBundle(bundleName: string): boolean {
129
+ return this.bundleMgr.has(bundleName);
130
+ }
131
+ /**
132
+ * 资源是否存在
133
+ * @param assetProperty
134
+ */
135
+ hasAsset(assetProperty: FW.AssetProperty): boolean {
136
+ return this.assetMgr.has(assetProperty);
137
+ }
138
+
139
+ /**
140
+ * 数据处理
141
+ * @param res
142
+ * @returns
143
+ */
144
+ private dataProcessing<T extends cc.Asset>(res: FW.AssetData) {
145
+ let asset: cc.Asset;
146
+
147
+ if (res.asset instanceof cc.Texture2D) {
148
+ asset = new cc.SpriteFrame(res.asset);
149
+ } else {
150
+ asset = res.asset as T;
151
+ }
152
+
153
+ return {
154
+ asset: asset,
155
+ uuid: res.uuid,
156
+ user: res.user,
157
+ depend: res.depend,
158
+ reference: res.reference,
159
+ type: res.type,
160
+ dependentBundle: res.dependentBundle,
161
+ autoRelease: res.autoRelease,
162
+ loaded: res.loaded,
163
+ refCount: res.refCount,
164
+ };
165
+ }
166
+
167
+ public onDestroy(): void {
168
+ this.assetMgr.onDestroy();
169
+ this.bundleMgr.onDestroy();
170
+ }
171
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "fcb5dbc8-82ed-473e-bc81-c3b9b11a6ac6",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -0,0 +1,94 @@
1
+ import FWLog from '../log/FWLog';
2
+ import FWSocket from '../service/socket/FWSocket';
3
+ import FWSocketHandle from '../service/socket/FWSocketHandle';
4
+ import FWSocketSender from '../service/socket/FWSocketSender';
5
+ import { FWManager } from './FWManager';
6
+
7
+ /**
8
+ * socket管理器
9
+ */
10
+ export default class FWSocketManager extends FWManager implements FW.SocketManager {
11
+ protected socketMap: Map<string, FW.Socket>;
12
+
13
+ public initialize(): void {
14
+ this.socketMap = new Map<string, FW.Socket>();
15
+ }
16
+ public onDestroy(): void {}
17
+
18
+ /**
19
+ * 创建一个socket
20
+ * @param address
21
+ * heartTimeout:number 毫秒
22
+ * heartWeakTime: number 毫秒
23
+ * heartInternal: number 毫秒
24
+ */
25
+ async createSocket(
26
+ tag: string,
27
+ address: string,
28
+ sender: FWSocketSender,
29
+ handle: FWSocketHandle,
30
+ config: {
31
+ heartTimeout: number;
32
+ heartWeakTime: number;
33
+ heartInternal: number;
34
+ maxReconnectTimes: number;
35
+ reconnectInternal: number;
36
+ },
37
+ ) {
38
+ const proxy = new FWSocket().createSocket(address, tag, sender, handle, {
39
+ heartTimeout: config?.heartTimeout,
40
+ heartWeakTime: config?.heartWeakTime,
41
+ heartInternal: config?.heartInternal,
42
+ maxReconnectTimes: config?.maxReconnectTimes,
43
+ reconnectInternal: config?.reconnectInternal,
44
+ });
45
+ this.socketMap.set(tag, proxy.socket);
46
+
47
+ await proxy.promise();
48
+
49
+ return proxy.socket;
50
+ }
51
+ /**
52
+ * 获取socket
53
+ * @param type
54
+ * @returns
55
+ */
56
+ getSocket(tag?: string) {
57
+ if (!this.socketMap.has(tag)) {
58
+ for (const [key, value] of this.socketMap) {
59
+ return value;
60
+ }
61
+ }
62
+ return this.socketMap.get(tag);
63
+ }
64
+
65
+ getSocketMap() {
66
+ return this.socketMap;
67
+ }
68
+ /** 暂停消息处理 */
69
+ pauseMessageHandle() {
70
+ for (const [key, socket] of this.socketMap) {
71
+ socket.pauseMessageHandle();
72
+ }
73
+ }
74
+
75
+ /** 恢复消息处理 */
76
+ resumeMessageHandle() {
77
+ for (const [key, socket] of this.socketMap) {
78
+ socket.resumeMessageHandle();
79
+ }
80
+ }
81
+
82
+ /**
83
+ * 关闭
84
+ * @param fs
85
+ * @returns
86
+ */
87
+ closeSocket(fs: FWSocket) {
88
+ FWLog.debug('主动关闭socket!');
89
+ const tag = fs.getTag();
90
+ fs.socket.close();
91
+ fs.socket = null;
92
+ this.socketMap.delete(tag);
93
+ }
94
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "0100af82-a0d2-4359-b2b7-3a384f150ce1",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -0,0 +1,102 @@
1
+ import { FWManager } from './FWManager';
2
+ import Framework from '../Framework';
3
+ import FWLog from '../log/FWLog';
4
+ import FWStateMachine from '../machine/FWStateMachine';
5
+
6
+ export class FWStateManager extends FWManager implements FW.StateManager {
7
+ private stateMap: Map<string, FWStateMachine>;
8
+
9
+ public initialize(): void {
10
+ this.stateMap = new Map<string, FWStateMachine>();
11
+ }
12
+
13
+ /**
14
+ * 注册状态进指定状态机
15
+ * @param stateMachineName
16
+ * @param state
17
+ * @returns
18
+ */
19
+ register(
20
+ state: FW.StateMachineRegisterArgs | FW.StateMachineRegisterArgs[],
21
+ stateMachineName?: string,
22
+ ) {
23
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
24
+
25
+ if (!this.stateMap.has(stateMachineName)) {
26
+ FWLog.warn('stateMachine is not register!');
27
+ return;
28
+ }
29
+ const machine = this.stateMap.get(stateMachineName);
30
+
31
+ if (Array.isArray(state)) {
32
+ state.forEach((v) => machine.register(v));
33
+ } else {
34
+ machine.register(state);
35
+ }
36
+ }
37
+ /**
38
+ * 注销指定状态机的某个状态
39
+ * @param stateMachineName
40
+ * @param stateType
41
+ */
42
+ unRegister(stateType: number, stateMachineName?: string) {
43
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
44
+ if (!this.stateMap.has(stateMachineName)) {
45
+ FWLog.warn('stateMachine is not register!');
46
+ return;
47
+ }
48
+ this.stateMap.get(stateMachineName).unRegister(stateType);
49
+ }
50
+
51
+ /**
52
+ * 创建一个状态机
53
+ * @param stateMachineName
54
+ */
55
+ createStateMachine(stateMachineName?: string): FW.StateMachine {
56
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
57
+ if (this.stateMap.has(stateMachineName)) {
58
+ this.stateMap.delete(stateMachineName);
59
+ }
60
+ const machine = new FWStateMachine();
61
+ this.stateMap.set(stateMachineName, machine);
62
+ return machine;
63
+ }
64
+ /**
65
+ * 移除一个状态机
66
+ * @param stateMachineName
67
+ * @returns
68
+ */
69
+ removeStateMachine(stateMachineName?: string) {
70
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
71
+ if (!this.stateMap.has(stateMachineName)) {
72
+ return;
73
+ }
74
+ this.stateMap.delete(stateMachineName);
75
+ }
76
+ /**
77
+ * 暂停一个状态机
78
+ * @param stateMachineName
79
+ * @returns
80
+ */
81
+ pauseStateMachine(stateMachineName?: string) {
82
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
83
+ if (!this.stateMap.has(stateMachineName)) {
84
+ return;
85
+ }
86
+ this.stateMap.get(stateMachineName).pause();
87
+ }
88
+ /**
89
+ * 恢复状态机
90
+ * @param stateMachineName
91
+ * @returns
92
+ */
93
+ resumeStateMachine(stateMachineName?: string) {
94
+ stateMachineName = stateMachineName || FW.Entry.bundleName;
95
+ if (!this.stateMap.has(stateMachineName)) {
96
+ this.createStateMachine(stateMachineName);
97
+ }
98
+ this.stateMap.get(stateMachineName).resume();
99
+ }
100
+
101
+ public onDestroy(): void {}
102
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "23fb111f-4904-4335-9433-f24147af47c9",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }
@@ -0,0 +1,38 @@
1
+ import FWTask from '../utils/FWTask';
2
+ import { FWManager } from './FWManager';
3
+
4
+ export default class FWTaskManager extends FWManager implements FW.TaskManager {
5
+ public initialize(): void {}
6
+ public onDestroy(): void {}
7
+ /**
8
+ * 任务合集
9
+ */
10
+ private tasks: Map<number, FWTask> = new Map();
11
+ /**
12
+ * 任务id
13
+ */
14
+ private taskId = 0;
15
+
16
+ createTask(options: FW.TaskOptions): FW.Task {
17
+ const task = new FWTask({
18
+ tasksFrameCount: options?.tasksFrameCount,
19
+ frameBudget: options?.frameBudget,
20
+ taskId: options?.taskId || ++this.taskId,
21
+ log: options?.log,
22
+ });
23
+ this.tasks.set(task.id, task);
24
+ return task;
25
+ }
26
+
27
+ getTask(taskId: number): FW.Task | undefined {
28
+ return this.tasks.get(taskId);
29
+ }
30
+
31
+ removeTask(taskId: number): void {
32
+ this.tasks.delete(taskId);
33
+ }
34
+
35
+ getAllTasks(): FW.Task[] {
36
+ return Array.from(this.tasks.values());
37
+ }
38
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "ver": "1.1.0",
3
+ "uuid": "cd43dfbe-fd5d-4f6b-94de-01bc5c0a8368",
4
+ "importer": "typescript",
5
+ "isPlugin": false,
6
+ "loadPluginInWeb": true,
7
+ "loadPluginInNative": true,
8
+ "loadPluginInEditor": false,
9
+ "subMetas": {}
10
+ }