109 lines
3.5 KiB
Plaintext
109 lines
3.5 KiB
Plaintext
import { _decorator, sys } from "cc";
|
|
import Utils from "../Common/Utils";
|
|
import { CommonConfig } from "../Config/CommonConfig";
|
|
import AudioManager from "./AudioManager";
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('PlayerDataManager')
|
|
export default class PlayerDataManager {
|
|
private static _I: PlayerDataManager = null;
|
|
public static get I(): PlayerDataManager {
|
|
if (!PlayerDataManager._I) {
|
|
PlayerDataManager._I = new PlayerDataManager();
|
|
PlayerDataManager._I.init()
|
|
}
|
|
return PlayerDataManager._I;
|
|
}
|
|
|
|
private lastPassLevel: number = 0; //普通关卡
|
|
private lastPassLevelOfDailyChallenge: number = 0; //每日挑战关卡
|
|
private myScore: number = 0; //玩家积分
|
|
private skinId: number = 0; //当前使用的皮肤id
|
|
private myCityId: number = -1; //所在省
|
|
private isShakeOn: boolean = true; //震动
|
|
private isMusicOn: boolean = true; //音乐
|
|
private isSoundOn: boolean = true; //音效
|
|
|
|
|
|
public get IsShakeOn() : boolean {return this.isShakeOn;}
|
|
public get IsMusicOn() : boolean {return this.isMusicOn;}
|
|
public get IsSoundOn() : boolean {return this.isSoundOn;}
|
|
|
|
|
|
private init(){
|
|
this.InitPlayerData();
|
|
}
|
|
public initEmpty(){
|
|
|
|
}
|
|
|
|
|
|
private InitPlayerData() {
|
|
this.lastPassLevel = PlayerDataManager.getForKey(CommonConfig.StorageConfig.GAME_PASSLV, 0)
|
|
this.lastPassLevelOfDailyChallenge = PlayerDataManager.getForKey(CommonConfig.StorageConfig.DAILYCHALLENGE_PASSLV, 0)
|
|
// this.isShakeOn = PlayerDataManager.getForKey(CommonConfig.StorageConfig.SETTING_SHAKEON, true)
|
|
// this.isMusicOn = PlayerDataManager.getForKey(CommonConfig.StorageConfig.SETTING_MUSIC, true)
|
|
// this.isSoundOn = PlayerDataManager.getForKey(CommonConfig.StorageConfig.SETTING_SOUND, true)
|
|
}
|
|
|
|
|
|
public SetMusicOn(bo: boolean) {
|
|
if (this.isMusicOn == bo)
|
|
return
|
|
this.isMusicOn = bo
|
|
PlayerDataManager.setForKey(CommonConfig.StorageConfig.SETTING_MUSIC, bo)
|
|
if (bo)
|
|
AudioManager.I.ReplayMusic()
|
|
else
|
|
AudioManager.I.StopMusic()
|
|
}
|
|
|
|
public SetSoundOn(bo: boolean) {
|
|
if (this.isSoundOn == bo)
|
|
return
|
|
this.isSoundOn = bo
|
|
PlayerDataManager.setForKey(CommonConfig.StorageConfig.SETTING_SOUND, bo)
|
|
}
|
|
|
|
|
|
/**
|
|
* 类型内部处理,外层部分类型 isBindingId //标识位数据需要绑定 playerid的时候,默认值为 true,若是传 false,则不进入绑定
|
|
* */
|
|
static setForKey(key: number | string, data) {
|
|
if (!key || void (0) === data) {
|
|
Utils.Log("key can`t nil");
|
|
return;
|
|
}
|
|
key = key + "";
|
|
sys.localStorage.setItem(key, JSON.stringify(data));
|
|
}
|
|
|
|
static removeForKey(key: number | string): void {
|
|
key = key + "";
|
|
sys.localStorage.setItem(key, "");
|
|
}
|
|
|
|
static getForKey(key: number | string, defaultVal): any {
|
|
if (!key) {
|
|
Utils.Log("key can`t nil");
|
|
return;
|
|
}
|
|
key = key + "";
|
|
let jsonObj;
|
|
try {
|
|
let str = sys.localStorage.getItem(key);
|
|
try {
|
|
jsonObj = JSON.parse(str);
|
|
} catch (error) {
|
|
jsonObj = str;
|
|
}
|
|
} catch (error) {
|
|
Utils.Log(`getForKey--->>>解析${key}的值的时候报错`);
|
|
}
|
|
if (jsonObj == null){
|
|
jsonObj = defaultVal;
|
|
}
|
|
return jsonObj;
|
|
}
|
|
} |