commit
8c2c3b6d03
|
@ -58,5 +58,10 @@ namespace StardewModdingAPI
|
||||||
/// Do not mark as 'const' or else 'if' checks will complain that the expression is always true in ReSharper
|
/// Do not mark as 'const' or else 'if' checks will complain that the expression is always true in ReSharper
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static bool EnableDrawingIntoRenderTarget => true;
|
public static bool EnableDrawingIntoRenderTarget => true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Completely overrides the base game's draw call to the one is SGame
|
||||||
|
/// </summary>
|
||||||
|
public static bool EnableCompletelyOverridingBaseCalls => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,42 +15,42 @@ namespace StardewModdingAPI.Events
|
||||||
public static event EventHandler<EventArgsControllerTriggerPressed> ControllerTriggerPressed = delegate { };
|
public static event EventHandler<EventArgsControllerTriggerPressed> ControllerTriggerPressed = delegate { };
|
||||||
public static event EventHandler<EventArgsControllerTriggerReleased> ControllerTriggerReleased = delegate { };
|
public static event EventHandler<EventArgsControllerTriggerReleased> ControllerTriggerReleased = delegate { };
|
||||||
|
|
||||||
public static void InvokeKeyboardChanged(KeyboardState priorState, KeyboardState newState)
|
internal static void InvokeKeyboardChanged(KeyboardState priorState, KeyboardState newState)
|
||||||
{
|
{
|
||||||
KeyboardChanged.Invoke(null, new EventArgsKeyboardStateChanged(priorState, newState));
|
KeyboardChanged.Invoke(null, new EventArgsKeyboardStateChanged(priorState, newState));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeMouseChanged(MouseState priorState, MouseState newState)
|
internal static void InvokeMouseChanged(MouseState priorState, MouseState newState)
|
||||||
{
|
{
|
||||||
MouseChanged.Invoke(null, new EventArgsMouseStateChanged(priorState, newState));
|
MouseChanged.Invoke(null, new EventArgsMouseStateChanged(priorState, newState));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeKeyPressed(Keys key)
|
internal static void InvokeKeyPressed(Keys key)
|
||||||
{
|
{
|
||||||
KeyPressed.Invoke(null, new EventArgsKeyPressed(key));
|
KeyPressed.Invoke(null, new EventArgsKeyPressed(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeKeyReleased(Keys key)
|
internal static void InvokeKeyReleased(Keys key)
|
||||||
{
|
{
|
||||||
KeyReleased.Invoke(null, new EventArgsKeyPressed(key));
|
KeyReleased.Invoke(null, new EventArgsKeyPressed(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeButtonPressed(PlayerIndex playerIndex, Buttons buttons)
|
internal static void InvokeButtonPressed(PlayerIndex playerIndex, Buttons buttons)
|
||||||
{
|
{
|
||||||
ControllerButtonPressed.Invoke(null, new EventArgsControllerButtonPressed(playerIndex, buttons));
|
ControllerButtonPressed.Invoke(null, new EventArgsControllerButtonPressed(playerIndex, buttons));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeButtonReleased(PlayerIndex playerIndex, Buttons buttons)
|
internal static void InvokeButtonReleased(PlayerIndex playerIndex, Buttons buttons)
|
||||||
{
|
{
|
||||||
ControllerButtonReleased.Invoke(null, new EventArgsControllerButtonReleased(playerIndex, buttons));
|
ControllerButtonReleased.Invoke(null, new EventArgsControllerButtonReleased(playerIndex, buttons));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeTriggerPressed(PlayerIndex playerIndex, Buttons buttons, float value)
|
internal static void InvokeTriggerPressed(PlayerIndex playerIndex, Buttons buttons, float value)
|
||||||
{
|
{
|
||||||
ControllerTriggerPressed.Invoke(null, new EventArgsControllerTriggerPressed(playerIndex, buttons, value));
|
ControllerTriggerPressed.Invoke(null, new EventArgsControllerTriggerPressed(playerIndex, buttons, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeTriggerReleased(PlayerIndex playerIndex, Buttons buttons, float value)
|
internal static void InvokeTriggerReleased(PlayerIndex playerIndex, Buttons buttons, float value)
|
||||||
{
|
{
|
||||||
ControllerTriggerReleased.Invoke(null, new EventArgsControllerTriggerReleased(playerIndex, buttons, value));
|
ControllerTriggerReleased.Invoke(null, new EventArgsControllerTriggerReleased(playerIndex, buttons, value));
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,6 +236,19 @@ namespace StardewModdingAPI.Events
|
||||||
public bool LoadedGame { get; private set; }
|
public bool LoadedGame { get; private set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class EventArgsNewDay : EventArgs
|
||||||
|
{
|
||||||
|
public EventArgsNewDay(int prevDay, int curDay, bool newDay)
|
||||||
|
{
|
||||||
|
PreviousDay = prevDay;
|
||||||
|
CurrentDay = curDay;
|
||||||
|
IsNewDay = newDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int PreviousDay { get; private set; }
|
||||||
|
public int CurrentDay { get; private set; }
|
||||||
|
public bool IsNewDay { get; private set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class EventArgsCommand : EventArgs
|
public class EventArgsCommand : EventArgs
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,12 +44,12 @@ namespace StardewModdingAPI.Events
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static event EventHandler OneSecondTick = delegate { };
|
public static event EventHandler OneSecondTick = delegate { };
|
||||||
|
|
||||||
public static void InvokeGameLoaded()
|
internal static void InvokeGameLoaded()
|
||||||
{
|
{
|
||||||
GameLoaded.Invoke(null, EventArgs.Empty);
|
GameLoaded.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeInitialize()
|
internal static void InvokeInitialize()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -61,7 +61,7 @@ namespace StardewModdingAPI.Events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeLoadContent()
|
internal static void InvokeLoadContent()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -73,7 +73,7 @@ namespace StardewModdingAPI.Events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeUpdateTick()
|
internal static void InvokeUpdateTick()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -85,37 +85,37 @@ namespace StardewModdingAPI.Events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeSecondUpdateTick()
|
internal static void InvokeSecondUpdateTick()
|
||||||
{
|
{
|
||||||
SecondUpdateTick.Invoke(null, EventArgs.Empty);
|
SecondUpdateTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeFourthUpdateTick()
|
internal static void InvokeFourthUpdateTick()
|
||||||
{
|
{
|
||||||
FourthUpdateTick.Invoke(null, EventArgs.Empty);
|
FourthUpdateTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeEighthUpdateTick()
|
internal static void InvokeEighthUpdateTick()
|
||||||
{
|
{
|
||||||
EighthUpdateTick.Invoke(null, EventArgs.Empty);
|
EighthUpdateTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeQuarterSecondTick()
|
internal static void InvokeQuarterSecondTick()
|
||||||
{
|
{
|
||||||
QuarterSecondTick.Invoke(null, EventArgs.Empty);
|
QuarterSecondTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeHalfSecondTick()
|
internal static void InvokeHalfSecondTick()
|
||||||
{
|
{
|
||||||
HalfSecondTick.Invoke(null, EventArgs.Empty);
|
HalfSecondTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeOneSecondTick()
|
internal static void InvokeOneSecondTick()
|
||||||
{
|
{
|
||||||
OneSecondTick.Invoke(null, EventArgs.Empty);
|
OneSecondTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeFirstUpdateTick()
|
internal static void InvokeFirstUpdateTick()
|
||||||
{
|
{
|
||||||
FirstUpdateTick.Invoke(null, EventArgs.Empty);
|
FirstUpdateTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,47 @@
|
||||||
|
|
||||||
namespace StardewModdingAPI.Events
|
namespace StardewModdingAPI.Events
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public static class GraphicsEvents
|
public static class GraphicsEvents
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs when the form (game) is resized.
|
||||||
|
/// </summary>
|
||||||
public static event EventHandler Resize = delegate { };
|
public static event EventHandler Resize = delegate { };
|
||||||
public static event EventHandler DrawTick = delegate { };
|
|
||||||
public static event EventHandler DrawInRenderTargetTick = delegate { };
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs before anything is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPreRenderEvent = delegate { };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs before the GUI is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPreRenderGuiEvent = delegate { };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs after the GUI is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPostRenderGuiEvent = delegate { };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs before the HUD is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPreRenderHudEvent = delegate { };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs after the HUD is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPostRenderHudEvent = delegate { };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs after everything is drawn.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler OnPostRenderEvent = delegate { };
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draws when SGame.Debug is true. F3 toggles this.
|
/// Draws when SGame.Debug is true. F3 toggles this.
|
||||||
|
@ -16,6 +52,52 @@ namespace StardewModdingAPI.Events
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static event EventHandler DrawDebug = delegate { };
|
public static event EventHandler DrawDebug = delegate { };
|
||||||
|
|
||||||
|
internal static void InvokeDrawDebug(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DrawDebug.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPreRenderEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPreRenderEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPreRenderGuiEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPreRenderGuiEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPostRenderGuiEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPostRenderGuiEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPreRenderHudEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPreRenderHudEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPostRenderHudEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPostRenderHudEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnPostRenderEvent(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnPostRenderEvent.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region To Remove
|
||||||
|
|
||||||
|
[Obsolete("Use the other Pre/Post render events instead.")]
|
||||||
|
public static event EventHandler DrawTick = delegate { };
|
||||||
|
|
||||||
|
[Obsolete("Use the other Pre/Post render events instead. All of them will automatically be drawn into the render target if needed.")]
|
||||||
|
public static event EventHandler DrawInRenderTargetTick = delegate { };
|
||||||
|
|
||||||
|
[Obsolete("Should not be used.")]
|
||||||
public static void InvokeDrawTick()
|
public static void InvokeDrawTick()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -28,19 +110,18 @@ namespace StardewModdingAPI.Events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("Should not be used.")]
|
||||||
public static void InvokeDrawInRenderTargetTick()
|
public static void InvokeDrawInRenderTargetTick()
|
||||||
{
|
{
|
||||||
DrawInRenderTargetTick.Invoke(null, EventArgs.Empty);
|
DrawInRenderTargetTick.Invoke(null, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("Should not be used.")]
|
||||||
public static void InvokeResize(object sender, EventArgs e)
|
public static void InvokeResize(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Resize.Invoke(sender, e);
|
Resize.Invoke(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeDrawDebug(object sender, EventArgs e)
|
#endregion
|
||||||
{
|
|
||||||
DrawDebug.Invoke(sender, e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,12 +12,12 @@ namespace StardewModdingAPI.Events
|
||||||
public static event EventHandler<EventArgsLocationObjectsChanged> LocationObjectsChanged = delegate { };
|
public static event EventHandler<EventArgsLocationObjectsChanged> LocationObjectsChanged = delegate { };
|
||||||
public static event EventHandler<EventArgsCurrentLocationChanged> CurrentLocationChanged = delegate { };
|
public static event EventHandler<EventArgsCurrentLocationChanged> CurrentLocationChanged = delegate { };
|
||||||
|
|
||||||
public static void InvokeLocationsChanged(List<GameLocation> newLocations)
|
internal static void InvokeLocationsChanged(List<GameLocation> newLocations)
|
||||||
{
|
{
|
||||||
LocationsChanged.Invoke(null, new EventArgsGameLocationsChanged(newLocations));
|
LocationsChanged.Invoke(null, new EventArgsGameLocationsChanged(newLocations));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeCurrentLocationChanged(GameLocation priorLocation, GameLocation newLocation)
|
internal static void InvokeCurrentLocationChanged(GameLocation priorLocation, GameLocation newLocation)
|
||||||
{
|
{
|
||||||
CurrentLocationChanged.Invoke(null, new EventArgsCurrentLocationChanged(priorLocation, newLocation));
|
CurrentLocationChanged.Invoke(null, new EventArgsCurrentLocationChanged(priorLocation, newLocation));
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace StardewModdingAPI.Events
|
||||||
{
|
{
|
||||||
public static event EventHandler<EventArgsClickableMenuChanged> MenuChanged = delegate { };
|
public static event EventHandler<EventArgsClickableMenuChanged> MenuChanged = delegate { };
|
||||||
|
|
||||||
public static void InvokeMenuChanged(IClickableMenu priorMenu, IClickableMenu newMenu)
|
internal static void InvokeMenuChanged(IClickableMenu priorMenu, IClickableMenu newMenu)
|
||||||
{
|
{
|
||||||
MenuChanged.Invoke(null, new EventArgsClickableMenuChanged(priorMenu, newMenu));
|
MenuChanged.Invoke(null, new EventArgsClickableMenuChanged(priorMenu, newMenu));
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace StardewModdingAPI.Events
|
||||||
{
|
{
|
||||||
public static event EventHandler<EventArgsMineLevelChanged> MineLevelChanged = delegate { };
|
public static event EventHandler<EventArgsMineLevelChanged> MineLevelChanged = delegate { };
|
||||||
|
|
||||||
public static void InvokeMineLevelChanged(int previousMinelevel, int currentMineLevel)
|
internal static void InvokeMineLevelChanged(int previousMinelevel, int currentMineLevel)
|
||||||
{
|
{
|
||||||
MineLevelChanged.Invoke(null, new EventArgsMineLevelChanged(previousMinelevel, currentMineLevel));
|
MineLevelChanged.Invoke(null, new EventArgsMineLevelChanged(previousMinelevel, currentMineLevel));
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,22 +12,22 @@ namespace StardewModdingAPI.Events
|
||||||
public static event EventHandler<EventArgsLevelUp> LeveledUp = delegate { };
|
public static event EventHandler<EventArgsLevelUp> LeveledUp = delegate { };
|
||||||
public static event EventHandler<EventArgsLoadedGameChanged> LoadedGame = delegate { };
|
public static event EventHandler<EventArgsLoadedGameChanged> LoadedGame = delegate { };
|
||||||
|
|
||||||
public static void InvokeFarmerChanged(Farmer priorFarmer, Farmer newFarmer)
|
internal static void InvokeFarmerChanged(Farmer priorFarmer, Farmer newFarmer)
|
||||||
{
|
{
|
||||||
FarmerChanged.Invoke(null, new EventArgsFarmerChanged(priorFarmer, newFarmer));
|
FarmerChanged.Invoke(null, new EventArgsFarmerChanged(priorFarmer, newFarmer));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeInventoryChanged(List<Item> inventory, List<ItemStackChange> changedItems)
|
internal static void InvokeInventoryChanged(List<Item> inventory, List<ItemStackChange> changedItems)
|
||||||
{
|
{
|
||||||
InventoryChanged.Invoke(null, new EventArgsInventoryChanged(inventory, changedItems));
|
InventoryChanged.Invoke(null, new EventArgsInventoryChanged(inventory, changedItems));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeLeveledUp(EventArgsLevelUp.LevelType type, int newLevel)
|
internal static void InvokeLeveledUp(EventArgsLevelUp.LevelType type, int newLevel)
|
||||||
{
|
{
|
||||||
LeveledUp.Invoke(null, new EventArgsLevelUp(type, newLevel));
|
LeveledUp.Invoke(null, new EventArgsLevelUp(type, newLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeLoadedGame(EventArgsLoadedGameChanged loaded)
|
internal static void InvokeLoadedGame(EventArgsLoadedGameChanged loaded)
|
||||||
{
|
{
|
||||||
LoadedGame.Invoke(null, loaded);
|
LoadedGame.Invoke(null, loaded);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,24 +9,34 @@ namespace StardewModdingAPI.Events
|
||||||
public static event EventHandler<EventArgsIntChanged> YearOfGameChanged = delegate { };
|
public static event EventHandler<EventArgsIntChanged> YearOfGameChanged = delegate { };
|
||||||
public static event EventHandler<EventArgsStringChanged> SeasonOfYearChanged = delegate { };
|
public static event EventHandler<EventArgsStringChanged> SeasonOfYearChanged = delegate { };
|
||||||
|
|
||||||
public static void InvokeTimeOfDayChanged(int priorInt, int newInt)
|
/// <summary>
|
||||||
|
/// Occurs when Game1.newDay changes. True directly before saving, and False directly after.
|
||||||
|
/// </summary>
|
||||||
|
public static event EventHandler<EventArgsNewDay> OnNewDay = delegate { };
|
||||||
|
|
||||||
|
internal static void InvokeTimeOfDayChanged(int priorInt, int newInt)
|
||||||
{
|
{
|
||||||
TimeOfDayChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
TimeOfDayChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeDayOfMonthChanged(int priorInt, int newInt)
|
internal static void InvokeDayOfMonthChanged(int priorInt, int newInt)
|
||||||
{
|
{
|
||||||
DayOfMonthChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
DayOfMonthChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeYearOfGameChanged(int priorInt, int newInt)
|
internal static void InvokeYearOfGameChanged(int priorInt, int newInt)
|
||||||
{
|
{
|
||||||
YearOfGameChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
YearOfGameChanged.Invoke(null, new EventArgsIntChanged(priorInt, newInt));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InvokeSeasonOfYearChanged(string priorString, string newString)
|
internal static void InvokeSeasonOfYearChanged(string priorString, string newString)
|
||||||
{
|
{
|
||||||
SeasonOfYearChanged.Invoke(null, new EventArgsStringChanged(priorString, newString));
|
SeasonOfYearChanged.Invoke(null, new EventArgsStringChanged(priorString, newString));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void InvokeOnNewDay(int priorInt, int newInt, bool newDay)
|
||||||
|
{
|
||||||
|
OnNewDay.Invoke(null, new EventArgsNewDay(priorInt, newInt, newDay));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,8 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace StardewModdingAPI
|
namespace StardewModdingAPI
|
||||||
{
|
{
|
||||||
|
@ -50,5 +54,36 @@ namespace StardewModdingAPI
|
||||||
EntryDll = "";
|
EntryDll = "";
|
||||||
return this as T;
|
return this as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override T LoadConfig<T>()
|
||||||
|
{
|
||||||
|
if (File.Exists(ConfigLocation))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Manifest m = JsonConvert.DeserializeObject<Manifest>(File.ReadAllText(ConfigLocation));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
//Invalid json blob. Try to remove version?
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JObject j = JObject.Parse(File.ReadAllText(ConfigLocation));
|
||||||
|
if (!j.GetValue("Version").Contains("{"))
|
||||||
|
{
|
||||||
|
Log.AsyncC("INVALID JSON VERSION. TRYING TO REMOVE SO A NEW CAN BE AUTO-GENERATED");
|
||||||
|
j.Remove("Version");
|
||||||
|
File.WriteAllText(ConfigLocation, j.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
//Idgaf speeder can go fuck himself
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.LoadConfig<T>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -35,8 +35,8 @@ namespace StardewModdingAPI
|
||||||
|
|
||||||
public static Texture2D DebugPixel { get; private set; }
|
public static Texture2D DebugPixel { get; private set; }
|
||||||
|
|
||||||
public static bool StardewInjectorLoaded { get; private set; }
|
// ReSharper disable once PossibleNullReferenceException
|
||||||
public static Mod StardewInjectorMod { get; private set; }
|
public static int BuildType => (int) StardewProgramType.GetField("buildType", BindingFlags.Public | BindingFlags.Static).GetValue(null);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue