using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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 { }; /// /// Fires every update (1/60 of a second) /// public static event EventHandler UpdateTick = delegate { }; /// /// Fires every other update (1/30 of a second) /// public static event EventHandler SecondUpdateTick = delegate { }; /// /// Fires every fourth update (1/15 of a second) /// public static event EventHandler FourthUpdateTick = delegate { }; /// /// Fires every eighth update (roughly 1/8 of a second) /// public static event EventHandler EighthUpdateTick = delegate { }; /// /// Fires every fifthteenth update (1/4 of a second) /// public static event EventHandler QuarterSecondTick = delegate { }; /// /// Fires every thirtieth update (1/2 of a second) /// public static event EventHandler HalfSecondTick = delegate { }; /// /// Fires every sixtieth update (a second) /// public static event EventHandler OneSecondTick = delegate { }; public static void InvokeGameLoaded() { GameLoaded.Invoke(null, EventArgs.Empty); } public static void InvokeInitialize() { try { Initialize.Invoke(null, EventArgs.Empty); } catch (Exception ex) { Log.Error("An exception occured in XNA Initialize: " + ex.ToString()); } } public static void InvokeLoadContent() { try { LoadContent.Invoke(null, EventArgs.Empty); } catch (Exception ex) { Log.Error("An exception occured in XNA LoadContent: " + ex.ToString()); } } public static void InvokeUpdateTick() { try { UpdateTick.Invoke(null, EventArgs.Empty); } catch (Exception ex) { Log.Error("An exception occured in XNA UpdateTick: " + ex.ToString()); } } public static void InvokeSecondUpdateTick() { SecondUpdateTick.Invoke(null, EventArgs.Empty); } public static void InvokeFourthUpdateTick() { FourthUpdateTick.Invoke(null, EventArgs.Empty); } public static void InvokeEighthUpdateTick() { EighthUpdateTick.Invoke(null, EventArgs.Empty); } public static void InvokeQuarterSecondTick() { QuarterSecondTick.Invoke(null, EventArgs.Empty); } public static void InvokeHalfSecondTick() { HalfSecondTick.Invoke(null, EventArgs.Empty); } public static void InvokeOneSecondTick() { OneSecondTick.Invoke(null, EventArgs.Empty); } public static void InvokeFirstUpdateTick() { FirstUpdateTick.Invoke(null, EventArgs.Empty); } } }