Async load mod, Assassin_WoundDeterioration(unfinished)

This commit is contained in:
FrazeRIP
2025-11-07 01:46:56 -06:00
parent e27ddb6a07
commit 3f1e04dee7
16 changed files with 966 additions and 16 deletions

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using SLSFramework.General;
using UMod;
using UMod.Scripting;
using UnityEngine;
using UnityEngine.ResourceManagement.Exceptions;
using Object = UnityEngine.Object;
namespace SLSFramework.UModAssistance
@@ -21,6 +23,23 @@ namespace SLSFramework.UModAssistance
Debug.Log($"Mod '{modName}' loaded successfully.");
return host;
}
public static async Task<ModHost> LoadAsync(IModInfo modInfo)
{
string modName = modInfo.NameInfo.ModName;
var host = Mod.LoadAsync(Mod.DefaultDirectory.GetModPath(modName));
while (!host.IsDone)
{
await Task.Yield();
}
if (!host.IsSuccessful)
{
throw new OperationException($"Failed to load mod '{modName}'");
}
LoadedMods.Add(modName, host.Result);
Debug.Log($"Mod '{modName}' async loaded successfully.");
return host.Result;
}
}
public static partial class ModManager