private void Update(TimeSpan deltaTime) { // Server Tick var gameSessions = sessions.GetAll(); foreach (var session in gameSessions) { gameSessionProcessor.Update(session, deltaTime); } lock (objectUpdateMutex) { var ticksToRemove = new List <EntityTick>(); foreach (var objectTick in entityIntervalItems) { if (objectTick.Invoke(deltaTime)) { ticksToRemove.Add(objectTick); } } foreach (var remove in ticksToRemove) { entityIntervalItems.Remove(remove); } } }
public void Remove(IStreamBot bot) { lock (mutex) { bots.Remove(bot); // would be better to do: bot.GetAllSessions(); // but the bot has no references to the session right now var sessions = sessionManager.GetAll(); foreach (var session in sessions) { session.UnassignBot(bot); } logger.LogWarning("Bot: @cya@" + bot.Name + " @red@disconnected."); } }