using cfg.ActorCfg; using Framework; using PhxhSDK; using System.Collections; using System.Collections.Generic; using UnityEngine; public class AlbumManager : Singlenton, IInitable { bool initialized = false; public string curMusicKey; Dictionary albumDic = new Dictionary(); List albumList = new List(); public readonly bool loadFromLocal = true; void loadOrInit() { if(!initialized) { Init(); initialized = true; } } public void Init() { DebugUtil.Log("Test: AlbumMananger init!"); albumDic.Clear(); var albumCfg = TableManager.Instance.Tables.AlbumConfig; foreach (var item in albumCfg.DataList) { albumDic.Add(item.Id, item); albumList.Add(item); } } public void Release() { albumDic.Clear(); albumList.Clear(); } public Dictionary AlbumsDic => albumDic; public List AlbumsLst => albumList; public bool AlbumUnlocked(int albumId) { loadOrInit(); if (loadFromLocal) { if (albumDic.ContainsKey(albumId)) { if (albumDic[albumId].DefaultUnlock) { return true; } var data = StorageMgr.Instance.GetStorage("ALBUM_LOCAL_DATA"); if (data.unlockedAlbumLst.Contains(albumId)) { return true; } else { return false; } } else { DebugUtil.LogError(albumId + " not found in album config"); return false; } } else { DebugUtil.Log("服务器读取"); return false; //TODO 服务器逻辑 } } public DataAlbum GetCurAlbum() { loadOrInit(); if (loadFromLocal) { var localData = StorageMgr.Instance.GetStorage("ALBUM_LOCAL_DATA"); if(localData != null && localData.curAlbumId > 0) { return albumDic[localData.curAlbumId]; } else { return albumList[0]; } } else { DebugUtil.Log("服务器读取"); return null; //TODO 服务器逻辑 } } } public class AlbumLocalData { public int curAlbumId = 0; public List unlockedAlbumLst = new List(); }