private void SendNewTick(RealmTime time)
{
var sendEntities = new List<Entity>();
try
{
foreach (var i in _clientEntities.Where(i => i.UpdateCount > _lastUpdate[i]))
{
sendEntities.Add(i);
_lastUpdate[i] = i.UpdateCount;
}
}
catch
{
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.Out.WriteLine("Crash halted - Nobody likes death...");
Console.ForegroundColor = ConsoleColor.White;
}
if (questEntity != null &&
(!_lastUpdate.ContainsKey(questEntity) || questEntity.UpdateCount > _lastUpdate[questEntity]))
{
sendEntities.Add(questEntity);
_lastUpdate[questEntity] = questEntity.UpdateCount;
}
var p = new NewTickPacket();
_tickId++;
p.TickId = _tickId;
p.TickTime = time.thisTickTimes;
p.UpdateStatuses = sendEntities.Select(_ => _.ExportStats()).ToArray();
psr.SendPacket(p);
SaveToCharacter();
}