public static void Stop() { Logger.log(31, Category.Engine, Severity.Info, "Engine shutting down"); TickEngine.Dispose(); EventEngine.ProcessEvents(); //Wait for next tick so all events get calculated StateEngine.Dispose(); }
public static void Tick() { var stopwatch = new Stopwatch(); stopwatch.Start(); List <IEvent> EventsProcessed = EventEngine.ProcessEvents(); if (EventsProcessed.Count > 0) { StateEngine.CopyWriteStateToReadState(); foreach (var e in EventsProcessed) { e.Processed.Set(); } if (makePersitentSave) { StateEngine.TryPersistentSave(); makePersitentSave = false; } } if (tickcount % Settings.persistenSaveEveryXTick == 0) { makePersitentSave = true; } stopwatch.Stop(); var ms = stopwatch.ElapsedMilliseconds; if (ms > Settings.tickIntervallInMillisec) { Logger.log(3, Category.TickEngine, Severity.Warn, String.Format("Tick took longer than expected: {0}ms", ms)); } tickcount += 1; }