summaryrefslogtreecommitdiff
path: root/src/StardewModdingAPI/Events/Game.cs
diff options
context:
space:
mode:
authorCarl <slxxls92@gmail.com>2016-05-30 01:33:37 +0100
committerCarl <slxxls92@gmail.com>2016-05-30 01:33:37 +0100
commitfa666f803398e29a7ffec0707cd6a1ec3571d3e9 (patch)
tree71099c94fa92196cfb6cdb42a56379e6fdaa4364 /src/StardewModdingAPI/Events/Game.cs
parent4edee54da20e7655ae24cf1ac2abded5ec1ba2c5 (diff)
parent1212222e9f59a68a9f167d20bbddd8a4e1a3cf81 (diff)
downloadSMAPI-fa666f803398e29a7ffec0707cd6a1ec3571d3e9.tar.gz
SMAPI-fa666f803398e29a7ffec0707cd6a1ec3571d3e9.tar.bz2
SMAPI-fa666f803398e29a7ffec0707cd6a1ec3571d3e9.zip
Merge pull request #118 from Gormogon/master
Some Semi-Big Changes
Diffstat (limited to 'src/StardewModdingAPI/Events/Game.cs')
-rw-r--r--src/StardewModdingAPI/Events/Game.cs123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/StardewModdingAPI/Events/Game.cs b/src/StardewModdingAPI/Events/Game.cs
new file mode 100644
index 00000000..8b8042ed
--- /dev/null
+++ b/src/StardewModdingAPI/Events/Game.cs
@@ -0,0 +1,123 @@
+using System;
+
+namespace StardewModdingAPI.Events
+{
+ public static class GameEvents
+ {
+ public static event EventHandler GameLoaded = delegate { };
+ public static event EventHandler Initialize = delegate { };
+ public static event EventHandler LoadContent = delegate { };
+ public static event EventHandler FirstUpdateTick = delegate { };
+
+ /// <summary>
+ /// Fires every update (1/60 of a second)
+ /// </summary>
+ public static event EventHandler UpdateTick = delegate { };
+
+ /// <summary>
+ /// Fires every other update (1/30 of a second)
+ /// </summary>
+ public static event EventHandler SecondUpdateTick = delegate { };
+
+ /// <summary>
+ /// Fires every fourth update (1/15 of a second)
+ /// </summary>
+ public static event EventHandler FourthUpdateTick = delegate { };
+
+ /// <summary>
+ /// Fires every eighth update (roughly 1/8 of a second)
+ /// </summary>
+ public static event EventHandler EighthUpdateTick = delegate { };
+
+ /// <summary>
+ /// Fires every fifthteenth update (1/4 of a second)
+ /// </summary>
+ public static event EventHandler QuarterSecondTick = delegate { };
+
+ /// <summary>
+ /// Fires every thirtieth update (1/2 of a second)
+ /// </summary>
+ public static event EventHandler HalfSecondTick = delegate { };
+
+ /// <summary>
+ /// Fires every sixtieth update (a second)
+ /// </summary>
+ public static event EventHandler OneSecondTick = delegate { };
+
+ internal static void InvokeGameLoaded()
+ {
+ GameLoaded.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeInitialize()
+ {
+ try
+ {
+ Initialize.Invoke(null, EventArgs.Empty);
+ }
+ catch (Exception ex)
+ {
+ Log.AsyncR("An exception occured in XNA Initialize: " + ex);
+ }
+ }
+
+ internal static void InvokeLoadContent()
+ {
+ try
+ {
+ LoadContent.Invoke(null, EventArgs.Empty);
+ }
+ catch (Exception ex)
+ {
+ Log.AsyncR("An exception occured in XNA LoadContent: " + ex);
+ }
+ }
+
+ internal static void InvokeUpdateTick()
+ {
+ try
+ {
+ UpdateTick.Invoke(null, EventArgs.Empty);
+ }
+ catch (Exception ex)
+ {
+ Log.AsyncR("An exception occured in XNA UpdateTick: " + ex);
+ }
+ }
+
+ internal static void InvokeSecondUpdateTick()
+ {
+ SecondUpdateTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeFourthUpdateTick()
+ {
+ FourthUpdateTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeEighthUpdateTick()
+ {
+ EighthUpdateTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeQuarterSecondTick()
+ {
+ QuarterSecondTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeHalfSecondTick()
+ {
+ HalfSecondTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeOneSecondTick()
+ {
+ OneSecondTick.Invoke(null, EventArgs.Empty);
+ }
+
+ internal static void InvokeFirstUpdateTick()
+ {
+ FirstUpdateTick.Invoke(null, EventArgs.Empty);
+ }
+ }
+} \ No newline at end of file