be3dae46bb
Added RitualObligationTriggers analyzer category, Fixed defs from other mods with broken market value breaking fish's storage patches, Fixed storage caches not updating for quality, rotting and similar changes to stored things, Fixed storage caches not updating capacity when reinstalling storage, Fixed prison labor compatibility, Improved multiplayer compatibility, Fixed ideology style dominance and altar sharing patches throwing errors instead of defaulting to disabled when not having ideology, Fixed compatibility with RIMMSqol's world pawn GC patch by disabling that patch, Fixed rare threading issues throwing errors on startup
61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
// Copyright (c) 2023 bradson
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
namespace PerformanceFish;
|
|
|
|
public sealed class UtilityPatches : ClassWithFishPatches
|
|
{
|
|
public sealed class FinalizeInit_Patch : FishPatch
|
|
{
|
|
public override bool Enabled => true;
|
|
|
|
public override bool ShowSettings => false;
|
|
|
|
public override string Description { get; }
|
|
= "Necessary for patches that require a loaded game to function";
|
|
|
|
public override MethodBase TargetMethodInfo { get; }
|
|
= AccessTools.Method(typeof(Game), nameof(Game.FinalizeInit));
|
|
|
|
[HarmonyPriority(Priority.VeryLow)]
|
|
public static void Postfix()
|
|
{
|
|
foreach (var patch in PerformanceFishMod.AllPatchClasses!)
|
|
{
|
|
if (patch.RequiresLoadedGameForPatching)
|
|
patch.Patches.PatchAll();
|
|
}
|
|
|
|
Benchmarking.SwitchFrame = GenTicks.TicksGame + 6000;
|
|
Benchmarking.EndFrame = Benchmarking.SwitchFrame + 6000;
|
|
}
|
|
}
|
|
|
|
public sealed class ClearAllMapsAndWorld_Patch : FishPatch
|
|
{
|
|
public override bool Enabled => true;
|
|
|
|
public override bool ShowSettings => false;
|
|
|
|
public override string Description { get; }
|
|
= "This clears all Performance Fish caches whenever saves get unloaded, to avoid anything getting carried "
|
|
+ "over to a new game by mistake";
|
|
|
|
public override Delegate TargetMethodGroup => Verse.Profile.MemoryUtility.ClearAllMapsAndWorld;
|
|
|
|
[HarmonyPriority(Priority.VeryLow)]
|
|
public static void Postfix()
|
|
{
|
|
Cache.Utility.Clear();
|
|
StatCaching.ResetAllStatsCaches();
|
|
ParallelNoAlloc.ClearAll();
|
|
foreach (var patch in PerformanceFishMod.AllPatchClasses!)
|
|
{
|
|
if (patch.RequiresLoadedGameForPatching)
|
|
patch.Patches.UnpatchAll();
|
|
}
|
|
}
|
|
}
|
|
} |