12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System.Collections.Generic;
- namespace GFGGame
- {
- public class SuitCfgManager : SingletonBase<SuitCfgManager>
- {
- private Dictionary<int, int> _suitIDDicByItemID;
- private Dictionary<int, int> _totalCountDic = new Dictionary<int, int>();
- /// <summary>
- /// 获取所有套装中部件的总个数
- /// </summary>
- public int totalItemCount
- {
- get;
- private set;
- }
- public SuitCfgManager()
- {
- InitDic();
- }
- /// <summary>
- /// 获取物品所属套装id
- /// </summary>
- /// <param name="itemId"></param>
- /// <returns></returns>
- public int GetItemSuitId(int itemId)
- {
- if (_suitIDDicByItemID.ContainsKey(itemId))
- {
- return _suitIDDicByItemID[itemId];
- }
- return 0;
- }
- /// <summary>
- /// 获取指定套装中部件的总数
- /// </summary>
- /// <param name="suitId"></param>
- /// <returns></returns>
- public int GetTotalCountOfOneSuit(int suitId)
- {
- return _totalCountDic[suitId];
- }
- /// <summary>
- /// 获取指定套装中部件的id数组
- /// </summary>
- /// <param name="suitId"></param>
- /// <returns></returns>
- public int[] GetSuitItems(int suitId, bool checkScene = false)
- {
- SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
- if (checkScene)
- {
- List<int> parts = new List<int>();
- for (int i = 0; i < suitCfg.partsArr.Length; i++)
- {
- if (!DressUpMenuItemDataManager.CheckIsSceneType(suitCfg.partsArr[i]))
- {
- parts.Add(suitCfg.partsArr[i]);
- }
- }
- return parts.ToArray();
- }
- return suitCfg.partsArr;
- }
- private void InitDic()
- {
- _suitIDDicByItemID = new Dictionary<int, int>();
- SuitCfg[] dataArray = SuitCfgArray.Instance.dataArray;
- foreach (SuitCfg suitCfg in dataArray)
- {
- parseSuitItems(suitCfg);
- }
- }
- private void parseSuitItems(SuitCfg suitCfg)
- {
- int[] items = suitCfg.partsArr;
- int len = items.Length;
- for (int i = 0; i < len; i++)
- {
- int itemID = items[i];
- _suitIDDicByItemID.Add(itemID, suitCfg.id);
- }
- int itemCount = items.Length;
- _totalCountDic[suitCfg.id] = itemCount;
- totalItemCount += itemCount;
- }
- }
- }
|