62 lines
2.3 KiB
C#
62 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Google.Protobuf.WellKnownTypes;
|
|
|
|
|
|
using ServerCore; using ServerBase;
|
|
|
|
|
|
namespace ServerCommon;
|
|
|
|
public static class ClientMessageHelper
|
|
{
|
|
public static global::Item toItemData4Client(this ItemBase item)
|
|
{
|
|
var parent = item.getRootParent();
|
|
NullReferenceCheckHelper.throwIfNull(parent, () => $"parent is null !!!");
|
|
|
|
var item_attribute = item.getEntityAttribute<ItemAttributeBase>();
|
|
NullReferenceCheckHelper.throwIfNull(item_attribute, () => $"item_attribute is null !!! - {parent.toBasicString()}");
|
|
|
|
return item_attribute.toItemData4Client();
|
|
}
|
|
|
|
public static global::Item toItemData4Client(this ItemAttributeBase itemAttributeBase)
|
|
{
|
|
var owner = itemAttributeBase.getOwner();
|
|
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
|
|
|
|
var parent = owner.getRootParent();
|
|
NullReferenceCheckHelper.throwIfNull(parent, () => $"parent is null !!! - {owner.toBasicString()}");
|
|
|
|
var item_4_client = new global::Item();
|
|
|
|
item_4_client.ItemGuid = itemAttributeBase.ItemGuid;
|
|
item_4_client.ItemId = (Int32)itemAttributeBase.ItemMetaId;
|
|
item_4_client.Count = itemAttributeBase.ItemStackCount;
|
|
item_4_client.Slot = itemAttributeBase.EquipedPos;
|
|
item_4_client.Level = itemAttributeBase.Level;
|
|
item_4_client.Attributeids.AddRange(itemAttributeBase.Attributes.Select<UInt16, Int32>(x => x).ToList());
|
|
|
|
(var result, DynamoDbDocBase? doc_base) = itemAttributeBase.toDocBase(false).GetAwaiter().GetResult();
|
|
if(result.isFail())
|
|
{
|
|
var err_msg = $"Failed to toDocBase() !!!, in toItemData4Client() : {result.toBasicString()} - {owner.toBasicString()}, {parent.toBasicString()}";
|
|
Log.getLogger().error(err_msg);
|
|
return item_4_client;
|
|
}
|
|
NullReferenceCheckHelper.throwIfNull(doc_base, () => $"doc_base is null !!! - {itemAttributeBase.toBasicString()}");
|
|
|
|
item_4_client.CreateTime = doc_base.getCreatedDateTime().ProcessedTime.ToTimestamp();
|
|
item_4_client.CreateTime = doc_base.getUpdatedDateTime().ProcessedTime.ToTimestamp();
|
|
|
|
return item_4_client;
|
|
}
|
|
}
|