/// <summary> /// Called when the simulation is ticked by underlying operating system, game engine, or potato. Each of these system /// ticks is called at unpredictable rates, however if not a system tick that means the simulation has processed enough /// of them to fire off event for fixed interval that is set in the core simulation by constant in milliseconds. /// </summary> /// <remarks>Default is one second or 1000ms.</remarks> /// <param name="systemTick"> /// TRUE if ticked unpredictably by underlying operating system, game engine, or potato. FALSE if /// pulsed by game simulation at fixed interval. /// </param> /// <param name="skipDay"> /// Determines if the simulation has force ticked without advancing time or down the trail. Used by /// special events that want to simulate passage of time without actually any actual time moving by. /// </param> public override void OnTick(bool systemTick, bool skipDay = false) { base.OnTick(systemTick, skipDay); // Tick the module. ModuleExample?.OnTick(systemTick, skipDay); }
/// <summary> /// Called when simulation is about to destroy itself, but right before it actually does it. /// </summary> protected override void OnPreDestroy() { // Allows module to save any data before core simulation closes. ModuleExample.Destroy(); ModuleExample = null; // Destroys simulation instance. Instance = null; }
/// <summary> /// Creates and or clears data sets required for game simulation and attaches the travel menu and the main menu to make /// the program completely restarted as if fresh. /// </summary> public override void Restart() { // Resets the module to default start. ModuleExample.Restart(); // Resets the window manager in the base simulation. base.Restart(); // Attach example window after the first tick. WindowManager.Add(typeof(ExampleWindow)); }