Async load mod, Assassin_WoundDeterioration(unfinished)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user