update compatibility workaround for the recent PyTK update
This commit is contained in:
parent
c2f474bf88
commit
2bb8e8353b
|
@ -8,7 +8,9 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Upcoming release
|
## 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
|
## 3.16.0
|
||||||
Released 22 August 2022 for Stardew Valley 1.5.6 or later. See [release highlights](https://www.patreon.com/posts/70797008).
|
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;
|
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.
|
// '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)
|
public PyTkPatcher(IModRegistry modRegistry)
|
||||||
{
|
{
|
||||||
IModMetadata? pyTk = (IModMetadata?)modRegistry.Get(@"Platonymous.Toolkit");
|
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;
|
PyTkPatcher.PyTk = pyTk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
LogModInfo[] outdatedMods = log?.Mods.Where(mod => mod.HasUpdate).ToArray() ?? Array.Empty<LogModInfo>();
|
LogModInfo[] outdatedMods = log?.Mods.Where(mod => mod.HasUpdate).ToArray() ?? Array.Empty<LogModInfo>();
|
||||||
LogModInfo? errorHandler = log?.Mods.FirstOrDefault(p => p.IsCodeMod && p.Name == "Error Handler");
|
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 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
|
// get filters
|
||||||
IDictionary<string, bool> defaultFilters = Enum
|
IDictionary<string, bool> defaultFilters = Enum
|
||||||
|
@ -257,7 +257,7 @@ else if (log?.IsValid == true)
|
||||||
}
|
}
|
||||||
@if (isPyTkCompatibilityMode)
|
@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())
|
@if (outdatedMods.Any())
|
||||||
{
|
{
|
||||||
|
|
|
@ -212,7 +212,7 @@ namespace StardewModdingAPI.Framework.ContentManagers
|
||||||
// current file has a '.pytk.json' rescale file though, since PyTK may still
|
// current file has a '.pytk.json' rescale file though, since PyTK may still
|
||||||
// rescale it if the original asset or another edit gets rescaled.
|
// rescale it if the original asset or another edit gets rescaled.
|
||||||
asRawData = false;
|
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);
|
this.ReloadTranslations(loaded);
|
||||||
|
|
||||||
// set temporary PyTK compatibility mode
|
// 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.
|
// search 'Platonymous.Toolkit' to find the other part in SMAPI and Content Patcher.
|
||||||
{
|
{
|
||||||
IModInfo? pyTk = this.ModRegistry.Get("Platonymous.Toolkit");
|
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
|
// initialize loaded non-content-pack mods
|
||||||
|
|
Loading…
Reference in New Issue