summaryrefslogtreecommitdiff
path: root/src/StardewModdingAPI/Events
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2017-02-16 00:54:41 -0500
committerJesse Plamondon-Willard <github@jplamondonw.com>2017-02-16 00:54:41 -0500
commit176eddbf7b70934c2665aa3a0ac8b46bef04012a (patch)
treea09c26179f2445b21bae3a79076c58839924cdb5 /src/StardewModdingAPI/Events
parent2c6ab6805de0e0a21d5191838237db04aa0176ec (diff)
downloadSMAPI-176eddbf7b70934c2665aa3a0ac8b46bef04012a.tar.gz
SMAPI-176eddbf7b70934c2665aa3a0ac8b46bef04012a.tar.bz2
SMAPI-176eddbf7b70934c2665aa3a0ac8b46bef04012a.zip
make SMAPI core non-static, eliminate direct access between core components
Diffstat (limited to 'src/StardewModdingAPI/Events')
-rw-r--r--src/StardewModdingAPI/Events/PlayerEvents.cs18
-rw-r--r--src/StardewModdingAPI/Events/TimeEvents.cs16
2 files changed, 31 insertions, 3 deletions
diff --git a/src/StardewModdingAPI/Events/PlayerEvents.cs b/src/StardewModdingAPI/Events/PlayerEvents.cs
index 99bdac16..996077ab 100644
--- a/src/StardewModdingAPI/Events/PlayerEvents.cs
+++ b/src/StardewModdingAPI/Events/PlayerEvents.cs
@@ -11,6 +11,13 @@ namespace StardewModdingAPI.Events
public static class PlayerEvents
{
/*********
+ ** Properties
+ *********/
+ /// <summary>Manages deprecation warnings.</summary>
+ private static DeprecationManager DeprecationManager;
+
+
+ /*********
** Events
*********/
/// <summary>Raised after the player loads a saved game.</summary>
@@ -31,6 +38,13 @@ namespace StardewModdingAPI.Events
/*********
** Internal methods
*********/
+ /// <summary>Injects types required for backwards compatibility.</summary>
+ /// <param name="deprecationManager">Manages deprecation warnings.</param>
+ internal static void Shim(DeprecationManager deprecationManager)
+ {
+ PlayerEvents.DeprecationManager = deprecationManager;
+ }
+
/// <summary>Raise a <see cref="LoadedGame"/> event.</summary>
/// <param name="monitor">Encapsulates monitoring and logging.</param>
/// <param name="loaded">Whether the save has been loaded. This is always true.</param>
@@ -42,7 +56,7 @@ namespace StardewModdingAPI.Events
string name = $"{nameof(PlayerEvents)}.{nameof(PlayerEvents.LoadedGame)}";
Delegate[] handlers = PlayerEvents.LoadedGame.GetInvocationList();
- Program.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
+ PlayerEvents.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
monitor.SafelyRaiseGenericEvent(name, handlers, null, loaded);
}
@@ -58,7 +72,7 @@ namespace StardewModdingAPI.Events
string name = $"{nameof(PlayerEvents)}.{nameof(PlayerEvents.FarmerChanged)}";
Delegate[] handlers = PlayerEvents.FarmerChanged.GetInvocationList();
- Program.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
+ PlayerEvents.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
monitor.SafelyRaiseGenericEvent(name, handlers, null, new EventArgsFarmerChanged(priorFarmer, newFarmer));
}
diff --git a/src/StardewModdingAPI/Events/TimeEvents.cs b/src/StardewModdingAPI/Events/TimeEvents.cs
index a140a223..0f9257c1 100644
--- a/src/StardewModdingAPI/Events/TimeEvents.cs
+++ b/src/StardewModdingAPI/Events/TimeEvents.cs
@@ -7,6 +7,13 @@ namespace StardewModdingAPI.Events
public static class TimeEvents
{
/*********
+ ** Properties
+ *********/
+ /// <summary>Manages deprecation warnings.</summary>
+ private static DeprecationManager DeprecationManager;
+
+
+ /*********
** Events
*********/
/// <summary>Raised after the game begins a new day, including when loading a save.</summary>
@@ -32,6 +39,13 @@ namespace StardewModdingAPI.Events
/*********
** Internal methods
*********/
+ /// <summary>Injects types required for backwards compatibility.</summary>
+ /// <param name="deprecationManager">Manages deprecation warnings.</param>
+ internal static void Shim(DeprecationManager deprecationManager)
+ {
+ TimeEvents.DeprecationManager = deprecationManager;
+ }
+
/// <summary>Raise an <see cref="AfterDayStarted"/> event.</summary>
/// <param name="monitor">Encapsulates monitoring and logging.</param>
internal static void InvokeAfterDayStarted(IMonitor monitor)
@@ -88,7 +102,7 @@ namespace StardewModdingAPI.Events
string name = $"{nameof(TimeEvents)}.{nameof(TimeEvents.OnNewDay)}";
Delegate[] handlers = TimeEvents.OnNewDay.GetInvocationList();
- Program.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
+ TimeEvents.DeprecationManager.WarnForEvent(handlers, name, "1.6", DeprecationLevel.Notice);
monitor.SafelyRaiseGenericEvent(name, handlers, null, new EventArgsNewDay(priorDay, newDay, isTransitioning));
}
}