Files
7d2dXG/Mods/0A-KFCommonUtilityLib/Harmony/BackgroundInventoryUpdatePatch.cs
Nathaniel Cosford e06f2bd282 Add All Mods
2025-05-29 23:33:28 +09:30

52 lines
1.8 KiB
C#

using HarmonyLib;
using KFCommonUtilityLib.Scripts.StaticManagers;
namespace KFCommonUtilityLib.Harmony
{
[HarmonyPatch]
public class BackgroundInventoryUpdatePatch
{
[HarmonyPatch(typeof(Inventory), nameof(Inventory.clearSlotByIndex))]
[HarmonyPostfix]
private static void Postfix_clearSlotByIndex_Inventory(Inventory __instance, int _idx)
{
BackgroundInventoryUpdateManager.UnregisterUpdater(__instance.entity, _idx);
}
[HarmonyPatch(typeof(EntityAlive), nameof(EntityAlive.OnEntityDeath))]
[HarmonyPostfix]
private static void Postfix_OnEntityDeath_EntityAlive(EntityAlive __instance)
{
BackgroundInventoryUpdateManager.UnregisterUpdater(__instance);
}
[HarmonyPatch(typeof(Inventory), nameof(Inventory.OnUpdate))]
[HarmonyPostfix]
private static void Postfix_OnUpdate_Inventory(Inventory __instance)
{
BackgroundInventoryUpdateManager.Update(__instance.entity);
}
[HarmonyPatch(typeof(GameManager), nameof(GameManager.SaveAndCleanupWorld))]
[HarmonyPostfix]
private static void Postfix_SaveAndCleanupWorld_GameManager()
{
BackgroundInventoryUpdateManager.Cleanup();
}
[HarmonyPatch(typeof(EntityAlive), nameof(EntityAlive.AttachToEntity))]
[HarmonyPostfix]
private static void Postfix_AttachToEntity_EntityAlive(EntityAlive __instance)
{
BackgroundInventoryUpdateManager.DisableUpdater(__instance);
}
[HarmonyPatch(typeof(EntityAlive), nameof(EntityAlive.Detach))]
[HarmonyPostfix]
private static void Postfix_Detach_EntityAlive(EntityAlive __instance)
{
BackgroundInventoryUpdateManager.EnableUpdater(__instance);
}
}
}