diff --git a/source/Fixes/BTLoadUtils.cs b/source/Fixes/BTLoadUtils.cs index 8c9b0e2..f7d1f7a 100644 --- a/source/Fixes/BTLoadUtils.cs +++ b/source/Fixes/BTLoadUtils.cs @@ -1,22 +1,20 @@ -using System; -using System.Collections.Generic; -using System.Text; -using BattleTech; +using BattleTech; using BattleTech.Data; +using System; namespace CustomComponents { class BTLoadUtils { - internal static void PreloadComponents(DataManager manager) + internal static LoadRequest CreateLoadRequest(DataManager dataManager, Action loadCompleteCallback, bool filterByOwnership) { - var loadRequest = manager.CreateLoadRequest(); + var loadRequest = dataManager.CreateLoadRequest(loadCompleteCallback, filterByOwnership); loadRequest.AddAllOfTypeLoadRequest(BattleTechResourceType.HeatSinkDef, null); loadRequest.AddAllOfTypeLoadRequest(BattleTechResourceType.UpgradeDef, null); loadRequest.AddAllOfTypeLoadRequest(BattleTechResourceType.WeaponDef, null); loadRequest.AddAllOfTypeLoadRequest(BattleTechResourceType.AmmunitionBoxDef, null); loadRequest.AddAllOfTypeLoadRequest(BattleTechResourceType.AmmunitionBoxDef, null); - loadRequest.ProcessRequests(); + return loadRequest; } } } diff --git a/source/Fixes/SimGameState_RequestDataManagerResources_Patch.cs b/source/Fixes/SimGameState_RequestDataManagerResources_Patch.cs index f28f73e..13c6acb 100644 --- a/source/Fixes/SimGameState_RequestDataManagerResources_Patch.cs +++ b/source/Fixes/SimGameState_RequestDataManagerResources_Patch.cs @@ -1,27 +1,20 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using BattleTech; +using BattleTech; +using BattleTech.Data; using Harmony; +using System.Collections.Generic; namespace CustomComponents.Fixes { [HarmonyPatch(typeof(SimGameState), "RequestDataManagerResources")] public static class SimGameState_RequestDataManagerResources_Patch { - [HarmonyPrefix] - public static void Preload(SimGameState __instance) + public static IEnumerable Transpiler(IEnumerable instructions) { - try - { - BTLoadUtils.PreloadComponents(__instance.DataManager); - } - catch (Exception e) - { - Control.LogError(e); - } - + return instructions + .MethodReplacer( + AccessTools.Method(typeof(DataManager), nameof(DataManager.CreateLoadRequest)), + AccessTools.Method(typeof(BTLoadUtils), nameof(BTLoadUtils.CreateLoadRequest)) + ); } } } diff --git a/source/Fixes/SkirmishMechBayPanel_RequestResources_Patch.cs b/source/Fixes/SkirmishMechBayPanel_RequestResources_Patch.cs index a152fd1..1c03dfb 100644 --- a/source/Fixes/SkirmishMechBayPanel_RequestResources_Patch.cs +++ b/source/Fixes/SkirmishMechBayPanel_RequestResources_Patch.cs @@ -1,22 +1,20 @@ -using System; +using BattleTech.Data; using BattleTech.UI; using Harmony; +using System.Collections.Generic; namespace CustomComponents { [HarmonyPatch(typeof(SkirmishMechBayPanel), "RequestResources")] public static class SkirmishMechBayPanel_RequestResources_Patch { - public static void Prefix(SkirmishMechBayPanel __instance) + public static IEnumerable Transpiler(IEnumerable instructions) { - try - { - BTLoadUtils.PreloadComponents(__instance.dataManager); - } - catch (Exception e) - { - Control.LogError(e); - } + return instructions + .MethodReplacer( + AccessTools.Method(typeof(DataManager), nameof(DataManager.CreateLoadRequest)), + AccessTools.Method(typeof(BTLoadUtils), nameof(BTLoadUtils.CreateLoadRequest)) + ); } } } \ No newline at end of file diff --git a/source/Fixes/SkirmishSettings_Beta_LoadLanceConfiguratorData_Patch.cs b/source/Fixes/SkirmishSettings_Beta_LoadLanceConfiguratorData_Patch.cs index 9202764..5ad8858 100644 --- a/source/Fixes/SkirmishSettings_Beta_LoadLanceConfiguratorData_Patch.cs +++ b/source/Fixes/SkirmishSettings_Beta_LoadLanceConfiguratorData_Patch.cs @@ -1,22 +1,20 @@ -using System; +using BattleTech.Data; using BattleTech.UI; using Harmony; +using System.Collections.Generic; namespace CustomComponents { [HarmonyPatch(typeof(SkirmishSettings_Beta), "LoadLanceConfiguratorData")] public static class SkirmishSettings_Beta_LoadLanceConfiguratorData_Patch { - public static void Prefix(SkirmishSettings_Beta __instance, UIManager ___uiManager) + public static IEnumerable Transpiler(IEnumerable instructions) { - try - { - BTLoadUtils.PreloadComponents(___uiManager.dataManager); - } - catch (Exception e) - { - Control.LogError(e); - } + return instructions + .MethodReplacer( + AccessTools.Method(typeof(DataManager), nameof(DataManager.CreateLoadRequest)), + AccessTools.Method(typeof(BTLoadUtils), nameof(BTLoadUtils.CreateLoadRequest)) + ); } } } \ No newline at end of file