Example #1
0
        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.");
        }