public static void PreLoad() { if (isPreInitialized) { return; } isPreInitialized = true; Debug.Log("SRML has successfully invaded the game!"); HarmonyPatcher.PatchAll(); try { SRModLoader.LoadMods(); } catch (Exception e) { ErrorGUI.CreateError($"{e.GetType().Name}: {e.Message}"); return; } try { SRModLoader.PreLoadMods(); } catch (Exception e) { ErrorGUI.CreateError($"{e.Message}"); } ReplacerCache.ClearCache(); HarmonyPatcher.Instance.Patch(typeof(GameContext).GetMethod("Start"), new HarmonyMethod(typeof(Main).GetMethod("PostLoad", BindingFlags.NonPublic | BindingFlags.Static))); }
/// <summary> /// Called before GameContext.Start() /// </summary> static void Load() { if (isInitialized) { return; } isInitialized = true; BaseObjects.Populate(); SRCallbacks.OnLoad(); PrefabUtils.ProcessReplacements(); KeyBindManager.ReadBinds(); GameContext.Instance.gameObject.AddComponent <ModManager>(); GameContext.Instance.gameObject.AddComponent <KeyBindManager.ProcessAllBindings>(); try { SRModLoader.LoadMods(); } catch (Exception e) { Debug.LogError(e); ErrorGUI.CreateError($"{e.GetType().Name}: {e.Message}"); return; } PostLoad(); }