worldbox-observer-mod/IdleSpectator/BookEventPatches.cs

50 lines
1.1 KiB
C#

using HarmonyLib;
namespace IdleSpectator;
/// <summary>Book lifecycle patches from mutation discovery.</summary>
[HarmonyPatch]
public static class BookEventPatches
{
[HarmonyPatch(typeof(BookManager), nameof(BookManager.newBook))]
[HarmonyPostfix]
public static void PostfixNewBook(Book __result)
{
if (__result == null)
{
return;
}
BookInterestFeed.EmitFromBook(__result, "new");
}
[HarmonyPatch(typeof(BookManager), nameof(BookManager.generateNewBook))]
[HarmonyPostfix]
public static void PostfixGenerateNewBook(Book __result)
{
if (__result == null)
{
return;
}
BookInterestFeed.EmitFromBook(__result, "generate");
}
[HarmonyPatch(typeof(BookManager), nameof(BookManager.burnBook))]
[HarmonyPostfix]
public static void PostfixBurnBook(object[] __args)
{
Book book = null;
if (__args != null && __args.Length > 0)
{
book = __args[0] as Book;
}
if (book == null)
{
return;
}
BookInterestFeed.EmitFromBook(book, "burn");
}
}