private void TickRunning()
{
TimeSnapshot.DoCheckPoint();
m_KdTree.BeginBuild(m_EntityMgr.Entities.Count);
for (LinkedListNode <EntityInfo> linkNode = m_EntityMgr.Entities.FirstNode; null != linkNode; linkNode = linkNode.Next)
{
EntityInfo info = linkNode.Value;
m_KdTree.AddObjForBuild(info);
}
m_KdTree.EndBuild();
m_ServerDelayActionProcessor.HandleActions(100);
m_SceneProfiler.DelayActionProcessorTime = TimeSnapshot.DoCheckPoint();
m_MovementSystem.Tick();
m_SceneProfiler.MovementSystemTime = TimeSnapshot.DoCheckPoint();
TickAi();
m_SceneProfiler.AiSystemTime = TimeSnapshot.DoCheckPoint();
m_SceneLogicSystem.Tick();
m_SceneProfiler.SceneLogicSystemTime = TimeSnapshot.DoCheckPoint();
m_StorySystem.Tick();
m_GmStorySystem.Tick();
m_SceneProfiler.StorySystemTime = TimeSnapshot.DoCheckPoint();
TickEntities();
m_SceneProfiler.TickEntitiesTime = TimeSnapshot.DoCheckPoint();
//属性同步
if (0 == m_LastTickTimeForTickPerSecond)
{
m_LastTickTimeForTickPerSecond = TimeUtility.GetLocalMilliseconds();
TickProperty();
}
else
{
long curTime = TimeUtility.GetLocalMilliseconds();
if (curTime > m_LastTickTimeForTickPerSecond + c_IntervalPerSecond)
{
m_LastTickTimeForTickPerSecond = curTime;
TickProperty();
}
}
if (0 == m_LastTickTimeForTickPer5s)
{
m_LastTickTimeForTickPer5s = TimeUtility.GetLocalMilliseconds();
ReloadObjects();
}
else
{
long curTime = TimeUtility.GetLocalMilliseconds();
if (curTime > m_LastTickTimeForTickPer5s + c_IntervalPer5s)
{
m_LastTickTimeForTickPer5s = curTime;
ReloadObjects();
}
}
m_SceneProfiler.TickAttrRecoverTime = TimeSnapshot.DoCheckPoint();
//空间信息调试
TickDebugSpaceInfo();
m_SceneProfiler.TickDebugSpaceInfoTime = TimeSnapshot.DoCheckPoint();
}