62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using Fantasy.Entitas;
|
|
using Fantasy.Helper;
|
|
// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
|
|
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
|
|
|
|
namespace Fantasy;
|
|
|
|
public static class MailBoxFactory
|
|
{
|
|
/// <summary>
|
|
/// 创建一个邮件箱
|
|
/// </summary>
|
|
/// <param name="scene"></param>
|
|
/// <param name="mailBoxType"></param>
|
|
/// <param name="sendAccountId"></param>
|
|
/// <param name="mail"></param>
|
|
/// <param name="expireTime"></param>
|
|
/// <param name="accountId"></param>
|
|
/// <returns></returns>
|
|
public static MailBox Create(Scene scene, MailBoxType mailBoxType, long sendAccountId, Mail mail, int expireTime, List<long> accountId = null)
|
|
{
|
|
var mailBox = Entity.Create<MailBox>(scene, true, true);
|
|
mailBox.SendAccountId = sendAccountId;
|
|
mailBox.Mail = mail;
|
|
mailBox.MailBoxType = mailBoxType;
|
|
mailBox.CreateTime = TimeHelper.Now;
|
|
mailBox.ExpireTime = mailBox.CreateTime + expireTime;
|
|
|
|
if (accountId == null || accountId.Count <= 0)
|
|
{
|
|
return mailBox;
|
|
}
|
|
|
|
foreach (var raId in accountId)
|
|
{
|
|
mailBox.AccountId.Add(raId);
|
|
}
|
|
|
|
return mailBox;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建一个邮件箱
|
|
/// </summary>
|
|
/// <param name="scene"></param>
|
|
/// <param name="mailType"></param>
|
|
/// <param name="mailBoxType"></param>
|
|
/// <param name="title"></param>
|
|
/// <param name="content"></param>
|
|
/// <param name="money"></param>
|
|
/// <param name="items"></param>
|
|
/// <param name="sendAccountId"></param>
|
|
/// <param name="expireTime"></param>
|
|
/// <param name="accountId"></param>
|
|
/// <returns></returns>
|
|
public static MailBox Create(Scene scene, MailType mailType, MailBoxType mailBoxType, string title, string content, int money, List<Item> items,
|
|
long sendAccountId, int expireTime, List<long> accountId = null)
|
|
{
|
|
var mail = MailFactory.Create(scene, mailType,title, content, money, items);
|
|
return Create(scene, mailBoxType, sendAccountId, mail, expireTime, accountId);
|
|
}
|
|
} |