@flashist/appframework 0.0.3
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/gulp/tasks/clean.js +9 -0
- package/gulp/tasks/compile.js +27 -0
- package/gulp/tasks/copy-to-dist.js +15 -0
- package/gulp/tasks/generate-definitions.js +86 -0
- package/gulpfile.js +22 -0
- package/package.json +30 -0
- package/src/app/AppModule.ts +26 -0
- package/src/app/AppSettings.ts +9 -0
- package/src/app/commands/LoadAppConfigCommand.ts +61 -0
- package/src/app/commands/ParseStaticItemsConfigCommand.ts +32 -0
- package/src/app/data/AppConfigType.ts +1 -0
- package/src/app/data/AppConfigVO.ts +27 -0
- package/src/app/data/IAppModelStorageVO.ts +4 -0
- package/src/app/data/IItemsConfigVO.ts +5 -0
- package/src/app/managers/AppManager.ts +68 -0
- package/src/app/models/AppConfigModel.ts +20 -0
- package/src/app/models/AppModel.ts +18 -0
- package/src/app/views/AppMainContainer.ts +23 -0
- package/src/assets/AssetsModule.ts +13 -0
- package/src/assets/commands/ParseAssetsConfigCommand.ts +25 -0
- package/src/assets/data/IAssetsConfigVO.ts +5 -0
- package/src/assets/models/AssetsModel.ts +7 -0
- package/src/base/BaseObjectWithGlobalDispatcher.ts +23 -0
- package/src/base/commands/BaseAppCommand.ts +22 -0
- package/src/base/data/BaseAppObjectWithStaticVO.ts +15 -0
- package/src/base/managers/BaseAppManager.ts +5 -0
- package/src/base/mediators/BaseAppMediator.ts +24 -0
- package/src/base/models/BaseAppGenericObjectsModel.ts +23 -0
- package/src/base/models/BaseAppModel.ts +5 -0
- package/src/base/modules/AppModulesManager.ts +44 -0
- package/src/base/modules/BaseAppModule.ts +17 -0
- package/src/base/views/BaseAppView.ts +25 -0
- package/src/containers/ContainersModule.ts +13 -0
- package/src/containers/managers/ContainersManager.ts +27 -0
- package/src/data/IAppGenericObjectVO.ts +5 -0
- package/src/date/DateSettings.ts +6 -0
- package/src/debug/DebugModule.ts +22 -0
- package/src/dependencies/DependenciesModule.ts +13 -0
- package/src/display/data/IGetSizable.ts +5 -0
- package/src/display/tools/GetSizeTools.ts +25 -0
- package/src/display/views/AppContainer.ts +20 -0
- package/src/display/views/button/BaseBtn.ts +325 -0
- package/src/display/views/button/BaseBtnEvent.ts +4 -0
- package/src/display/views/button/BaseBtnState.ts +31 -0
- package/src/display/views/button/BaseBtnView.ts +230 -0
- package/src/display/views/button/DefaultButtonViewConfig.ts +10 -0
- package/src/display/views/button/IButtonViewConfig.ts +16 -0
- package/src/display/views/button/ISimpleButtonConfig.ts +22 -0
- package/src/display/views/button/SimpleButtonState.ts +31 -0
- package/src/display/views/button/SimpleButtonView.ts +226 -0
- package/src/display/views/getsize/GetSizeTools.ts +32 -0
- package/src/display/views/getsize/IGetSizeObject.ts +5 -0
- package/src/display/views/layout/BaseLayout.ts +160 -0
- package/src/display/views/layout/ColumnLayout.ts +120 -0
- package/src/display/views/layout/LayoutConfig.ts +15 -0
- package/src/display/views/layout/RowLayout.ts +115 -0
- package/src/display/views/layout/container/BaseLayoutableContainer.ts +21 -0
- package/src/display/views/layout/container/ILayoutableChild.ts +3 -0
- package/src/display/views/layout/container/ILayoutableContainer.ts +18 -0
- package/src/display/views/resize/IResizable.ts +6 -0
- package/src/display/views/resize/ResizableContainer.ts +80 -0
- package/src/display/views/simplelist/ISimpleListItem.ts +5 -0
- package/src/display/views/simplelist/SimpleList.ts +318 -0
- package/src/display/views/simplelist/SimpleListEvent.ts +4 -0
- package/src/display/views/sizedistributor/ISizeDistributorChild.ts +5 -0
- package/src/display/views/sizedistributor/SizeDistributor.ts +129 -0
- package/src/display/views/sizedistributor/SizeDistributorConfig.ts +12 -0
- package/src/display/views/togglegroup/IToggableItem.ts +6 -0
- package/src/display/views/togglegroup/IToggleGroupItem.ts +6 -0
- package/src/display/views/togglegroup/ToggleGroup.ts +140 -0
- package/src/display/views/togglegroup/ToggleGroupEvent.ts +3 -0
- package/src/display/views/viewstack/IViewStackItem.ts +7 -0
- package/src/display/views/viewstack/ViewLazyCreationServiceLocatorStack.ts +19 -0
- package/src/display/views/viewstack/ViewLazyCreationStack.ts +47 -0
- package/src/display/views/viewstack/ViewStack.ts +93 -0
- package/src/display/views/viewstack/ViewStackLazyCreation.ts +45 -0
- package/src/events/commands/DispatchGlobalEventCommand.ts +22 -0
- package/src/facade/Facade.ts +194 -0
- package/src/facade/IFacadeOptions.ts +7 -0
- package/src/globaleventdispatcher/GlobalEventDispatcherModule.ts +16 -0
- package/src/globaleventdispatcher/commands/WaitGlobalEventCommand.ts +25 -0
- package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcher.ts +53 -0
- package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherEvent.ts +4 -0
- package/src/globaleventdispatcher/dispatcher/IGlobalDispatchEventVO.ts +4 -0
- package/src/globaleventdispatcher/managers/GlobalEventsCommandManager.ts +26 -0
- package/src/hints/commands/AnimateHintCommand.ts +99 -0
- package/src/hints/data/DefaultHintConfig.ts +22 -0
- package/src/hints/data/HintContainerId.ts +1 -0
- package/src/hints/data/IHintConfig.ts +20 -0
- package/src/html/HTMLModule.ts +13 -0
- package/src/html/managers/HTMLManager.ts +32 -0
- package/src/index.ts +21 -0
- package/src/init/commands/InitApplicationCommand.ts +34 -0
- package/src/init/commands/InitApplicationDataCommand.ts +19 -0
- package/src/init/commands/InitApplicationDataEvent.ts +3 -0
- package/src/load/LoadGroupName.ts +5 -0
- package/src/load/LoadModule.ts +23 -0
- package/src/load/LoaderId.ts +5 -0
- package/src/locales/LocalesModule.ts +11 -0
- package/src/locales/commands/ParseLocaleConfigCommand.ts +28 -0
- package/src/package.json +36 -0
- package/src/pages/PageId.ts +4 -0
- package/src/pages/PagesModule.ts +13 -0
- package/src/pages/commands/ChangePageCommand.ts +18 -0
- package/src/pages/models/PagesModel.ts +38 -0
- package/src/pages/models/PagesModelEvent.ts +3 -0
- package/src/pages/views/BasePageView.ts +75 -0
- package/src/pages/views/PagesView.ts +57 -0
- package/src/pool/ObjectsPoolModule.ts +13 -0
- package/src/renderer/RendererModule.ts +14 -0
- package/src/renderer/events/RendererManagerEvent.ts +3 -0
- package/src/renderer/managers/RendererManager.ts +52 -0
- package/src/server/ServerModule.ts +14 -0
- package/src/server/commands/BaseServerCommand.ts +39 -0
- package/src/server/data/IServerRequestVO.ts +12 -0
- package/src/server/data/IServerResponseVO.ts +15 -0
- package/src/server/data/ServerErrorCode.ts +3 -0
- package/src/server/models/ServerModel.ts +34 -0
- package/src/sounds/SoundsModule.ts +24 -0
- package/src/sounds/SoundsSettings.ts +5 -0
- package/src/sounds/managers/BackgroundMusicManager.ts +48 -0
- package/src/sounds/managers/SoundsStorageManager.ts +45 -0
- package/src/storage/StorageModule.ts +13 -0
- package/src/storage/StorageModuleConfig.ts +3 -0
- package/src/storage/managers/StorageManager.ts +159 -0
- package/src/strategy/managers/BaseStrategyManager.ts +37 -0
- package/src/strategy/models/BaseStrategyModel.ts +40 -0
- package/src/strategy/strategies/BaseStrategy.ts +21 -0
- package/src/time/TimeModule.ts +16 -0
- package/src/time/managers/TimeManager.ts +29 -0
- package/src/time/models/TimeModel.ts +29 -0
- package/src/time/models/TimeModelEvent.ts +3 -0
- package/src/windows/data/IWindowConfigVO.ts +9 -0
- package/src/windows/managers/IShowWindowVO.ts +4 -0
- package/src/windows/managers/WindowsManager.ts +72 -0
- package/src/windows/views/BaseWindow.ts +22 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {Point} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
export interface IHintConfig {
|
|
4
|
+
containerId: string;
|
|
5
|
+
|
|
6
|
+
startGlobalPos: Point;
|
|
7
|
+
|
|
8
|
+
positionTweenDuration: number;
|
|
9
|
+
finalGlobalPosMinChange: Point;
|
|
10
|
+
finalGlobalPosMaxChange: Point;
|
|
11
|
+
|
|
12
|
+
startAlphaTweenDuration: number;
|
|
13
|
+
startAlphaTweenDelay: number;
|
|
14
|
+
finalAlphaTweenDuration: number;
|
|
15
|
+
finalAlphaTweenDelay: number;
|
|
16
|
+
|
|
17
|
+
startAlpha: number;
|
|
18
|
+
mainAlpha: number;
|
|
19
|
+
finalAlpha: number;
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
4
|
+
import {HTMLManager} from "./managers/HTMLManager";
|
|
5
|
+
|
|
6
|
+
export class HTMLModule extends BaseAppModule {
|
|
7
|
+
|
|
8
|
+
init(): void {
|
|
9
|
+
super.init();
|
|
10
|
+
|
|
11
|
+
serviceLocatorAdd(HTMLManager, {isSingleton: true, forceCreation: true});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {getInstance, SoundsManager} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppManager} from "../../base/managers/BaseAppManager";
|
|
4
|
+
|
|
5
|
+
export class HTMLManager extends BaseAppManager {
|
|
6
|
+
|
|
7
|
+
protected soundsManager: SoundsManager = getInstance(SoundsManager);
|
|
8
|
+
|
|
9
|
+
protected addListeners(): void {
|
|
10
|
+
super.addListeners();
|
|
11
|
+
|
|
12
|
+
this.eventListenerHelper.addEventListener(
|
|
13
|
+
window as any,
|
|
14
|
+
"focus",
|
|
15
|
+
this.onFocus
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
this.eventListenerHelper.addEventListener(
|
|
19
|
+
window as any,
|
|
20
|
+
"blur",
|
|
21
|
+
this.onBlur
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
protected onFocus(): void {
|
|
26
|
+
this.soundsManager.removeDisableLock(this);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
protected onBlur(): void {
|
|
30
|
+
this.soundsManager.addDisableLock(this);
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export * from './facade/Facade'
|
|
2
|
+
export * from './base/views/BaseAppView'
|
|
3
|
+
export * from './base/models/BaseAppModel'
|
|
4
|
+
export * from './base/models/BaseAppGenericObjectsModel'
|
|
5
|
+
export * from './base/modules/AppModulesManager'
|
|
6
|
+
export * from './base/modules/BaseAppModule'
|
|
7
|
+
export * from './base/managers/BaseAppManager'
|
|
8
|
+
export * from './base/mediators/BaseAppMediator'
|
|
9
|
+
|
|
10
|
+
export * from './app/models/AppConfigModel'
|
|
11
|
+
export * from './app/models/AppModel'
|
|
12
|
+
|
|
13
|
+
export * from './renderer/RendererModule'
|
|
14
|
+
|
|
15
|
+
export * from './time/models/TimeModelEvent'
|
|
16
|
+
export * from './time/models/TimeModel'
|
|
17
|
+
|
|
18
|
+
export * from './load/LoadGroupName'
|
|
19
|
+
|
|
20
|
+
export * from './pages/views/BasePageView'
|
|
21
|
+
export * from './pages/commands/ChangePageCommand'
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { QueueCommand } from "@flashist/fcore";
|
|
2
|
+
|
|
3
|
+
import { getInstance, WaitGroupLoadingCompleteCommand } from "@flashist/flibs";
|
|
4
|
+
|
|
5
|
+
import { LoadAppConfigCommand } from "../../app/commands/LoadAppConfigCommand";
|
|
6
|
+
import { LoadGroupName } from "../../load/LoadGroupName";
|
|
7
|
+
import { ChangePageCommand } from "../../pages/commands/ChangePageCommand";
|
|
8
|
+
import { PageId } from "../../pages/PageId";
|
|
9
|
+
import { InitApplicationDataCommand } from "./InitApplicationDataCommand";
|
|
10
|
+
import { ParseStaticItemsConfigCommand } from "../../app/commands/ParseStaticItemsConfigCommand";
|
|
11
|
+
import { ParseLocaleConfigCommand } from "../../locales/commands/ParseLocaleConfigCommand";
|
|
12
|
+
import { ParseAssetsConfigCommand } from "../../assets/commands/ParseAssetsConfigCommand";
|
|
13
|
+
|
|
14
|
+
export class InitApplicationCommand extends QueueCommand {
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
super(
|
|
18
|
+
[
|
|
19
|
+
getInstance(LoadAppConfigCommand),
|
|
20
|
+
getInstance(WaitGroupLoadingCompleteCommand, LoadGroupName.CONFIG),
|
|
21
|
+
|
|
22
|
+
getInstance(ParseLocaleConfigCommand),
|
|
23
|
+
getInstance(ParseAssetsConfigCommand),
|
|
24
|
+
getInstance(ParseStaticItemsConfigCommand),
|
|
25
|
+
|
|
26
|
+
getInstance(WaitGroupLoadingCompleteCommand, LoadGroupName.PRELOAD),
|
|
27
|
+
|
|
28
|
+
getInstance(InitApplicationDataCommand),
|
|
29
|
+
|
|
30
|
+
getInstance(ChangePageCommand, PageId.PRELOADER_PAGE)
|
|
31
|
+
] as any
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {BaseAppCommand} from "../../base/commands/BaseAppCommand";
|
|
2
|
+
import {InitApplicationDataEvent} from "./InitApplicationDataEvent";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Command-placeholder for specific applications init their data (e.g. first server request)
|
|
6
|
+
*/
|
|
7
|
+
export class InitApplicationDataCommand extends BaseAppCommand {
|
|
8
|
+
|
|
9
|
+
protected executeInternal(): void {
|
|
10
|
+
this.notifyComplete();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
protected notifyComplete(resolveData?: any, rejectErrorData?: any): void {
|
|
15
|
+
this.dispatchEvent(InitApplicationDataEvent.INTI_APPLICATION_DATA_COMPLETE);
|
|
16
|
+
|
|
17
|
+
super.notifyComplete(resolveData, rejectErrorData);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {LoadFactory, LoadManager, serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
4
|
+
|
|
5
|
+
export class LoadModule extends BaseAppModule {
|
|
6
|
+
|
|
7
|
+
constructor(protected basePath: string = "") {
|
|
8
|
+
super();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
init(): void {
|
|
12
|
+
super.init();
|
|
13
|
+
|
|
14
|
+
// Load
|
|
15
|
+
serviceLocatorAdd(LoadManager, {isSingleton: true, forceCreation: true});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
activateCompleteHook(): void {
|
|
19
|
+
super.activateCompleteHook();
|
|
20
|
+
|
|
21
|
+
LoadFactory.instance.basePath = this.basePath;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {LocaleManager, serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
3
|
+
|
|
4
|
+
export class LocalesModule extends BaseAppModule {
|
|
5
|
+
|
|
6
|
+
init(): void {
|
|
7
|
+
super.init();
|
|
8
|
+
|
|
9
|
+
serviceLocatorAdd(LocaleManager, {isSingleton: true});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {AbstractLoadItem, getInstance, ILocaleConfig, LoadManager, LocaleManager} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {AppConfigModel} from "../../app/models/AppConfigModel";
|
|
4
|
+
import {BaseAppCommand} from "../../base/commands/BaseAppCommand";
|
|
5
|
+
import {AppSettings} from "../../app/AppSettings";
|
|
6
|
+
|
|
7
|
+
export class ParseLocaleConfigCommand extends BaseAppCommand {
|
|
8
|
+
|
|
9
|
+
protected executeInternal(): void {
|
|
10
|
+
let loadManager: LoadManager = getInstance(LoadManager);
|
|
11
|
+
let localeConfigFileItem: AbstractLoadItem = loadManager.getLoadItem(AppSettings.localeConfigFileId);
|
|
12
|
+
if (localeConfigFileItem && localeConfigFileItem.data) {
|
|
13
|
+
let appConfigModel: AppConfigModel = getInstance(AppConfigModel);
|
|
14
|
+
|
|
15
|
+
let localizationJson: ILocaleConfig = localeConfigFileItem.data;
|
|
16
|
+
|
|
17
|
+
let localeManager: LocaleManager = getInstance<LocaleManager>(LocaleManager);
|
|
18
|
+
localeManager.setCurrentLanguage(appConfigModel.appConfig.locale);
|
|
19
|
+
localeManager.addLocale(localizationJson, appConfigModel.appConfig.locale);
|
|
20
|
+
|
|
21
|
+
this.notifyComplete();
|
|
22
|
+
|
|
23
|
+
} else {
|
|
24
|
+
console.error("ParseLocalizationCommand | executeInternal __ ERROR! Can't find config file!");
|
|
25
|
+
this.terminate();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
package/src/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@flashist/flibs",
|
|
3
|
+
"version": "0.0.117",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"build": "gulp",
|
|
6
|
+
"publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
|
|
7
|
+
"publish:minor": "npm version minor && npm run build && cd ./dist && npm publish",
|
|
8
|
+
"publish:major": "npm version major && npm run build && cd ./dist && npm publish"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"private": false,
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/flashist/flibs"
|
|
15
|
+
},
|
|
16
|
+
"main": "index.js",
|
|
17
|
+
"typings": "index.d.ts",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@flashist/fcore": "0.x",
|
|
20
|
+
"@types/gsap": "^1.20.2",
|
|
21
|
+
"@types/howler": "^2.1.0",
|
|
22
|
+
"webfontloader": "^1.6.28"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/webfontloader": "^1.6.29",
|
|
26
|
+
"gulp": "^4.0.2",
|
|
27
|
+
"gulp-shell": "^0.8.0",
|
|
28
|
+
"pixi.js": "^6.5.5",
|
|
29
|
+
"require-dir": "^1.2.0",
|
|
30
|
+
"rimraf": "^3.0.2",
|
|
31
|
+
"typescript": "^4.0.2"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"pixi.js": "^6.5.5"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {PagesModel} from "./models/PagesModel";
|
|
4
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
5
|
+
|
|
6
|
+
export class PagesModule extends BaseAppModule {
|
|
7
|
+
|
|
8
|
+
init(): void {
|
|
9
|
+
super.init();
|
|
10
|
+
|
|
11
|
+
serviceLocatorAdd(PagesModel, {isSingleton: true});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {getInstance} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {PagesModel} from "../models/PagesModel";
|
|
4
|
+
import {BaseAppCommand} from "../../base/commands/BaseAppCommand";
|
|
5
|
+
|
|
6
|
+
export class ChangePageCommand extends BaseAppCommand {
|
|
7
|
+
|
|
8
|
+
protected pagesModel: PagesModel = getInstance(PagesModel);
|
|
9
|
+
|
|
10
|
+
constructor(protected pageId: string) {
|
|
11
|
+
super();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
protected executeInternal(): void {
|
|
15
|
+
this.pagesModel.pageId = this.pageId;
|
|
16
|
+
this.notifyComplete();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {AssociativeArray, IConstructor} from "@flashist/fcore";
|
|
2
|
+
|
|
3
|
+
import {BaseAppGenericObjectsModel} from "../../base/models/BaseAppGenericObjectsModel";
|
|
4
|
+
import {PagesModelEvent} from "./PagesModelEvent";
|
|
5
|
+
|
|
6
|
+
export class PagesModel extends BaseAppGenericObjectsModel {
|
|
7
|
+
|
|
8
|
+
private _pageId: string;
|
|
9
|
+
|
|
10
|
+
protected pageIdToViewClassMap: AssociativeArray<IConstructor>;
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
|
|
15
|
+
this.pageIdToViewClassMap = new AssociativeArray<IConstructor>();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
addPageViewClass(Class: IConstructor, id: string): void {
|
|
19
|
+
this.pageIdToViewClassMap.push(Class, id);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public getPageIdToViewClassMap(): AssociativeArray<IConstructor> {
|
|
23
|
+
return this.pageIdToViewClassMap.clone();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
get pageId(): string {
|
|
27
|
+
return this._pageId;
|
|
28
|
+
}
|
|
29
|
+
set pageId(value: string) {
|
|
30
|
+
if (value === this._pageId) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
this._pageId = value;
|
|
35
|
+
|
|
36
|
+
this.dispatchEvent(PagesModelEvent.PAGE_ID_CHANGE);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DisplayResizeTools, FContainer, getInstance, Graphics, Point, Rectangle } from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import { BaseAppView } from "../../base/views/BaseAppView";
|
|
4
|
+
import { AppConfigModel } from "../../app/models/AppConfigModel";
|
|
5
|
+
|
|
6
|
+
export class BasePageView extends BaseAppView {
|
|
7
|
+
|
|
8
|
+
protected appConfigModel: AppConfigModel;
|
|
9
|
+
|
|
10
|
+
protected sizeArea: Rectangle;
|
|
11
|
+
protected sizeAreaView: Graphics;
|
|
12
|
+
|
|
13
|
+
protected contentCont: FContainer;
|
|
14
|
+
protected reversedScaleContentScreenSize: Point;
|
|
15
|
+
|
|
16
|
+
protected construction(...args): void {
|
|
17
|
+
super.construction(args);
|
|
18
|
+
|
|
19
|
+
this.appConfigModel = getInstance(AppConfigModel);
|
|
20
|
+
|
|
21
|
+
this.sizeArea = new Rectangle();
|
|
22
|
+
if (this.appConfigModel.appConfig.sizeArea) {
|
|
23
|
+
this.sizeArea = new Rectangle(
|
|
24
|
+
this.appConfigModel.appConfig.sizeArea.x,
|
|
25
|
+
this.appConfigModel.appConfig.sizeArea.y,
|
|
26
|
+
this.appConfigModel.appConfig.sizeArea.width,
|
|
27
|
+
this.appConfigModel.appConfig.sizeArea.height
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
this.reversedScaleContentScreenSize = new Point();
|
|
32
|
+
|
|
33
|
+
this.contentCont = new FContainer();
|
|
34
|
+
this.addChild(this.contentCont);
|
|
35
|
+
this.contentCont.interactive = true;
|
|
36
|
+
|
|
37
|
+
this.sizeAreaView = new Graphics();
|
|
38
|
+
this.contentCont.addChild(this.sizeAreaView);
|
|
39
|
+
//
|
|
40
|
+
this.sizeAreaView.beginFill(0x000000, 0.5);
|
|
41
|
+
this.sizeAreaView.drawRect(
|
|
42
|
+
this.sizeArea.x,
|
|
43
|
+
this.sizeArea.y,
|
|
44
|
+
this.sizeArea.width,
|
|
45
|
+
this.sizeArea.height
|
|
46
|
+
);
|
|
47
|
+
this.sizeAreaView.endFill();
|
|
48
|
+
this.sizeAreaView.alpha = 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected arrange(): void {
|
|
52
|
+
super.arrange();
|
|
53
|
+
|
|
54
|
+
// Reset previous scale
|
|
55
|
+
this.contentCont.scale.set(1, 1);
|
|
56
|
+
|
|
57
|
+
// Scale according to the current size
|
|
58
|
+
let tempScale: number = DisplayResizeTools.getScale(
|
|
59
|
+
this.sizeArea.width,
|
|
60
|
+
this.sizeArea.height,
|
|
61
|
+
this.resizeSize.x,
|
|
62
|
+
this.resizeSize.y
|
|
63
|
+
);
|
|
64
|
+
this.contentCont.scale.set(tempScale);
|
|
65
|
+
/*this.contentCont.x = this.sizeArea.x + Math.floor((this.resizeSize.x - this.contentCont.width) / 2);
|
|
66
|
+
this.contentCont.y = this.sizeArea.y + Math.floor((this.resizeSize.y - this.contentCont.height) / 2);*/
|
|
67
|
+
this.contentCont.x = Math.floor((this.resizeSize.x - (this.sizeArea.width * tempScale)) / 2);
|
|
68
|
+
this.contentCont.x -= Math.floor(this.sizeArea.x * tempScale);
|
|
69
|
+
this.contentCont.y = Math.floor((this.resizeSize.y - (this.sizeArea.height * tempScale)) / 2);
|
|
70
|
+
this.contentCont.y -= Math.floor(this.sizeArea.y * tempScale);
|
|
71
|
+
|
|
72
|
+
this.reversedScaleContentScreenSize.x = Math.floor(this.resizeSize.x / this.contentCont.scale.x);
|
|
73
|
+
this.reversedScaleContentScreenSize.y = Math.floor(this.resizeSize.y / this.contentCont.scale.y);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {ResizableContainer} from "../../display/views/resize/ResizableContainer";
|
|
2
|
+
import {ViewLazyCreationServiceLocatorStack} from "../../display/views/viewstack/ViewLazyCreationServiceLocatorStack";
|
|
3
|
+
import {PagesModel} from "../models/PagesModel";
|
|
4
|
+
import {getInstance} from "@flashist/flibs";
|
|
5
|
+
import {PagesModelEvent} from "../models/PagesModelEvent";
|
|
6
|
+
|
|
7
|
+
export class PagesView extends ResizableContainer {
|
|
8
|
+
|
|
9
|
+
protected pagesModel: PagesModel;
|
|
10
|
+
|
|
11
|
+
public viewStack: ViewLazyCreationServiceLocatorStack;
|
|
12
|
+
|
|
13
|
+
protected construction(...args): void {
|
|
14
|
+
super.construction(args);
|
|
15
|
+
|
|
16
|
+
this.pagesModel = getInstance(PagesModel);
|
|
17
|
+
|
|
18
|
+
this.viewStack = new ViewLazyCreationServiceLocatorStack();
|
|
19
|
+
this.addChild(this.viewStack);
|
|
20
|
+
|
|
21
|
+
let pageIdToViewClassMap = this.pagesModel.getPageIdToViewClassMap();
|
|
22
|
+
let pageIds: string[] = pageIdToViewClassMap.getAllKeys();
|
|
23
|
+
let pageIdsCount: number = pageIds.length;
|
|
24
|
+
for (let pageIdIndex: number = 0; pageIdIndex < pageIdsCount; pageIdIndex++) {
|
|
25
|
+
let tempPageClass = pageIdToViewClassMap.getItemByIndex(pageIdIndex);
|
|
26
|
+
let tempPageId: string = pageIds[pageIdIndex];
|
|
27
|
+
|
|
28
|
+
this.viewStack.addViewClass(tempPageClass, tempPageId);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
this.commitPagesData();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
protected addListeners(): void {
|
|
35
|
+
super.addListeners();
|
|
36
|
+
|
|
37
|
+
this.eventListenerHelper.addEventListener(
|
|
38
|
+
this.pagesModel,
|
|
39
|
+
PagesModelEvent.PAGE_ID_CHANGE,
|
|
40
|
+
this.onPageIdChange
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
protected onPageIdChange(): void {
|
|
45
|
+
this.commitPagesData();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
protected commitPagesData(): void {
|
|
49
|
+
this.viewStack.selectedId = this.pagesModel.pageId;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
protected arrange(): void {
|
|
53
|
+
super.arrange();
|
|
54
|
+
|
|
55
|
+
this.viewStack.resize(this.resizeSize.x, this.resizeSize.y);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {ObjectsPool} from "@flashist/fcore";
|
|
2
|
+
import {serviceLocatorAdd, ServiceLocatorObjectsPool} from "@flashist/flibs";
|
|
3
|
+
|
|
4
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
5
|
+
|
|
6
|
+
export class ObjectsPoolModule extends BaseAppModule {
|
|
7
|
+
init(): void {
|
|
8
|
+
super.init();
|
|
9
|
+
|
|
10
|
+
serviceLocatorAdd(ObjectsPool, {isSingleton: true});
|
|
11
|
+
serviceLocatorAdd(ServiceLocatorObjectsPool, {toSubstitute: ObjectsPool});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
4
|
+
import {RendererManager} from "./managers/RendererManager";
|
|
5
|
+
|
|
6
|
+
export class RendererModule extends BaseAppModule {
|
|
7
|
+
|
|
8
|
+
init(): void {
|
|
9
|
+
super.init();
|
|
10
|
+
|
|
11
|
+
serviceLocatorAdd(RendererManager, {isSingleton: true, forceCreation: true});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as PIXI from "pixi.js";
|
|
2
|
+
|
|
3
|
+
import { FApp } from "@flashist/flibs";
|
|
4
|
+
|
|
5
|
+
import { BaseAppManager } from "../../base/managers/BaseAppManager";
|
|
6
|
+
import { Facade } from "../../facade/Facade";
|
|
7
|
+
import { RendererManagerEvent } from "../events/RendererManagerEvent";
|
|
8
|
+
|
|
9
|
+
export class RendererManager extends BaseAppManager {
|
|
10
|
+
|
|
11
|
+
protected targetFps: number;
|
|
12
|
+
|
|
13
|
+
protected construction(targetFps?: number): void {
|
|
14
|
+
super.construction();
|
|
15
|
+
|
|
16
|
+
if (this.targetFps) {
|
|
17
|
+
PIXI.settings.TARGET_FPMS = this.targetFps / 1000;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Facade.instance.app = new FApp(
|
|
21
|
+
{
|
|
22
|
+
targetFps: targetFps
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
// Stage
|
|
27
|
+
Facade.instance.app.stage.interactive = true;
|
|
28
|
+
|
|
29
|
+
// Renderer
|
|
30
|
+
// Facade.instance.app.renderer.autoDensity = true;
|
|
31
|
+
// CSS settings
|
|
32
|
+
Facade.instance.app.renderer.view.style.position = "absolute";
|
|
33
|
+
Facade.instance.app.renderer.view.style.top = "0px";
|
|
34
|
+
Facade.instance.app.renderer.view.style.left = "0px";
|
|
35
|
+
|
|
36
|
+
// Append the renderer canvas to DOM
|
|
37
|
+
document.body.appendChild(Facade.instance.app.view);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public resize(width: number, height: number): void {
|
|
41
|
+
Facade.instance.app.renderer.resize(width, height);
|
|
42
|
+
this.dispatchEvent(RendererManagerEvent.RESIZE);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public get rendererWidth(): number {
|
|
46
|
+
return Facade.instance.app.renderer.width;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public get rendererHeight(): number {
|
|
50
|
+
return Facade.instance.app.renderer.height;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {serviceLocatorAdd} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppModule} from "../base/modules/BaseAppModule";
|
|
4
|
+
import {ServerModel} from "./models/ServerModel";
|
|
5
|
+
|
|
6
|
+
export class ServerModule extends BaseAppModule {
|
|
7
|
+
|
|
8
|
+
init(): void {
|
|
9
|
+
super.init();
|
|
10
|
+
|
|
11
|
+
serviceLocatorAdd(ServerModel, {isSingleton: true});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {GenericObjectsByTypeModel, getInstance} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
import {BaseAppCommand} from "../../base/commands/BaseAppCommand";
|
|
4
|
+
import {IServerResponseVO} from "../data/IServerResponseVO";
|
|
5
|
+
import {ServerModel} from "../models/ServerModel";
|
|
6
|
+
import {IServerRequestVO} from "../data/IServerRequestVO";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The class is not prepared fully and at the current moment
|
|
10
|
+
* is substituted by game-level command, which emulates connection with server-side.
|
|
11
|
+
*/
|
|
12
|
+
export abstract class BaseServerCommand
|
|
13
|
+
<
|
|
14
|
+
ResponseType extends IServerResponseVO = IServerResponseVO,
|
|
15
|
+
RequestType extends IServerRequestVO = IServerRequestVO,
|
|
16
|
+
>
|
|
17
|
+
extends BaseAppCommand<ResponseType> {
|
|
18
|
+
|
|
19
|
+
protected serverModel: ServerModel = getInstance(ServerModel);
|
|
20
|
+
protected genericByTypeModel: GenericObjectsByTypeModel = getInstance(GenericObjectsByTypeModel);
|
|
21
|
+
|
|
22
|
+
constructor(protected requestData: RequestType) {
|
|
23
|
+
super()
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
protected notifyComplete(resolveData?: ResponseType, rejectErrorData?: any): void {
|
|
27
|
+
if (resolveData.errorCode) {
|
|
28
|
+
this.errorCode = resolveData.errorCode;
|
|
29
|
+
}
|
|
30
|
+
if (resolveData.time || resolveData.time === 0) {
|
|
31
|
+
this.serverModel.serverTime = resolveData.time;
|
|
32
|
+
}
|
|
33
|
+
if (resolveData.items) {
|
|
34
|
+
this.genericByTypeModel.commitItems(resolveData.items);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
super.notifyComplete(resolveData, rejectErrorData);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {IGenericObjectVO} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
export interface IServerRequestVO {
|
|
4
|
+
requestId: string;
|
|
5
|
+
loginData?: string;
|
|
6
|
+
|
|
7
|
+
items?: IGenericObjectVO;
|
|
8
|
+
|
|
9
|
+
// This is needed because since some typescript version it's not possible
|
|
10
|
+
// to use object with fields, not described in an interface
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {IGenericObjectVO} from "@flashist/flibs";
|
|
2
|
+
|
|
3
|
+
export interface IServerResponseVO {
|
|
4
|
+
id: string;
|
|
5
|
+
|
|
6
|
+
errorCode?: string;
|
|
7
|
+
errorMessage?: string;
|
|
8
|
+
|
|
9
|
+
time?: number;
|
|
10
|
+
items?: IGenericObjectVO[];
|
|
11
|
+
|
|
12
|
+
// This is needed because since some typescript version it's not possible
|
|
13
|
+
// to use object with fields, not described in an interface
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|