private static void FirstFixedUpdate(ModData data, float tDelta) { try { Logger.Write("Running all single-fire events."); OnFirstUpdate(); } catch (Exception e) { Logger.Buffer("Complete failure loading OnFirstUpdate."); Logger.Buffer(e.Message); Logger.Buffer(e.StackTrace); Logger.Flush(); } // Swap off of this method. data.OnFixedUpdate = SubsequentFixedUpdates; }
public static void Update() { if (!(GameManager.getInstance().getGameState() is GameStateLogo)) { skippedIDX++; return; } Logger.Buffer($"Skipped {skippedIDX} frames before being ready."); foreach (Type t in typesToEnable) { FieldInfo mReqField = t .GetField("mRequiredStructure", BindingFlags.NonPublic | BindingFlags.Instance); ModuleType moduleInst = ModuleTypeList.find(t.Name); #if DEBUG Logger.Buffer( $"Inst is null? {moduleInst is null}\t" + $"ReqField is null? {mReqField is null}\t" + $"[{t?.Name.Remove(0, 10)}]"); #endif mReqField?.SetValue(moduleInst, new ModuleTypeRef()); } Logger.Flush(); #if DEBUG RunChecks(); #endif Logger.Write("Done patching."); }