112 lines
2.6 KiB
C#
112 lines
2.6 KiB
C#
using cfg.ActorCfg;
|
|
using Framework;
|
|
using PhxhSDK;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class AlbumManager : Singlenton<AlbumManager>, IInitable
|
|
{
|
|
bool initialized = false;
|
|
|
|
public string curMusicKey;
|
|
|
|
Dictionary<int, DataAlbum> albumDic = new Dictionary<int, DataAlbum>();
|
|
List<DataAlbum> albumList = new List<DataAlbum>();
|
|
|
|
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<int, DataAlbum> AlbumsDic => albumDic;
|
|
public List<DataAlbum> 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<AlbumLocalData>("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<AlbumLocalData>("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<int> unlockedAlbumLst = new List<int>();
|
|
}
|