update compatibility workaround for the recent PyTK update
This commit is contained in:
parent
c2f474bf88
commit
2bb8e8353b
|
@ -8,7 +8,9 @@
|
|||
-->
|
||||
|
||||
## Upcoming release
|
||||
* Fixed broken mods sometimes incorrectly listed as duplicate.
|
||||
* For players:
|
||||
* Updated compatibility workaround for the recent PyTK update.
|
||||
* Fixed broken mods sometimes incorrectly listed as duplicate.
|
||||
|
||||
## 3.16.0
|
||||
Released 22 August 2022 for Stardew Valley 1.5.6 or later. See [release highlights](https://www.patreon.com/posts/70797008).
|
||||
|
|
|
@ -10,7 +10,7 @@ using StardewModdingAPI.Internal;
|
|||
using StardewModdingAPI.Internal.Patching;
|
||||
|
||||
//
|
||||
// This is part of a three-part fix for PyTK 1.23.0 and earlier. When removing this, search
|
||||
// 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.
|
||||
//
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace StardewModdingAPI.Mods.ErrorHandler.ModPatches
|
|||
public PyTkPatcher(IModRegistry modRegistry)
|
||||
{
|
||||
IModMetadata? pyTk = (IModMetadata?)modRegistry.Get(@"Platonymous.Toolkit");
|
||||
if (pyTk is not null && !pyTk.Manifest.Version.IsNewerThan("1.23.0"))
|
||||
if (pyTk is not null && pyTk.Manifest.Version.IsOlderThan("1.24.0"))
|
||||
PyTkPatcher.PyTk = pyTk;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
LogModInfo[] outdatedMods = log?.Mods.Where(mod => mod.HasUpdate).ToArray() ?? Array.Empty<LogModInfo>();
|
||||
LogModInfo? errorHandler = log?.Mods.FirstOrDefault(p => p.IsCodeMod && p.Name == "Error Handler");
|
||||
bool hasOlderErrorHandler = errorHandler?.GetParsedVersion() is not null && log?.ApiVersionParsed is not null && log.ApiVersionParsed.IsNewerThan(errorHandler.GetParsedVersion());
|
||||
bool isPyTkCompatibilityMode = log?.ApiVersionParsed?.IsOlderThan("3.15.0") is false && log.Mods.Any(p => p.IsCodeMod && p.Name == "PyTK" && p.GetParsedVersion()?.IsOlderThan("1.23.1") is true);
|
||||
bool isPyTkCompatibilityMode = log?.ApiVersionParsed?.IsOlderThan("3.15.0") is false && log.Mods.Any(p => p.IsCodeMod && p.Name == "PyTK" && p.GetParsedVersion()?.IsOlderThan("1.24.0") is true);
|
||||
|
||||
// get filters
|
||||
IDictionary<string, bool> defaultFilters = Enum
|
||||
|
@ -257,7 +257,7 @@ else if (log?.IsValid == true)
|
|||
}
|
||||
@if (isPyTkCompatibilityMode)
|
||||
{
|
||||
<li>PyTK 1.23.0 or earlier isn't compatible with newer SMAPI performance optimizations. This may increase loading times or in-game lag.</li>
|
||||
<li>PyTK 1.23.* or earlier isn't compatible with newer SMAPI performance optimizations. This may increase loading times or in-game lag.</li>
|
||||
}
|
||||
@if (outdatedMods.Any())
|
||||
{
|
||||
|
|
|
@ -212,7 +212,7 @@ 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.0 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.", LogLevel.Warn);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1673,11 +1673,11 @@ namespace StardewModdingAPI.Framework
|
|||
this.ReloadTranslations(loaded);
|
||||
|
||||
// set temporary PyTK compatibility mode
|
||||
// This is part of a three-part fix for PyTK 1.23.0 and earlier. When removing this,
|
||||
// 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.
|
||||
{
|
||||
IModInfo? pyTk = this.ModRegistry.Get("Platonymous.Toolkit");
|
||||
ModContentManager.EnablePyTkLegacyMode = pyTk is not null && pyTk.Manifest.Version.IsOlderThan("1.23.1");
|
||||
ModContentManager.EnablePyTkLegacyMode = pyTk is not null && pyTk.Manifest.Version.IsOlderThan("1.24.0");
|
||||
}
|
||||
|
||||
// initialize loaded non-content-pack mods
|
||||
|
|
Loading…
Reference in New Issue