@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,106 @@
|
|
|
1
|
+
import { FWLodash } from '../utils/FWLodash';
|
|
2
|
+
import FWLanguage from './FWLanguage';
|
|
3
|
+
|
|
4
|
+
const { ccclass, property, menu, requireComponent } = cc._decorator;
|
|
5
|
+
|
|
6
|
+
const languageEnum = FWLodash.CCEnum([
|
|
7
|
+
'请选择语言',
|
|
8
|
+
...FW.Entry.languageMgr.getSupportedLanguages(),
|
|
9
|
+
]);
|
|
10
|
+
@ccclass('FWLanguageSkeleton')
|
|
11
|
+
class FWLanguageSkeleton {
|
|
12
|
+
@property({
|
|
13
|
+
type: languageEnum,
|
|
14
|
+
displayName: 'language',
|
|
15
|
+
visible: true,
|
|
16
|
+
serializable: true,
|
|
17
|
+
})
|
|
18
|
+
language: number = 0;
|
|
19
|
+
|
|
20
|
+
@property({
|
|
21
|
+
type: sp.SkeletonData,
|
|
22
|
+
displayName: 'skeletonData',
|
|
23
|
+
serializable: true,
|
|
24
|
+
})
|
|
25
|
+
skeleton: sp.SkeletonData = null;
|
|
26
|
+
|
|
27
|
+
@property({
|
|
28
|
+
visible: true,
|
|
29
|
+
serializable: true,
|
|
30
|
+
displayName: 'loop',
|
|
31
|
+
})
|
|
32
|
+
loop: boolean = true;
|
|
33
|
+
|
|
34
|
+
@property({
|
|
35
|
+
visible: true,
|
|
36
|
+
serializable: true,
|
|
37
|
+
displayName: 'premultipliedAlpha',
|
|
38
|
+
})
|
|
39
|
+
premultipliedAlpha: boolean = false;
|
|
40
|
+
|
|
41
|
+
@property({
|
|
42
|
+
visible: true,
|
|
43
|
+
serializable: true,
|
|
44
|
+
displayName: 'timeScale',
|
|
45
|
+
})
|
|
46
|
+
timeScale: number = 1;
|
|
47
|
+
}
|
|
48
|
+
@ccclass
|
|
49
|
+
@menu('Language/FWLanguageSkeletonLocalize')
|
|
50
|
+
@requireComponent(sp.Skeleton)
|
|
51
|
+
export default class FWLanguageSkeletonLocalize extends FWLanguage {
|
|
52
|
+
@property
|
|
53
|
+
private _inspector: FWLanguageSkeleton[] = [];
|
|
54
|
+
private _skeleton: sp.Skeleton;
|
|
55
|
+
private _animation: FW.Skeleton;
|
|
56
|
+
|
|
57
|
+
@property({ type: [FWLanguageSkeleton] })
|
|
58
|
+
get inspector() {
|
|
59
|
+
return this._inspector;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
set inspector(value: FWLanguageSkeleton[]) {
|
|
63
|
+
this._inspector = value;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
protected onLanguageChange(): void {
|
|
67
|
+
this.onRefresh();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
protected onLoad(): void {
|
|
71
|
+
super.onLoad?.();
|
|
72
|
+
this._skeleton = this.node.getComponent(sp.Skeleton);
|
|
73
|
+
this._animation = FW.Entry.animationMgr.createSkeleton(this._skeleton);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
protected onRefresh(): void {
|
|
77
|
+
if (this._language == 0 && CC_EDITOR) {
|
|
78
|
+
this._skeleton.skeletonData = null;
|
|
79
|
+
//@ts-ignore
|
|
80
|
+
CC_EDITOR && Editor.log('未选择语言!');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const index = this.inspector.findIndex((v) => {
|
|
84
|
+
return v.language == this._language;
|
|
85
|
+
});
|
|
86
|
+
if (index == -1) {
|
|
87
|
+
this._skeleton.skeletonData = null;
|
|
88
|
+
//@ts-ignore
|
|
89
|
+
CC_EDITOR && Editor.log('当前语言未配置!');
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const skeleton = this.inspector[index];
|
|
93
|
+
if (!skeleton?.skeleton) {
|
|
94
|
+
//@ts-ignore
|
|
95
|
+
CC_EDITOR && Editor.log('当前语言skeletonData不存在!');
|
|
96
|
+
this.language = 0;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this._skeleton.skeletonData = skeleton.skeleton;
|
|
100
|
+
this._skeleton.animation = this._animation.getAnimationNames()?.[0];
|
|
101
|
+
this._animation.play({
|
|
102
|
+
loop: skeleton.loop,
|
|
103
|
+
timeScale: skeleton.timeScale,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { FWLodash } from '../utils/FWLodash';
|
|
2
|
+
import FWLanguage from './FWLanguage';
|
|
3
|
+
|
|
4
|
+
const { ccclass, property, executeInEditMode, menu, requireComponent } = cc._decorator;
|
|
5
|
+
|
|
6
|
+
const languageEnum = FWLodash.CCEnum([
|
|
7
|
+
'请选择语言',
|
|
8
|
+
...FW.Entry.languageMgr.getSupportedLanguages(),
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
@ccclass('FWLanguageSprite')
|
|
12
|
+
class FWLanguageSprite {
|
|
13
|
+
@property({
|
|
14
|
+
type: languageEnum,
|
|
15
|
+
displayName: 'language',
|
|
16
|
+
visible: true,
|
|
17
|
+
serializable: true,
|
|
18
|
+
})
|
|
19
|
+
language: number = 0;
|
|
20
|
+
|
|
21
|
+
@property({
|
|
22
|
+
type: cc.SpriteFrame,
|
|
23
|
+
displayName: 'spriteFrame',
|
|
24
|
+
serializable: true,
|
|
25
|
+
})
|
|
26
|
+
spriteFrame: cc.SpriteFrame = null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@ccclass
|
|
30
|
+
@menu('Language/FWLanguageSpriteLocalize')
|
|
31
|
+
@requireComponent(cc.Sprite)
|
|
32
|
+
@executeInEditMode
|
|
33
|
+
export default class FWLanguageSpriteLocalize extends FWLanguage {
|
|
34
|
+
@property
|
|
35
|
+
private _inspector: FWLanguageSprite[] = [];
|
|
36
|
+
private _sprite: cc.Sprite;
|
|
37
|
+
|
|
38
|
+
@property({ type: [FWLanguageSprite] })
|
|
39
|
+
get inspector() {
|
|
40
|
+
return this._inspector;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
set inspector(value: FWLanguageSprite[]) {
|
|
44
|
+
this._inspector = value;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected onLanguageChange(): void {
|
|
48
|
+
this.onRefresh();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected onLoad(): void {
|
|
52
|
+
super.onLoad?.();
|
|
53
|
+
this._sprite = this.node.getComponent(cc.Sprite);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected onRefresh(): void {
|
|
57
|
+
if (this._language == 0 && CC_EDITOR) {
|
|
58
|
+
this._sprite.spriteFrame = null;
|
|
59
|
+
//@ts-ignore
|
|
60
|
+
CC_EDITOR && Editor.log('未选择语言!');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const index = this.inspector.findIndex((v) => {
|
|
64
|
+
return v.language == this._language;
|
|
65
|
+
});
|
|
66
|
+
if (index == -1) {
|
|
67
|
+
this._sprite.spriteFrame = null;
|
|
68
|
+
//@ts-ignore
|
|
69
|
+
CC_EDITOR && Editor.log('当前语言未配置!');
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const spriteFrame = this.inspector[index].spriteFrame;
|
|
73
|
+
if (!spriteFrame) {
|
|
74
|
+
//@ts-ignore
|
|
75
|
+
CC_EDITOR && Editor.log('当前语言SpriteFrame不存在!');
|
|
76
|
+
this.language = 0;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this._sprite.spriteFrame = spriteFrame;
|
|
80
|
+
}
|
|
81
|
+
}
|
package/language.meta
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ver": "1.1.3",
|
|
3
|
+
"uuid": "8a2ce5d1-31a5-45bb-8b09-7f0054ace394",
|
|
4
|
+
"importer": "folder",
|
|
5
|
+
"isBundle": false,
|
|
6
|
+
"bundleName": "",
|
|
7
|
+
"priority": 1,
|
|
8
|
+
"compressionType": {},
|
|
9
|
+
"optimizeHotUpdate": {},
|
|
10
|
+
"inlineSpriteFrames": {},
|
|
11
|
+
"isRemoteBundle": {},
|
|
12
|
+
"subMetas": {}
|
|
13
|
+
}
|
package/layer/FWLayer.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const { ccclass, property } = cc._decorator;
|
|
2
|
+
|
|
3
|
+
@ccclass
|
|
4
|
+
export default class FWLayer extends cc.Component implements FW.Layer {
|
|
5
|
+
public readonly entry: FW.Entry = FW.Entry;
|
|
6
|
+
public onLoad(): void {}
|
|
7
|
+
public start(): void {}
|
|
8
|
+
public onEnable(): void {}
|
|
9
|
+
public onDisable(): void {}
|
|
10
|
+
public onDestroy(): void {}
|
|
11
|
+
public update(dt: number): void {}
|
|
12
|
+
public lateUpdate(dt: number): void {}
|
|
13
|
+
}
|
package/layer.meta
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ver": "1.1.3",
|
|
3
|
+
"uuid": "ce98c254-9c3e-4d9d-94ff-216bd92484e7",
|
|
4
|
+
"importer": "folder",
|
|
5
|
+
"isBundle": false,
|
|
6
|
+
"bundleName": "",
|
|
7
|
+
"priority": 1,
|
|
8
|
+
"compressionType": {},
|
|
9
|
+
"optimizeHotUpdate": {},
|
|
10
|
+
"inlineSpriteFrames": {},
|
|
11
|
+
"isRemoteBundle": {},
|
|
12
|
+
"subMetas": {}
|
|
13
|
+
}
|
package/log/FWLog.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { FWSystemDefine } from '../define/FWSystemDefine';
|
|
2
|
+
|
|
3
|
+
export const FWLogColorMap: Map<FWSystemDefine.FWLogType, string> = new Map<
|
|
4
|
+
FWSystemDefine.FWLogType,
|
|
5
|
+
string
|
|
6
|
+
>([
|
|
7
|
+
[FWSystemDefine.FWLogType.DEBUG, '#FFFFFF'],
|
|
8
|
+
[FWSystemDefine.FWLogType.SOCKET_SEND, '#50BBE4'],
|
|
9
|
+
[FWSystemDefine.FWLogType.SOCKET_RECEIVE, '#F423DF'],
|
|
10
|
+
[FWSystemDefine.FWLogType.REQUEST, '#23F4C6'],
|
|
11
|
+
[FWSystemDefine.FWLogType.RESPONSE, '#FF8A00'],
|
|
12
|
+
[FWSystemDefine.FWLogType.WARN, '#FFC107'],
|
|
13
|
+
[FWSystemDefine.FWLogType.ERROR, '#DC3545'],
|
|
14
|
+
[FWSystemDefine.FWLogType.SYSTEM, '#9b1eeeff'],
|
|
15
|
+
]);
|
|
16
|
+
|
|
17
|
+
class FWLog {
|
|
18
|
+
private static instance: FWLog;
|
|
19
|
+
public static getInstance() {
|
|
20
|
+
if (!this.instance) {
|
|
21
|
+
this.instance = new FWLog();
|
|
22
|
+
}
|
|
23
|
+
return this.instance;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private constructor() {}
|
|
27
|
+
|
|
28
|
+
public get debug() {
|
|
29
|
+
return window.console.log.bind(
|
|
30
|
+
window.console,
|
|
31
|
+
`%c[debug]:${FW.Entry.timeMgr.getTime()}`,
|
|
32
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
33
|
+
FWSystemDefine.FWLogType.DEBUG,
|
|
34
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get send() {
|
|
39
|
+
return window.console.log.bind(
|
|
40
|
+
window.console,
|
|
41
|
+
`%c[sendMsg]:${FW.Entry.timeMgr.getTime()}`,
|
|
42
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
43
|
+
FWSystemDefine.FWLogType.SOCKET_SEND,
|
|
44
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get receive() {
|
|
49
|
+
return window.console.log.bind(
|
|
50
|
+
window.console,
|
|
51
|
+
`%c[receiveMsg]:${FW.Entry.timeMgr.getTime()}`,
|
|
52
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
53
|
+
FWSystemDefine.FWLogType.SOCKET_RECEIVE,
|
|
54
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get request() {
|
|
59
|
+
return window.console.log.bind(
|
|
60
|
+
window.console,
|
|
61
|
+
`%c[request]:${FW.Entry.timeMgr.getTime()}`,
|
|
62
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
63
|
+
FWSystemDefine.FWLogType.REQUEST,
|
|
64
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get response() {
|
|
69
|
+
return window.console.log.bind(
|
|
70
|
+
window.console,
|
|
71
|
+
`%c[response]:${FW.Entry.timeMgr.getTime()}`,
|
|
72
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
73
|
+
FWSystemDefine.FWLogType.RESPONSE,
|
|
74
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
get system() {
|
|
79
|
+
return window.console.log.bind(
|
|
80
|
+
window.console,
|
|
81
|
+
`%c[system]:${FW.Entry.timeMgr.getTime()}`,
|
|
82
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
83
|
+
FWSystemDefine.FWLogType.SYSTEM,
|
|
84
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get warn() {
|
|
89
|
+
return window.console.warn.bind(
|
|
90
|
+
window.console,
|
|
91
|
+
`%c[warn]:${FW.Entry.timeMgr.getTime()}`,
|
|
92
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
93
|
+
FWSystemDefine.FWLogType.WARN,
|
|
94
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
get error() {
|
|
99
|
+
return window.console.error.bind(
|
|
100
|
+
window.console,
|
|
101
|
+
`%c[error]:${FW.Entry.timeMgr.getTime()}`,
|
|
102
|
+
`color: black; background-color: ${FWLogColorMap.get(
|
|
103
|
+
FWSystemDefine.FWLogType.ERROR,
|
|
104
|
+
)}; font-weight: bold; font-size: 10;`,
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (!CC_DEBUG && !CC_DEV && !CC_BUILD) {
|
|
110
|
+
window.console.log = () => {};
|
|
111
|
+
window.console.warn = () => {};
|
|
112
|
+
window.console.error = () => {};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export default FWLog.getInstance();
|
package/log.meta
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ver": "1.1.3",
|
|
3
|
+
"uuid": "cc6fa493-d506-4224-9ef5-fcccfe52b409",
|
|
4
|
+
"importer": "folder",
|
|
5
|
+
"isBundle": false,
|
|
6
|
+
"bundleName": "",
|
|
7
|
+
"priority": 1,
|
|
8
|
+
"compressionType": {},
|
|
9
|
+
"optimizeHotUpdate": {},
|
|
10
|
+
"inlineSpriteFrames": {},
|
|
11
|
+
"isRemoteBundle": {},
|
|
12
|
+
"subMetas": {}
|
|
13
|
+
}
|
package/logic/FWLogic.ts
ADDED
package/logic.meta
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ver": "1.1.3",
|
|
3
|
+
"uuid": "c760a8a3-325a-434f-8375-bd9406a8496d",
|
|
4
|
+
"importer": "folder",
|
|
5
|
+
"isBundle": false,
|
|
6
|
+
"bundleName": "",
|
|
7
|
+
"priority": 1,
|
|
8
|
+
"compressionType": {},
|
|
9
|
+
"optimizeHotUpdate": {},
|
|
10
|
+
"inlineSpriteFrames": {},
|
|
11
|
+
"isRemoteBundle": {},
|
|
12
|
+
"subMetas": {}
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FWAnimation } from "../animation/FWAnimation";
|
|
2
|
+
|
|
3
|
+
export class FWAnimationMachine {
|
|
4
|
+
private animationMap: Map<string, FWAnimation>;
|
|
5
|
+
|
|
6
|
+
constructor() {
|
|
7
|
+
this.initialize();
|
|
8
|
+
}
|
|
9
|
+
private initialize(): void {
|
|
10
|
+
this.animationMap = new Map<string, FWAnimation>();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
addAnimation(animation: FWAnimation) {
|
|
14
|
+
this.animationMap.set(animation.animationName, animation);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
getAnimation(animationName: string) {
|
|
18
|
+
return this.animationMap.get(animationName);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
pause() {
|
|
22
|
+
this.animationMap.forEach((v) => v.pause());
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
resume() {
|
|
26
|
+
this.animationMap.forEach((v) => v.resume());
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import FWLog from '../log/FWLog';
|
|
2
|
+
import { FWState } from '../state/FWState';
|
|
3
|
+
|
|
4
|
+
export default class FWStateMachine implements FW.StateMachine {
|
|
5
|
+
private stateMap: Map<number, FWState>;
|
|
6
|
+
private stateType: number;
|
|
7
|
+
private paused: boolean;
|
|
8
|
+
|
|
9
|
+
public get state() {
|
|
10
|
+
return this.stateType;
|
|
11
|
+
}
|
|
12
|
+
constructor() {
|
|
13
|
+
this.stateMap = new Map<number, FWState>();
|
|
14
|
+
this.stateType = 0;
|
|
15
|
+
this.paused = false;
|
|
16
|
+
}
|
|
17
|
+
/** 进入状态 */
|
|
18
|
+
enter(stateType: number, ...args: any): void {
|
|
19
|
+
if (this.stateMap.size == 0) {
|
|
20
|
+
FWLog.error('stateMachine is not register!');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (this.paused) return;
|
|
25
|
+
if (this.state == stateType) return;
|
|
26
|
+
|
|
27
|
+
if (this.stateMap.has(this.stateType)) {
|
|
28
|
+
this.stateMap?.get(this.stateType)?.onExit();
|
|
29
|
+
}
|
|
30
|
+
this.stateType = stateType;
|
|
31
|
+
if (this.stateMap.has(this.stateType)) {
|
|
32
|
+
this.stateMap?.get(this.stateType)?.onEnter(args);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 暂停状态机
|
|
37
|
+
* */
|
|
38
|
+
pause() {
|
|
39
|
+
this.paused = true;
|
|
40
|
+
FW.Entry.timeMgr.pauseSchedule(this);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 恢复状态机
|
|
44
|
+
*/
|
|
45
|
+
resume() {
|
|
46
|
+
this.paused = false;
|
|
47
|
+
FW.Entry.timeMgr.resumeSchedule(this);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 注册
|
|
51
|
+
* @param type
|
|
52
|
+
* @param state
|
|
53
|
+
*/
|
|
54
|
+
register<T extends FWState>(state: FW.StateMachineRegisterArgs<T>) {
|
|
55
|
+
const constructor = new state.stateConstructor();
|
|
56
|
+
constructor.onInit();
|
|
57
|
+
FW.Entry.timeMgr.update(constructor.onUpdate.bind(state), this);
|
|
58
|
+
this.stateMap.set(state.stateType, constructor);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 注销
|
|
62
|
+
* @param type
|
|
63
|
+
*/
|
|
64
|
+
unRegister(stateType: number) {
|
|
65
|
+
if (!this.stateMap.has(stateType)) return;
|
|
66
|
+
const constructor = this.stateMap.get(stateType);
|
|
67
|
+
constructor.onDestroy();
|
|
68
|
+
FW.Entry.timeMgr.unSchedule(this);
|
|
69
|
+
this.stateMap.delete(stateType);
|
|
70
|
+
}
|
|
71
|
+
onDestroy() {
|
|
72
|
+
this.stateMap.clear();
|
|
73
|
+
this.stateMap = null;
|
|
74
|
+
}
|
|
75
|
+
}
|
package/machine.meta
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ver": "1.1.3",
|
|
3
|
+
"uuid": "a2c00ae3-16c2-4bd9-9cc7-e4ad4e9c0c88",
|
|
4
|
+
"importer": "folder",
|
|
5
|
+
"isBundle": false,
|
|
6
|
+
"bundleName": "",
|
|
7
|
+
"priority": 1,
|
|
8
|
+
"compressionType": {},
|
|
9
|
+
"optimizeHotUpdate": {},
|
|
10
|
+
"inlineSpriteFrames": {},
|
|
11
|
+
"isRemoteBundle": {},
|
|
12
|
+
"subMetas": {}
|
|
13
|
+
}
|