summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/Events
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI/Framework/Events')
-rw-r--r--src/SMAPI/Framework/Events/EventManager.cs24
-rw-r--r--src/SMAPI/Framework/Events/ModGameLoopEvents.cs42
2 files changed, 66 insertions, 0 deletions
diff --git a/src/SMAPI/Framework/Events/EventManager.cs b/src/SMAPI/Framework/Events/EventManager.cs
index 1435976a..023c45de 100644
--- a/src/SMAPI/Framework/Events/EventManager.cs
+++ b/src/SMAPI/Framework/Events/EventManager.cs
@@ -23,6 +23,24 @@ namespace StardewModdingAPI.Framework.Events
/// <summary>Raised after the game performs its overall update tick (≈60 times per second).</summary>
public readonly ManagedEvent<UpdateTickedEventArgs> UpdateTicked;
+ /// <summary>Raised before the game creates the save file.</summary>
+ public readonly ManagedEvent<SaveCreatingEventArgs> SaveCreating;
+
+ /// <summary>Raised after the game finishes creating the save file.</summary>
+ public readonly ManagedEvent<SaveCreatedEventArgs> SaveCreated;
+
+ /// <summary>Raised before the game begins writes data to the save file (except the initial save creation).</summary>
+ public readonly ManagedEvent<SavingEventArgs> Saving;
+
+ /// <summary>Raised after the game finishes writing data to the save file (except the initial save creation).</summary>
+ public readonly ManagedEvent<SavedEventArgs> Saved;
+
+ /// <summary>Raised after the player loads a save slot.</summary>
+ public readonly ManagedEvent<SaveLoadedEventArgs> SaveLoaded;
+
+ /// <summary>Raised after the game begins a new day, including when loading a save.</summary>
+ public readonly ManagedEvent<DayStartedEventArgs> DayStarted;
+
/****
** Input
****/
@@ -267,6 +285,12 @@ namespace StardewModdingAPI.Framework.Events
this.GameLaunched = ManageEventOf<GameLaunchedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.GameLaunched));
this.UpdateTicking = ManageEventOf<UpdateTickingEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.UpdateTicking));
this.UpdateTicked = ManageEventOf<UpdateTickedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.UpdateTicked));
+ this.SaveCreating = ManageEventOf<SaveCreatingEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.SaveCreating));
+ this.SaveCreated = ManageEventOf<SaveCreatedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.SaveCreated));
+ this.Saving = ManageEventOf<SavingEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.Saving));
+ this.Saved = ManageEventOf<SavedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.Saved));
+ this.SaveLoaded = ManageEventOf<SaveLoadedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.SaveLoaded));
+ this.DayStarted = ManageEventOf<DayStartedEventArgs>(nameof(IModEvents.GameLoop), nameof(IGameLoopEvents.DayStarted));
this.ButtonPressed = ManageEventOf<ButtonPressedEventArgs>(nameof(IModEvents.Input), nameof(IInputEvents.ButtonPressed));
this.ButtonReleased = ManageEventOf<ButtonReleasedEventArgs>(nameof(IModEvents.Input), nameof(IInputEvents.ButtonReleased));
diff --git a/src/SMAPI/Framework/Events/ModGameLoopEvents.cs b/src/SMAPI/Framework/Events/ModGameLoopEvents.cs
index 781597ef..cf7e54aa 100644
--- a/src/SMAPI/Framework/Events/ModGameLoopEvents.cs
+++ b/src/SMAPI/Framework/Events/ModGameLoopEvents.cs
@@ -30,6 +30,48 @@ namespace StardewModdingAPI.Framework.Events
remove => this.EventManager.UpdateTicked.Remove(value);
}
+ /// <summary>Raised before the game creates a new save file.</summary>
+ public event EventHandler<SaveCreatingEventArgs> SaveCreating
+ {
+ add => this.EventManager.SaveCreating.Add(value);
+ remove => this.EventManager.SaveCreating.Remove(value);
+ }
+
+ /// <summary>Raised after the game finishes creating the save file.</summary>
+ public event EventHandler<SaveCreatedEventArgs> SaveCreated
+ {
+ add => this.EventManager.SaveCreated.Add(value);
+ remove => this.EventManager.SaveCreated.Remove(value);
+ }
+
+ /// <summary>Raised before the game begins writes data to the save file.</summary>
+ public event EventHandler<SavingEventArgs> Saving
+ {
+ add => this.EventManager.Saving.Add(value);
+ remove => this.EventManager.Saving.Remove(value);
+ }
+
+ /// <summary>Raised after the game finishes writing data to the save file.</summary>
+ public event EventHandler<SavedEventArgs> Saved
+ {
+ add => this.EventManager.Saved.Add(value);
+ remove => this.EventManager.Saved.Remove(value);
+ }
+
+ /// <summary>Raised after the player loads a save slot.</summary>
+ public event EventHandler<SaveLoadedEventArgs> SaveLoaded
+ {
+ add => this.EventManager.SaveLoaded.Add(value);
+ remove => this.EventManager.SaveLoaded.Remove(value);
+ }
+
+ /// <summary>Raised after the game begins a new day (including when the player loads a save).</summary>
+ public event EventHandler<DayStartedEventArgs> DayStarted
+ {
+ add => this.EventManager.DayStarted.Add(value);
+ remove => this.EventManager.DayStarted.Remove(value);
+ }
+
/*********
** Public methods