using System.Collections.Generic; namespace GFGGame { public class SuitCfgManager : SingletonBase { private Dictionary _suitIDDicByItemID; private Dictionary _totalCountDic = new Dictionary(); /// /// 获取所有套装中部件的总个数 /// public int totalItemCount { get; private set; } public SuitCfgManager() { InitDic(); } /// /// 获取物品所属套装id /// /// /// public int GetItemSuitId(int itemId) { if (_suitIDDicByItemID.ContainsKey(itemId)) { return _suitIDDicByItemID[itemId]; } return 0; } /// /// 获取指定套装中部件的总数 /// /// /// public int GetTotalCountOfOneSuit(int suitId) { return _totalCountDic[suitId]; } /// /// 获取指定套装中部件的id数组 /// /// /// public int[] GetSuitItems(int suitId, bool checkScene = false) { SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId); if (checkScene) { List parts = new List(); 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(); 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; } } }