squidGame/tgx-games-client/assets/module_basic/scripts/UserLocalCache.ts

65 lines
1.8 KiB
TypeScript

import { EFightModel } from "../shared/protocols/public/arean/AreanTypeDef";
const KEY_ACCOUNT = 'user:account';
const KEY_PASSWORD = 'user:password';
const KEY_MUSIC_VOLUME = 'user:music_volume';
const KEY_SOUND_VOLUME = 'user:sound_volume';
export class UserLocalCache {
private static _inst: UserLocalCache;
public static get inst(): UserLocalCache {
if (!this._inst) {
this._inst = new UserLocalCache();
}
return this._inst;
}
public get account(): string {
return localStorage.getItem(KEY_ACCOUNT);
}
public get password(): string {
return localStorage.getItem(KEY_PASSWORD);
}
public storeAccount(account: string) {
localStorage.setItem(KEY_ACCOUNT, account);
}
public storePassword(password: string) {
localStorage.setItem(KEY_PASSWORD, password);
}
public set musicVolume(v: number) {
localStorage.setItem(KEY_MUSIC_VOLUME, v.toString());
}
public get musicVolume(): number {
return Number(localStorage.getItem(KEY_MUSIC_VOLUME) || '1.0');
}
public set soundVolume(v: number) {
localStorage.setItem(KEY_SOUND_VOLUME, v.toString());
}
public get soundVolume(): number {
return Number(localStorage.getItem(KEY_SOUND_VOLUME) || '1.0');
}
public setFightModel(model : string = EFightModel.Match) {
console.log("setFightModel",model);
localStorage.setItem("FightModel",model);
}
public get fightModel(): EFightModel {
let model = localStorage.getItem("FightModel");
// console.log("getFightModel",model);
if (model) {
return model as EFightModel;
}else {
this.setFightModel(EFightModel.Match);
return EFightModel.Match;
}
}
}