diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-07-08 20:06:33 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-07-08 20:06:33 -0400 |
commit | 3b078d55daccd13332e2cba1fd5c76f775505d7a (patch) | |
tree | 47a531276effb17a60dbec2a5ae2220102129b3b /src/SMAPI/Events/GameLoopUpdatedEventArgs.cs | |
parent | 7e46cc24630d810f4e2396346124780160cb7aa3 (diff) | |
download | SMAPI-3b078d55daccd13332e2cba1fd5c76f775505d7a.tar.gz SMAPI-3b078d55daccd13332e2cba1fd5c76f775505d7a.tar.bz2 SMAPI-3b078d55daccd13332e2cba1fd5c76f775505d7a.zip |
add GameLoop events for SMAPI 3.0 (#310)
Diffstat (limited to 'src/SMAPI/Events/GameLoopUpdatedEventArgs.cs')
-rw-r--r-- | src/SMAPI/Events/GameLoopUpdatedEventArgs.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/SMAPI/Events/GameLoopUpdatedEventArgs.cs b/src/SMAPI/Events/GameLoopUpdatedEventArgs.cs new file mode 100644 index 00000000..3ad34b69 --- /dev/null +++ b/src/SMAPI/Events/GameLoopUpdatedEventArgs.cs @@ -0,0 +1,36 @@ +using System; + +namespace StardewModdingAPI.Events +{ + /// <summary>Event arguments for an <see cref="IGameLoopEvents.Updated"/> event.</summary> + public class GameLoopUpdatedEventArgs : EventArgs + { + /********* + ** Accessors + *********/ + /// <summary>The number of ticks elapsed since the game started, including the current tick.</summary> + public uint Ticks { get; } + + /// <summary>Whether <see cref="Ticks"/> is a multiple of 60, which happens approximately once per second.</summary> + public bool IsOneSecond { get; } + + + /********* + ** Public methods + *********/ + /// <summary>Construct an instance.</summary> + /// <param name="ticks">The number of ticks elapsed since the game started, including the current tick.</param> + public GameLoopUpdatedEventArgs(uint ticks) + { + this.Ticks = ticks; + this.IsOneSecond = this.IsMultipleOf(60); + } + + /// <summary>Get whether <see cref="Ticks"/> is a multiple of the given <paramref name="number"/>. This is mainly useful if you want to run logic intermittently (e.g. <code>e.IsMultipleOf(30)</code> for every half-second).</summary> + /// <param name="number">The factor to check.</param> + public bool IsMultipleOf(uint number) + { + return this.Ticks % number == 0; + } + } +} |