using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 负责工具材料包管理 /// public class PacksackBagMgr : BaseManager { //包里用了哪些工器具 private readonly Dictionary> toolAndMaterialDic = new Dictionary>(); private PacksackBagMgr() { } public Dictionary> GetCurrentBagData() { return toolAndMaterialDic; } /// /// 添加一个工器具或材料 /// /// public void AddOneToolOrMater(ItemInfo itemInfo) { if (toolAndMaterialDic.ContainsKey(itemInfo)) { toolAndMaterialDic[itemInfo].Add(itemInfo); } else { toolAndMaterialDic.Add(itemInfo, new List() { itemInfo }); } } public Dictionary> GetItemsByE_TMDType(E_ToolOrDeviceOrMaterials tmdTpye) { Dictionary> tempNew = new Dictionary>(); var dicTemp = GetCurrentBagData(); foreach (var item in dicTemp.Keys) { if (item.toolOrDeviceOrMaterial == tmdTpye) { if (tempNew.ContainsKey(item)) { tempNew[item].Add(item); } else { tempNew.Add(item, new List() { item }); } } } return tempNew; } /// /// 移除一个工器具或材料 /// /// public bool RemoveOneToolOrMater(ItemInfo itemInfo,ref int count) { if (toolAndMaterialDic.ContainsKey(itemInfo)) { if (toolAndMaterialDic[itemInfo].Count > 1) { toolAndMaterialDic[itemInfo].Remove(itemInfo); count = toolAndMaterialDic[itemInfo].Count; return true; } else { toolAndMaterialDic.Remove(itemInfo); return false; } } return false; } }