Slash-The-Hordes/assets/Scripts/AppRoot/AppRoot.ts

47 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-12-16 11:01:25 +00:00
import { _decorator, Component, Node, director, AudioSource, JsonAsset } from "cc";
import { GameSettings } from "../Game/Data/GameSettings";
import { TranslationData } from "../Game/Data/TranslationData";
2022-12-07 09:47:46 +00:00
import { SaveSystem } from "./SaveSystem";
const { ccclass, property } = _decorator;
@ccclass("AppRoot")
export class AppRoot extends Component {
@property(AudioSource) private soundSource: AudioSource;
@property(AudioSource) private musicSource: AudioSource;
2022-12-16 11:01:25 +00:00
@property(JsonAsset) private settingsAsset: JsonAsset;
@property(JsonAsset) private engTranslationAsset: JsonAsset;
2022-12-07 09:47:46 +00:00
private static instance: AppRoot;
private saveSystem: SaveSystem;
public static get Instance(): AppRoot {
return this.instance;
}
public get SaveSystem(): SaveSystem {
return this.saveSystem;
}
2022-12-16 11:01:25 +00:00
public get Settings(): GameSettings {
return <GameSettings>this.settingsAsset.json;
}
public get TranslationData(): TranslationData {
return <TranslationData>this.engTranslationAsset.json;
}
2022-12-07 09:47:46 +00:00
public start(): void {
if (AppRoot.Instance == null) {
AppRoot.instance = this;
director.addPersistRootNode(this.node);
this.init();
} else {
this.destroy();
}
}
private init(): void {
this.saveSystem = new SaveSystem();
}
}