using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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; namespace ServerBase; public abstract partial class EntityStateBase { private readonly EntityBase m_owner; private DateTime m_start_time = DateTime.MinValue; private DateTime m_end_time = DateTime.MinValue; public EntityStateBase(EntityBase owner) { m_owner = owner; } public virtual async Task onEnter() { await Task.CompletedTask; m_start_time = DateTimeHelper.Current; } public virtual async Task onTick() { await Task.CompletedTask; } public virtual async Task onExit() { await Task.CompletedTask; m_end_time = DateTimeHelper.Current; } public DateTime getStartTime() { return m_start_time; } public DateTime getEndTime() { return m_end_time; } public UInt64 getElapsedMilliSeconds() { return (UInt64)(m_end_time - m_start_time).TotalMilliseconds; } }