summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ContentCoordinator.cs
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-05-15 19:14:40 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-05-15 19:14:40 -0400
commit5731b015a0c548ac72e0d7ce9c4153aa52da3562 (patch)
treea5897fa7258d4fc9cd79d7a975ce9d3d936b8cc4 /src/SMAPI/Framework/ContentCoordinator.cs
parenta9cadc7f32fd9fd244fc3e22c62a35e7c257c084 (diff)
parentcd843dc10b902adc32e96e34c5db3ebf98e9a159 (diff)
downloadSMAPI-5731b015a0c548ac72e0d7ce9c4153aa52da3562.tar.gz
SMAPI-5731b015a0c548ac72e0d7ce9c4153aa52da3562.tar.bz2
SMAPI-5731b015a0c548ac72e0d7ce9c4153aa52da3562.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI/Framework/ContentCoordinator.cs')
-rw-r--r--src/SMAPI/Framework/ContentCoordinator.cs18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/SMAPI/Framework/ContentCoordinator.cs b/src/SMAPI/Framework/ContentCoordinator.cs
index a24581a0..2b13f57a 100644
--- a/src/SMAPI/Framework/ContentCoordinator.cs
+++ b/src/SMAPI/Framework/ContentCoordinator.cs
@@ -595,6 +595,7 @@ namespace StardewModdingAPI.Framework
foreach (ModLinked<IAssetLoader> loader in this.Loaders)
{
// check if loader applies
+ Context.HeuristicModsRunningCode.Push(loader.Mod);
try
{
if (!loader.Data.CanLoad<T>(legacyInfo))
@@ -605,6 +606,10 @@ namespace StardewModdingAPI.Framework
loader.Mod.LogAsMod($"Mod failed when checking whether it could load asset '{legacyInfo.Name}', and will be ignored. Error details:\n{ex.GetLogSummary()}", LogLevel.Error);
continue;
}
+ finally
+ {
+ Context.HeuristicModsRunningCode.TryPop(out _);
+ }
// add operation
group ??= new AssetOperationGroup(new List<AssetLoadOperation>(), new List<AssetEditOperation>());
@@ -617,9 +622,7 @@ namespace StardewModdingAPI.Framework
Mod: loader.Mod,
OnBehalfOf: null,
Priority: AssetLoadPriority.Exclusive,
- GetData: assetInfo => loader.Data.Load<T>(
- this.GetLegacyAssetInfo(assetInfo)
- )
+ GetData: assetInfo => loader.Data.Load<T>(this.GetLegacyAssetInfo(assetInfo))
)
)
);
@@ -629,6 +632,7 @@ namespace StardewModdingAPI.Framework
foreach (var editor in this.Editors)
{
// check if editor applies
+ Context.HeuristicModsRunningCode.Push(editor.Mod);
try
{
if (!editor.Data.CanEdit<T>(legacyInfo))
@@ -639,6 +643,10 @@ namespace StardewModdingAPI.Framework
editor.Mod.LogAsMod($"Mod crashed when checking whether it could edit asset '{legacyInfo.Name}', and will be ignored. Error details:\n{ex.GetLogSummary()}", LogLevel.Error);
continue;
}
+ finally
+ {
+ Context.HeuristicModsRunningCode.TryPop(out _);
+ }
// HACK
//
@@ -672,9 +680,7 @@ namespace StardewModdingAPI.Framework
Mod: editor.Mod,
OnBehalfOf: null,
Priority: priority,
- ApplyEdit: assetData => editor.Data.Edit<T>(
- this.GetLegacyAssetData(assetData)
- )
+ ApplyEdit: assetData => editor.Data.Edit<T>(this.GetLegacyAssetData(assetData))
)
)
);