NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Mail/MailSystem.cs

77 lines
1.8 KiB
C#
Raw Normal View History

2023-12-11 18:56:57 +08:00
using Framework;
using Gameplay;
using Gameplay.Net;
using PhxhSDK;
using System.Collections.Generic;
public class MailSystem : Singlenton<MailSystem>, IInitable
{
public List<SingleMail> DataList;
public Dictionary<ulong, SingleMail> DataDic;
public bool isHaveAll;
public void Init()
{
DataList = new List<SingleMail>();
DataDic = new Dictionary<ulong, SingleMail>();
isHaveAll = false;
}
public void Release()
{
DataList = new List<SingleMail>();
DataDic = new Dictionary<ulong, SingleMail>();
}
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;
}
}
}
}