초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,196 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Protobuf.WellKnownTypes;
using Newtonsoft.Json;
using ServerCore;
using ServerBase;
using SESSION_ID = System.Int32;
using WORLD_ID = System.UInt32;
using META_ID = System.UInt32;
using ENTITY_GUID = System.String;
using ACCOUNT_ID = System.String;
using OWNER_GUID = System.String;
using USER_GUID = System.String;
using CHARACTER_GUID = System.String;
using ITEM_GUID = System.String;
using ENTITY_UNIQUE_ID = System.String;
using ANCHOR_META_GUID = System.String;
using NPC_UNIQUE_ID = System.String;
using FARMING_ENTITY_GUID = System.String;
using LOCATION_UNIQUE_ID = System.String;
using FARMING_EFFECT_DOC_LINK_PKSK = System.String;
namespace ServerCommon;
public class FarmingEffectAttrib : AttribBase
{
[JsonProperty("anchor_meta_guid")] //[PK 참조]
public ANCHOR_META_GUID AnchorMetaGuid { get; set; } = string.Empty;
[JsonProperty("location_unique_id")] //[SK 참조]
public LOCATION_UNIQUE_ID LocationUniqueId { get; set; } = string.Empty;
[JsonProperty("farming_prop_meta_id")]
public META_ID FarmingPropMetaId { get; set; } = 0;
[JsonProperty("farming_summoned_enity_type")]
public FarmingSummonedEntityType FarmingSummonedEntityType { get; set; } = FarmingSummonedEntityType.None;
[JsonProperty("farming_entity_guid")] // FarmingSummonedEntityType.User: UserGuid, FarmingSummonedEntityType.Beacon: UgcNpcMetaGuid:
public FARMING_ENTITY_GUID FarmingEntityGuid { get; set; } = string.Empty;
[JsonProperty("farming_state")]
public FarmingStateType FarmingState { get; set; } = FarmingStateType.None;
[JsonProperty("farming_action_req_try_count")]
public Int16 FarmingActionReqTryCount { get; set; } = 0;
[JsonProperty("completed_reward_count")]
public Int16 CompletedRewardCount { get; set; } = 0;
[JsonProperty]
public DateTime FarmingLastUpdateTime { get; set; } = DateTimeHelper.MinTime;
[JsonProperty("farming_start_time")]
public DateTime FarmingStartTime { get; set; } = DateTimeHelper.MinTime;
[JsonProperty("farming_end_time")]
public DateTime FarmingEndTime { get; set; } = DateTimeHelper.MinTime;
[JsonProperty("farming_respawn_time")]
public DateTime FarmingRespawnTime { get; set; } = DateTimeHelper.MinTime;
public FarmingEffectAttrib()
: base(typeof(FarmingEffectAttrib).Name, false)
{ }
}
//=============================================================================================
// Primary Key
// PK(Partition Key) : "farming_effect#anchor_meta_guid"
// SK(Sort Key) : "{LOCATION_UNIQUE_ID}"
// DocType : "FarmingEffectDoc"
// FarmingEffectAttrib : {}
// ...
//=============================================================================================
public class FarmingEffectDoc : DynamoDbDocBase
{
private static string getDocTypeName() { return typeof(FarmingEffectDoc).Name; }
private string getPrefixOfPK() { return $"farming_effect#"; }
private string getPrefixOfSK() { return $""; }
public static FARMING_EFFECT_DOC_LINK_PKSK makeLINK_PKSK(ANCHOR_META_GUID anchorMetaGuid, LOCATION_UNIQUE_ID locationUniqueId)
{
return $"farming_effect#{anchorMetaGuid}-{locationUniqueId}";
}
public FarmingEffectDoc()
: base(getDocTypeName())
{
appendAttribWrapperAll();
}
public FarmingEffectDoc(ANCHOR_META_GUID anchorMetaGuid, LOCATION_UNIQUE_ID locationUniqueId)
: base(getDocTypeName())
{
setCombinationKeyForPK(anchorMetaGuid);
setCombinationKeyForSK(locationUniqueId);
appendAttribWrapperAll();
fillUpPrimaryKey(onMakePK(), onMakeSK());
var to_set_farming_effect_attrib = getAttrib<FarmingEffectAttrib>();
NullReferenceCheckHelper.throwIfNull(to_set_farming_effect_attrib, () => $"to_set_farming_effect_attrib is null !!!");
to_set_farming_effect_attrib.AnchorMetaGuid = anchorMetaGuid;
to_set_farming_effect_attrib.LocationUniqueId = locationUniqueId;
}
public FarmingEffectDoc( ANCHOR_META_GUID anchorMetaGuid, LOCATION_UNIQUE_ID locationUniqueId
, META_ID farmingPropMetaId
, FarmingSummonedEntityType farmingSummonedEntityType, FARMING_ENTITY_GUID farmingEntityGuid
, FarmingStateType farmingState
, Int16 farmingActionReqTryCount
, DateTime farmingStartTime, DateTime farmingEndTime )
: base(getDocTypeName())
{
setCombinationKeyForPK(anchorMetaGuid);
setCombinationKeyForSK(locationUniqueId);
appendAttribWrapperAll();
fillUpPrimaryKey(onMakePK(), onMakeSK());
var to_set_farming_effect_attrib = getAttrib<FarmingEffectAttrib>();
NullReferenceCheckHelper.throwIfNull(to_set_farming_effect_attrib, () => $"to_set_farming_effect_attrib is null !!!");
to_set_farming_effect_attrib.AnchorMetaGuid = anchorMetaGuid;
to_set_farming_effect_attrib.LocationUniqueId = locationUniqueId;
to_set_farming_effect_attrib.FarmingPropMetaId = farmingPropMetaId;
to_set_farming_effect_attrib.FarmingSummonedEntityType = farmingSummonedEntityType;
to_set_farming_effect_attrib.FarmingEntityGuid = farmingEntityGuid;
to_set_farming_effect_attrib.FarmingState = farmingState;
to_set_farming_effect_attrib.FarmingActionReqTryCount = farmingActionReqTryCount;
to_set_farming_effect_attrib.FarmingStartTime = farmingStartTime;
to_set_farming_effect_attrib.FarmingEndTime = farmingEndTime;
}
private void appendAttribWrapperAll()
{
appendAttribWrapper(new AttribWrapper<FarmingEffectAttrib>());
}
protected override string onGetPrefixOfPK()
{
return getPrefixOfPK();
}
protected override ServerErrorCode onCheckAndSetSK(string sortKey)
{
var error_code = onFillupCombinationKeyForSK(sortKey, out var fillup_key);
if (error_code.isFail())
{
return error_code;
}
getPrimaryKey().fillUpSK(sortKey);
setCombinationKeyForSK(fillup_key);
return ServerErrorCode.Success;
}
public FarmingSummary toFarmingSummary(USER_GUID userGuid)
{
var farming_effect_attrib = getAttrib<FarmingEffectAttrib>();
NullReferenceCheckHelper.throwIfNull(farming_effect_attrib, () => $"farming_effect_attrib is null !!!");
var farming_summary = new FarmingSummary();
farming_summary.FarmingAnchorMetaId = farming_effect_attrib.AnchorMetaGuid;
farming_summary.FarmingPropMetaId = (Int32)farming_effect_attrib.FarmingPropMetaId;
farming_summary.FarmingUserGuid = userGuid;
farming_summary.FarmingSummonType = farming_effect_attrib.FarmingSummonedEntityType;
farming_summary.FarmingEntityGuid = farming_effect_attrib.FarmingEntityGuid;
farming_summary.FarmingState = farming_effect_attrib.FarmingState;
farming_summary.StartTime = farming_effect_attrib.FarmingStartTime.toSpecifyKindOnly(DateTimeKind.Utc).ToTimestamp();
farming_summary.EndTime = farming_effect_attrib.FarmingEndTime.toSpecifyKindOnly(DateTimeKind.Utc).ToTimestamp();
return farming_summary;
}
}