deprecate PyTK compatibility mode
This commit is contained in:
parent
2bb8e8353b
commit
47a68fbb7b
|
@ -2,7 +2,9 @@ using System;
|
|||
using System.Reflection;
|
||||
using StardewModdingAPI.Events;
|
||||
using StardewModdingAPI.Internal.Patching;
|
||||
#if SMAPI_DEPRECATED
|
||||
using StardewModdingAPI.Mods.ErrorHandler.ModPatches;
|
||||
#endif
|
||||
using StardewModdingAPI.Mods.ErrorHandler.Patches;
|
||||
using StardewValley;
|
||||
|
||||
|
@ -39,10 +41,12 @@ namespace StardewModdingAPI.Mods.ErrorHandler
|
|||
new ObjectPatcher(),
|
||||
new SaveGamePatcher(this.Monitor, this.OnSaveContentRemoved),
|
||||
new SpriteBatchPatcher(),
|
||||
new UtilityPatcher(),
|
||||
new UtilityPatcher()
|
||||
|
||||
#if SMAPI_DEPRECATED
|
||||
// mod patches
|
||||
new PyTkPatcher(helper.ModRegistry)
|
||||
, new PyTkPatcher(helper.ModRegistry)
|
||||
#endif
|
||||
);
|
||||
|
||||
// hook events
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#if SMAPI_DEPRECATED
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Reflection;
|
||||
|
@ -77,3 +78,4 @@ namespace StardewModdingAPI.Mods.ErrorHandler.ModPatches
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -50,8 +50,10 @@ namespace StardewModdingAPI.Framework.ContentManagers
|
|||
/*********
|
||||
** Accessors
|
||||
*********/
|
||||
#if SMAPI_DEPRECATED
|
||||
/// <summary>Whether to enable legacy compatibility mode for PyTK scale-up textures.</summary>
|
||||
internal static bool EnablePyTkLegacyMode;
|
||||
#endif
|
||||
|
||||
|
||||
/*********
|
||||
|
@ -202,6 +204,7 @@ namespace StardewModdingAPI.Framework.ContentManagers
|
|||
bool expectsRawData = typeof(T).IsAssignableTo(typeof(IRawTextureData));
|
||||
bool asRawData = expectsRawData || this.UseRawImageLoading;
|
||||
|
||||
#if SMAPI_DEPRECATED
|
||||
// disable raw data if PyTK will rescale the image (until it supports raw data)
|
||||
if (asRawData && !expectsRawData)
|
||||
{
|
||||
|
@ -212,9 +215,10 @@ namespace StardewModdingAPI.Framework.ContentManagers
|
|||
// current file has a '.pytk.json' rescale file though, since PyTK may still
|
||||
// rescale it if the original asset or another edit gets rescaled.
|
||||
asRawData = false;
|
||||
this.Monitor.LogOnce("Enabled compatibility mode for PyTK 1.23.* or earlier. This won't cause any issues, but may impact performance.", LogLevel.Warn);
|
||||
this.Monitor.LogOnce("Enabled compatibility mode for PyTK 1.23.* or earlier. This won't cause any issues, but may impact performance. This will no longer be supported in the upcoming SMAPI 4.0.0.", LogLevel.Warn);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// load
|
||||
if (asRawData)
|
||||
|
|
|
@ -1672,6 +1672,7 @@ namespace StardewModdingAPI.Framework
|
|||
// initialize translations
|
||||
this.ReloadTranslations(loaded);
|
||||
|
||||
#if SMAPI_DEPRECATED
|
||||
// set temporary PyTK compatibility mode
|
||||
// This is part of a three-part fix for PyTK 1.23.* and earlier. When removing this,
|
||||
// search 'Platonymous.Toolkit' to find the other part in SMAPI and Content Patcher.
|
||||
|
@ -1679,6 +1680,7 @@ namespace StardewModdingAPI.Framework
|
|||
IModInfo? pyTk = this.ModRegistry.Get("Platonymous.Toolkit");
|
||||
ModContentManager.EnablePyTkLegacyMode = pyTk is not null && pyTk.Manifest.Version.IsOlderThan("1.24.0");
|
||||
}
|
||||
#endif
|
||||
|
||||
// initialize loaded non-content-pack mods
|
||||
this.Monitor.Log("Launching mods...", LogLevel.Debug);
|
||||
|
|
Loading…
Reference in New Issue