초기커밋
This commit is contained in:
120
GameServer/Contents/Craft/Craft.cs
Normal file
120
GameServer/Contents/Craft/Craft.cs
Normal file
@@ -0,0 +1,120 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
using BEACON_GUID = System.String;
|
||||
using META_ID = System.UInt32;
|
||||
using ANCHOR_GUID = System.String;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class Craft : EntityBase
|
||||
{
|
||||
public Craft(EntityBase parent)
|
||||
: base(EntityType.Craft, parent)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<Result> onInit()
|
||||
{
|
||||
var direct_parent = getDirectParent();
|
||||
NullReferenceCheckHelper.throwIfNull(direct_parent, () => $"direct_parent is null !!!");
|
||||
addEntityAttribute(new CraftAttribute(this, direct_parent));
|
||||
return await base.onInit();
|
||||
}
|
||||
|
||||
public override string toBasicString()
|
||||
{
|
||||
return $"{this.getTypeName()} - {getRootParent().toBasicString()}";
|
||||
}
|
||||
|
||||
public override string toSummaryString()
|
||||
{
|
||||
return $"{this.getTypeName()} - {getRootParent().toBasicString()}";
|
||||
}
|
||||
|
||||
public static async Task<(Result, Craft?)> createCraftFromDoc(EntityBase parent, CraftDoc doc)
|
||||
{
|
||||
var craft = new Craft(parent);
|
||||
var result = await craft.onInit();
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var craft_attribute = craft.getEntityAttribute<CraftAttribute>();
|
||||
if (craft_attribute == null)
|
||||
{
|
||||
err_msg = $"Failed to get craft attribute : {nameof(CraftAttribute)}";
|
||||
result.setFail(ServerErrorCode.EntityAttributeIsNull, err_msg);
|
||||
Log.getLogger().error(err_msg);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
if (craft_attribute.copyEntityAttributeFromDoc(doc) == false)
|
||||
{
|
||||
err_msg = $"Failed to copyEntityAttributeFromDoc !!! : doc_type {doc.GetType()} - {craft.getRootParent().toBasicString()}";
|
||||
result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg);
|
||||
Log.getLogger().error(err_msg);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
return (result, craft);
|
||||
}
|
||||
|
||||
public static async Task<(Result, Craft?)> createCraft(EntityBase parent, ANCHOR_GUID anchor_guid, META_ID craft_meta_id, BEACON_GUID beacon_guid, DateTime now, DateTime craft_finish_time, int craft_count)
|
||||
{
|
||||
var craft = new Craft(parent);
|
||||
var result = await craft.onInit();
|
||||
if (result.isFail())
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var craft_attribute = craft.getEntityAttribute<CraftAttribute>();
|
||||
if (craft_attribute == null)
|
||||
{
|
||||
err_msg = $"Failed to get craft attribute : {nameof(CraftAttribute)}";
|
||||
result.setFail(ServerErrorCode.EntityAttributeIsNull, err_msg);
|
||||
Log.getLogger().error(err_msg);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
craft_attribute.AnchorGuid = anchor_guid;
|
||||
craft_attribute.CraftMetaId = craft_meta_id;
|
||||
craft_attribute.CraftStartTime = now;
|
||||
craft_attribute.CraftFinishTime = craft_finish_time;
|
||||
craft_attribute.BeaconGuid = beacon_guid;
|
||||
craft_attribute.CraftCount = craft_count;
|
||||
|
||||
craft_attribute.newEntityAttribute();
|
||||
|
||||
return (result, craft);
|
||||
}
|
||||
|
||||
public CraftInfo toCraftData4Client()
|
||||
{
|
||||
var craft_4_client = new CraftInfo();
|
||||
|
||||
var craft_attribute = getEntityAttribute<CraftAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(craft_attribute, () => $"craft_attribute is null !!!");
|
||||
|
||||
craft_4_client.AnchorGuid = craft_attribute.AnchorGuid;
|
||||
craft_4_client.CraftMetaId = (int)craft_attribute.CraftMetaId;
|
||||
craft_4_client.CraftStartTime = new Timestamp();
|
||||
if (craft_attribute.CraftStartTime != new DateTime())
|
||||
{
|
||||
craft_4_client.CraftStartTime = Timestamp.FromDateTime(craft_attribute.CraftStartTime);
|
||||
}
|
||||
craft_4_client.CraftFinishTime = Timestamp.FromDateTime(craft_attribute.CraftFinishTime);
|
||||
craft_4_client.BeaconGuid = craft_attribute.BeaconGuid;
|
||||
craft_4_client.CraftCount = craft_attribute.CraftCount;
|
||||
|
||||
return craft_4_client;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user