public static void Run(bool doorstop = false) { try { _Run(doorstop); } catch (Exception e) { Debug.LogException(e); ATTTModManager.OpenUnityFileLog(); } }
private static void _Run(bool doorstop) { Console.WriteLine(); Console.WriteLine(); ATTTModManager.Logger.Log("Injection..."); if (!ATTTModManager.Initialize()) { ATTTModManager.Logger.Log($"Cancel start due to an error."); ATTTModManager.OpenUnityFileLog(); return; } Fixes.Apply(); if (!string.IsNullOrEmpty(ATTTModManager.Config.StartingPoint)) { if (!doorstop && ATTTModManager.Config.StartingPoint == ATTTModManager.Config.EntryPoint) { ATTTModManager.Start(); } else { if (TryGetEntryPoint(ATTTModManager.Config.StartingPoint, out var @class, out var method, out var place)) { usePrefix = (place == "before"); var harmony = HarmonyInstance.Create(nameof(ATTTModManager)); var prefix = typeof(Injector).GetMethod(nameof(Prefix_Start), BindingFlags.Static | BindingFlags.NonPublic); var postfix = typeof(Injector).GetMethod(nameof(Postfix_Start), BindingFlags.Static | BindingFlags.NonPublic); harmony.Patch(method, new HarmonyMethod(prefix), new HarmonyMethod(postfix)); ATTTModManager.Logger.Log("Injection successful."); } else { ATTTModManager.Logger.Log("Injection canceled."); ATTTModManager.OpenUnityFileLog(); return; } }