69 lines
1.7 KiB
C#
69 lines
1.7 KiB
C#
using Fantasy.Entitas.Interface;
|
|
|
|
namespace Fantasy;
|
|
|
|
public sealed class MailDestroySystem : DestroySystem<Mail>
|
|
{
|
|
protected override void Destroy(Mail self)
|
|
{
|
|
self.OwnerId = 0;
|
|
self.Title = null;
|
|
self.Content = null;
|
|
self.CreateTime = 0;
|
|
self.ExpireTime = 0;
|
|
self.Money = 0;
|
|
self.MailState = MailState.None;
|
|
self.MailType = MailType.None;
|
|
|
|
foreach (var selfItem in self.Items)
|
|
{
|
|
selfItem.Dispose();
|
|
}
|
|
|
|
self.Items.Clear();
|
|
}
|
|
}
|
|
|
|
public static class MailSystem
|
|
{
|
|
public static MailSimplifyInfo ToMailSimplifyInfo(this Mail self)
|
|
{
|
|
return new MailSimplifyInfo()
|
|
{
|
|
MailId = self.Id,
|
|
OwnerId = self.OwnerId,
|
|
Title = self.Title,
|
|
Content = self.Content,
|
|
CreateTime = self.CreateTime,
|
|
ExpireTime = self.ExpireTime,
|
|
MailState = (int)self.MailState,
|
|
MailType = (int)self.MailType
|
|
};
|
|
}
|
|
|
|
public static MailInfo ToMailInfo(this Mail self)
|
|
{
|
|
var mailInfo = new MailInfo()
|
|
{
|
|
MailId = self.Id,
|
|
OwnerId = self.OwnerId,
|
|
Title = self.Title,
|
|
Content = self.Content,
|
|
CreateTime = self.CreateTime,
|
|
ExpireTime = self.ExpireTime,
|
|
Money = self.Money,
|
|
MailState = (int)self.MailState,
|
|
MailType = (int)self.MailType
|
|
};
|
|
|
|
foreach (var selfItem in self.Items)
|
|
{
|
|
mailInfo.Items.Add(new ItemInfo()
|
|
{
|
|
Name = selfItem.Name,
|
|
});
|
|
}
|
|
|
|
return mailInfo;
|
|
}
|
|
} |