mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-10-09 16:46:00 +00:00
app root changes
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import { Component, director, instantiate, JsonAsset, Prefab, _decorator } from "cc";
|
||||
import { Camera, Component, director, instantiate, JsonAsset, Prefab, _decorator } from "cc";
|
||||
import { GameSettings } from "../Game/Data/GameSettings";
|
||||
import { GameAssets } from "../Game/Data/Assets/GameAssets";
|
||||
import { TranslationData } from "../Game/Data/TranslationData";
|
||||
import { UserData } from "../Game/Data/UserData";
|
||||
import { AudioPlayer } from "../Services/AudioPlayer/AudioPlayer";
|
||||
import { SaveSystem } from "./SaveSystem";
|
||||
import { ModalWindowManager } from "../Services/ModalWindowSystem/ModalWindowManager";
|
||||
import { OpenCloseAnimator } from "../Utils/OpenCloseAnimator";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("AppRoot")
|
||||
@@ -13,6 +15,9 @@ export class AppRoot extends Component {
|
||||
@property(JsonAsset) private settingsAsset: JsonAsset;
|
||||
@property(JsonAsset) private engTranslationAsset: JsonAsset;
|
||||
@property(Prefab) private gameAssetsPrefab: Prefab;
|
||||
@property(Camera) private mainCamera: Camera;
|
||||
@property(ModalWindowManager) private modalWindowManager: ModalWindowManager;
|
||||
@property(OpenCloseAnimator) private screenFader: OpenCloseAnimator;
|
||||
|
||||
private static instance: AppRoot;
|
||||
private saveSystem: SaveSystem;
|
||||
@@ -44,6 +49,18 @@ export class AppRoot extends Component {
|
||||
return <TranslationData>this.engTranslationAsset.json;
|
||||
}
|
||||
|
||||
public get ModalWindowManager(): ModalWindowManager {
|
||||
return this.modalWindowManager;
|
||||
}
|
||||
|
||||
public get MainCamera(): Camera {
|
||||
return this.mainCamera;
|
||||
}
|
||||
|
||||
public get ScreenFader(): OpenCloseAnimator {
|
||||
return this.screenFader;
|
||||
}
|
||||
|
||||
public saveUserData(): void {
|
||||
this.saveSystem.save(this.liveUserData);
|
||||
}
|
||||
@@ -54,7 +71,7 @@ export class AppRoot extends Component {
|
||||
director.addPersistRootNode(this.node);
|
||||
this.init();
|
||||
} else {
|
||||
this.destroy();
|
||||
this.node.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,5 +85,8 @@ export class AppRoot extends Component {
|
||||
this.gameAssets.init();
|
||||
|
||||
this.audio.init(this.LiveUserData.soundVolume, this.LiveUserData.musicVolume);
|
||||
|
||||
this.screenFader.init();
|
||||
this.screenFader.node.active = false;
|
||||
}
|
||||
}
|
||||
|
13
assets/Scripts/AppRoot/AppRootUtils.ts
Normal file
13
assets/Scripts/AppRoot/AppRootUtils.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { delay } from "../Services/Utils/AsyncUtils";
|
||||
import { AppRoot } from "./AppRoot";
|
||||
|
||||
export async function requireAppRootAsync(): Promise<void> {
|
||||
console.log("Waiting for app root");
|
||||
while (AppRoot.Instance == null) await delay(10);
|
||||
|
||||
AppRoot.Instance.node.setSiblingIndex(1000); // render on top
|
||||
AppRoot.Instance.node.active = false; // forces engine to reorder by hierarchy
|
||||
AppRoot.Instance.node.active = true;
|
||||
|
||||
console.log("App root ready");
|
||||
}
|
9
assets/Scripts/AppRoot/AppRootUtils.ts.meta
Normal file
9
assets/Scripts/AppRoot/AppRootUtils.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "43cfb543-4c62-4c36-bb28-f307b2e1d280",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
Reference in New Issue
Block a user