using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using ServerCore; using ServerBase; using META_ID = System.UInt32; using UGC_NPC_META_GUID = System.String; using OWNER_GUID = System.String; using ANCHOR_META_GUID = System.String; namespace ServerCommon.BusinessLogDomain; public class BeaconLogInfo : ILogInvoker.IInfo { [JsonProperty] public UGC_NPC_META_GUID UgcNpcMetaGuid { get; set; } = string.Empty; [JsonProperty] public string UgcNpcPK { get; set; } = string.Empty; [JsonProperty] public string UgcNpcSK { get; set; } = string.Empty; [JsonProperty] public string UgcNpcNickname { get; set; } = string.Empty; [JsonProperty] public OwnerEntityType OwnerEntityType { get; set; } = OwnerEntityType.None; [JsonProperty] public OWNER_GUID OwnerGuid { get; set; } = string.Empty; [JsonProperty] public LanguageType LanguageType { get; set; } = LanguageType.None; [JsonProperty] public EntityStateType State { get; set; } = EntityStateType.None; [JsonProperty] public ANCHOR_META_GUID AnchorMetaGuid { get; set; } = string.Empty; [JsonProperty] public META_ID MetaIdOfEntityStateType { get; set; } = 0; [JsonProperty] public string LocatedInstanceGuid { get; set; } = string.Empty; [JsonProperty] public META_ID LocatedInstanceMetaId { get; set; } = 0; [JsonProperty] public bool IsRegisteredAiChatServer { get; set; } = false; [JsonProperty] private EntityPos CurrentPos = new(); //===================================================================================== // 로그 생성용 객체 정의 //===================================================================================== public BeaconLogInfo() : base() { } public void setInfo(BeaconLogInfo logInfo) { ArgumentNullReferenceCheckHelper.throwIfNull(logInfo, () => $"logInfo is null !!!"); UgcNpcMetaGuid = logInfo.UgcNpcMetaGuid; UgcNpcPK = logInfo.UgcNpcPK; UgcNpcSK = logInfo.UgcNpcSK; UgcNpcNickname = logInfo.UgcNpcNickname; OwnerEntityType = logInfo.OwnerEntityType; OwnerGuid = logInfo.OwnerGuid; LanguageType = logInfo.LanguageType; State = logInfo.State; AnchorMetaGuid = logInfo.AnchorMetaGuid; MetaIdOfEntityStateType = logInfo.MetaIdOfEntityStateType; LocatedInstanceGuid = logInfo.LocatedInstanceGuid; LocatedInstanceMetaId = logInfo.LocatedInstanceMetaId; IsRegisteredAiChatServer = logInfo.IsRegisteredAiChatServer; CurrentPos = logInfo.CurrentPos; } //===================================================================================== // 로그 출력용 객체 정의 //===================================================================================== public BeaconLogInfo(ILogInvoker parent, BeaconLogInfo logInfo) : base(parent) { if (null != logInfo) { setInfo(logInfo); } } //===================================================================================== // 로그 설정용 함수 //===================================================================================== public void setLogProperty( UGC_NPC_META_GUID ugcNpcMetaGuid , string ugcNpcPK, string ugcNpcSK , string ugcNpcNickname , OwnerEntityType ownerEntityType, OWNER_GUID ownerGuid, LanguageType languageType , EntityStateType state , ANCHOR_META_GUID anchorMetaGuid , META_ID metaIdOfEntityStateType, string locatedInstanceGuid, META_ID locatedInstanceMetaId , bool isRegisteredAiChatServer , EntityPos currentPos) { ArgumentNullReferenceCheckHelper.throwIfNull(currentPos, () => $"currentPos is null !!!"); UgcNpcMetaGuid = ugcNpcMetaGuid; UgcNpcPK = ugcNpcPK; UgcNpcSK = ugcNpcSK; UgcNpcNickname = ugcNpcNickname; OwnerEntityType = ownerEntityType; OwnerGuid = ownerGuid; LanguageType = languageType; State = state; AnchorMetaGuid = anchorMetaGuid; MetaIdOfEntityStateType = metaIdOfEntityStateType; LocatedInstanceGuid = locatedInstanceGuid; LocatedInstanceMetaId = locatedInstanceMetaId; IsRegisteredAiChatServer = isRegisteredAiChatServer; CurrentPos = currentPos; } }