using System; using System.Collections.Generic; using System.IO; using ET; using FairyGUI; using UI.DressUp; using UnityEngine; namespace GFGGame { public enum EnumPhotographType { BG, NPC, SCENE, BORDER, EFFECT } public class PhotographDataManager : SingletonBase { public List itemGameObjs = new List(); public const int layerCount = 600; public DressUpObj dressUpObj;//当前穿戴的角色数据 public Dictionary> _equipSceneData = new Dictionary>();//当前穿戴的场景数据 public List listBgData = new List(); public List listNpcData = new List(); public List listSceneData = new List(); public List listBorderData = new List(); public List listEffectData = new List(); public void Clear() { listBgData.Clear(); listNpcData.Clear(); listSceneData.Clear(); listBorderData.Clear(); listEffectData.Clear(); } public void Add(ItemInfoProto itemInfoProto) { //游戏初始化禁止使用ItemCfg var itemID = itemInfoProto.ConfigId; if (itemInfoProto.Type == ConstItemType.DRESS_UP) { if (itemInfoProto.SubType == ConstDressUpItemType.BEI_JING) { if (listBgData.IndexOf(itemID) < 0) listBgData.Add(itemID); } else if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemInfoProto, false)) { if (listSceneData.IndexOf(itemID) < 0) listSceneData.Add(itemID); } } else if (itemInfoProto.Type == ConstItemType.PHOTOGRAPH) { if (itemInfoProto.SubType == ConstItemSubType.PHOTOGRAPH_NPC) { if (listNpcData.IndexOf(itemID) < 0) listNpcData.Add(itemID); } else if (itemInfoProto.SubType == ConstItemSubType.PHOTOGRAPH_BOREDR) { if (listBorderData.IndexOf(ConstItemID.BORDERID) < 0) listBorderData.Insert(0, ConstItemID.BORDERID); if (listBorderData.IndexOf(itemID) < 0) listBorderData.Add(itemID); } else if (itemInfoProto.SubType == ConstItemSubType.PHOTOGRAPH_EFFECT) { if (listEffectData.IndexOf(ConstItemID.EFFECTID) < 0) listEffectData.Insert(0, ConstItemID.EFFECTID); if (listEffectData.IndexOf(itemID) < 0) listEffectData.Add(itemID); } } } //将穿戴数据分类 public void ClassifyEquipData() { dressUpObj?.Dispose(); dressUpObj = new DressUpObj(); _equipSceneData.Clear(); for (int i = 0; i < MyDressUpHelper.dressUpObj.itemList.Count; i++) { int itemId = MyDressUpHelper.dressUpObj.itemList[i]; if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemId, false)) { if (!_equipSceneData.ContainsKey(itemId)) { _equipSceneData.Add(itemId, new List()); } _equipSceneData[itemId].Add(itemId); } } } public List GetListData(EnumPhotographType type) { switch (type) { case EnumPhotographType.BG: return listBgData; case EnumPhotographType.NPC: return listNpcData; case EnumPhotographType.SCENE: return listSceneData; case EnumPhotographType.BORDER: return listBorderData; case EnumPhotographType.EFFECT: return listEffectData; default: return new List(); } } } }