@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.
- package/FW.d.ts +1845 -0
- package/FW.d.ts.meta +6 -0
- package/Framework.ts +148 -0
- package/Framework.ts.meta +10 -0
- package/README.md +93 -0
- package/README.md.meta +6 -0
- package/animation/FWAnimation.ts +13 -0
- package/animation/FWAnimation.ts.meta +10 -0
- package/animation/FWSkeleton.ts +176 -0
- package/animation/FWSkeleton.ts.meta +10 -0
- package/animation/FWTween.ts +60 -0
- package/animation/FWTween.ts.meta +10 -0
- package/animation.meta +13 -0
- package/component/FWVirtualViewComponent.ts +2080 -0
- package/component/FWVirtualViewComponent.ts.meta +10 -0
- package/component.meta +13 -0
- package/config/FWAssetConfig.ts +7 -0
- package/config/FWAssetConfig.ts.meta +10 -0
- package/config.meta +13 -0
- package/controller/FWLayerController.ts +236 -0
- package/controller/FWLayerController.ts.meta +10 -0
- package/controller.meta +13 -0
- package/data/FWData.ts +10 -0
- package/data/FWData.ts.meta +10 -0
- package/data.meta +13 -0
- package/define/FWEventDefine.ts +26 -0
- package/define/FWEventDefine.ts.meta +10 -0
- package/define/FWSystemDefine.ts +133 -0
- package/define/FWSystemDefine.ts.meta +10 -0
- package/define.meta +13 -0
- package/entry/FWEntry.ts +196 -0
- package/entry/FWEntry.ts.meta +10 -0
- package/entry.meta +13 -0
- package/expand/FWCocosExpand.ts +73 -0
- package/expand/FWCocosExpand.ts.meta +10 -0
- package/expand/FWDecorator.ts +256 -0
- package/expand/FWDecorator.ts.meta +10 -0
- package/expand/FWRollingViewNesting.ts +191 -0
- package/expand/FWRollingViewNesting.ts.meta +10 -0
- package/expand/FWTweenExpand.ts +44 -0
- package/expand/FWTweenExpand.ts.meta +10 -0
- package/expand.meta +13 -0
- package/item/FWVirtualListItem.ts +150 -0
- package/item/FWVirtualListItem.ts.meta +10 -0
- package/item.meta +13 -0
- package/language/FWLanguage.ts +69 -0
- package/language/FWLanguage.ts.meta +10 -0
- package/language/FWLanguageLabelLocalize.ts +144 -0
- package/language/FWLanguageLabelLocalize.ts.meta +10 -0
- package/language/FWLanguageSkeletonLocalize.ts +106 -0
- package/language/FWLanguageSkeletonLocalize.ts.meta +10 -0
- package/language/FWLanguageSpriteLocalize.ts +81 -0
- package/language/FWLanguageSpriteLocalize.ts.meta +10 -0
- package/language.meta +13 -0
- package/layer/FWLayer.ts +13 -0
- package/layer/FWLayer.ts.meta +10 -0
- package/layer.meta +13 -0
- package/log/FWLog.ts +115 -0
- package/log/FWLog.ts.meta +10 -0
- package/log.meta +13 -0
- package/logic/FWLogic.ts +10 -0
- package/logic/FWLogic.ts.meta +10 -0
- package/logic.meta +13 -0
- package/machine/FWAnimationMachine.ts +28 -0
- package/machine/FWAnimationMachine.ts.meta +10 -0
- package/machine/FWStateMachine.ts +75 -0
- package/machine/FWStateMachine.ts.meta +10 -0
- package/machine.meta +13 -0
- package/manager/FWAnimationManager.ts +128 -0
- package/manager/FWAnimationManager.ts.meta +10 -0
- package/manager/FWAssetManager.ts +349 -0
- package/manager/FWAssetManager.ts.meta +10 -0
- package/manager/FWAudioManager.ts +289 -0
- package/manager/FWAudioManager.ts.meta +10 -0
- package/manager/FWBundleManager.ts +91 -0
- package/manager/FWBundleManager.ts.meta +10 -0
- package/manager/FWComponentManager.ts +25 -0
- package/manager/FWComponentManager.ts.meta +10 -0
- package/manager/FWEngineManager.ts +63 -0
- package/manager/FWEngineManager.ts.meta +10 -0
- package/manager/FWEventManager.ts +275 -0
- package/manager/FWEventManager.ts.meta +10 -0
- package/manager/FWHotUpdateManager.ts +213 -0
- package/manager/FWHotUpdateManager.ts.meta +10 -0
- package/manager/FWLanguageManager.ts +116 -0
- package/manager/FWLanguageManager.ts.meta +10 -0
- package/manager/FWLayerManager.ts +490 -0
- package/manager/FWLayerManager.ts.meta +10 -0
- package/manager/FWManager.ts +8 -0
- package/manager/FWManager.ts.meta +10 -0
- package/manager/FWObjectManager.ts +91 -0
- package/manager/FWObjectManager.ts.meta +10 -0
- package/manager/FWResManager.ts +171 -0
- package/manager/FWResManager.ts.meta +10 -0
- package/manager/FWSocketManager.ts +94 -0
- package/manager/FWSocketManager.ts.meta +10 -0
- package/manager/FWStateManager.ts +102 -0
- package/manager/FWStateManager.ts.meta +10 -0
- package/manager/FWTaskManager.ts +38 -0
- package/manager/FWTaskManager.ts.meta +10 -0
- package/manager/FWTimeManager.ts +473 -0
- package/manager/FWTimeManager.ts.meta +10 -0
- package/manager/FWUiManager.ts +164 -0
- package/manager/FWUiManager.ts.meta +10 -0
- package/manager.meta +13 -0
- package/package.json +17 -0
- package/package.json.meta +6 -0
- package/scene/FWScene.ts +25 -0
- package/scene/FWScene.ts.meta +10 -0
- package/scene.meta +13 -0
- package/service/FWService.ts +7 -0
- package/service/FWService.ts.meta +10 -0
- package/service/http/FWHttp.ts +70 -0
- package/service/http/FWHttp.ts.meta +10 -0
- package/service/http.meta +13 -0
- package/service/socket/FWSocket.ts +236 -0
- package/service/socket/FWSocket.ts.meta +10 -0
- package/service/socket/FWSocketHandle.ts +17 -0
- package/service/socket/FWSocketHandle.ts.meta +10 -0
- package/service/socket/FWSocketSender.ts +16 -0
- package/service/socket/FWSocketSender.ts.meta +10 -0
- package/service/socket.meta +13 -0
- package/service.meta +13 -0
- package/state/FWState.ts +8 -0
- package/state/FWState.ts.meta +10 -0
- package/state.meta +13 -0
- package/utils/FWLodash.ts +105 -0
- package/utils/FWLodash.ts.meta +10 -0
- package/utils/FWMask.ts +222 -0
- package/utils/FWMask.ts.meta +10 -0
- package/utils/FWObject.ts +22 -0
- package/utils/FWObject.ts.meta +10 -0
- package/utils/FWObjectPool.ts +178 -0
- package/utils/FWObjectPool.ts.meta +10 -0
- package/utils/FWQueue.ts +47 -0
- package/utils/FWQueue.ts.meta +10 -0
- package/utils/FWTask.ts +223 -0
- package/utils/FWTask.ts.meta +10 -0
- 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,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,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,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
|
+
}
|