using Framework; using Gameplay; using Gameplay.Net; using PhxhSDK; using System.Collections.Generic; public class MailSystem : Singlenton, IInitable { public List DataList; public Dictionary DataDic; public bool isHaveAll; public void Init() { DataList = new List(); DataDic = new Dictionary(); isHaveAll = false; } public void Release() { DataList = new List(); DataDic = new Dictionary(); } public void RemoveMail(ulong id) { SingleMail mail = null; if (DataDic.TryGetValue(id, out mail)) { DataDic.Remove(id); DataList.Remove(mail); } else { DebugUtil.LogError("移除id为{0}的邮件失败",id); } } public void AddMail(Mail mail) { SingleMail info2; if (DataDic.TryGetValue(mail.Id, out info2)) { DataDic[mail.Id].Refresh(mail); for (int i = 0; i < DataList.Count; i++) { if (DataList[i].Id== mail.Id) { DataList[i].Refresh(mail); return; } } } else { SingleMail newInfo = new SingleMail(mail); DataList.Add(newInfo); DataDic[mail.Id] = newInfo; MailSystem.Instance.isHaveAll=true; } } public void SetStatus(ulong id,uint status) { DataDic[id].SetStatus(status); for (int i = 0; i < DataList.Count; i++) { if (DataList[i].Status==status) { DataList[i].SetStatus(status); return; } } } }