From 8e46d3a8803cfb193b75ecc56444b309211b357d Mon Sep 17 00:00:00 2001 From: ash Date: Sun, 7 Jul 2024 18:43:51 +0700 Subject: [PATCH] Initial release --- ...InEx5Plugins.Ash.Alisa.FrameCounter.csproj | 33 +++++++++++++++++++ .../ExtensionMethods.cs | 19 +++++++++++ .../HarmonyPatches/BathInteraction_Start.cs | 15 +++++++++ .../HarmonyPatches/BottleDialogue_Start.cs | 14 ++++++++ .../HarmonyPatches/CabinetteInteract_Start.cs | 16 +++++++++ .../HarmonyPatches/ClockInteraction_Start.cs | 14 ++++++++ .../DeadDollInteraction_Start.cs | 14 ++++++++ .../DisplayCaseInteraction_Awake.cs | 14 ++++++++ .../Drawer01Interaction_Awake.cs | 14 ++++++++ .../GenericNoteInteraction_Start.cs | 14 ++++++++ .../GenericSpecialInteraction_Start.cs | 14 ++++++++ .../LastLetterBlockInteraction_Start.cs | 14 ++++++++ .../Puzzle01Interaction_Start.cs | 16 +++++++++ .../Puzzle02Interaction_Start.cs | 15 +++++++++ .../HarmonyPatches/SinkInteraction_Start.cs | 15 +++++++++ .../NuGet.Config | 6 ++++ .../Plugin.cs | 26 +++++++++++++++ 17 files changed, 273 insertions(+) create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/BepInEx5Plugins.Ash.Alisa.FrameCounter.csproj create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/ExtensionMethods.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BathInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BottleDialogue_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/CabinetteInteract_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/ClockInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DeadDollInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DisplayCaseInteraction_Awake.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Drawer01Interaction_Awake.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericNoteInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericSpecialInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/LastLetterBlockInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle01Interaction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle02Interaction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/SinkInteraction_Start.cs create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/NuGet.Config create mode 100644 BepInEx5Plugins.Ash.Alisa.FrameCounter/Plugin.cs diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/BepInEx5Plugins.Ash.Alisa.FrameCounter.csproj b/BepInEx5Plugins.Ash.Alisa.FrameCounter/BepInEx5Plugins.Ash.Alisa.FrameCounter.csproj new file mode 100644 index 0000000..1ef4fbc --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/BepInEx5Plugins.Ash.Alisa.FrameCounter.csproj @@ -0,0 +1,33 @@ + + + + net35 + BepInEx5Plugins.Ash.Alisa.FrameCounter + FrameCounter + 1.0.0 + true + 9.0 + + + + + + + + + + + + + + + + ..\lib\SteamRelease\Assembly-CSharp.dll + false + + + + + + + diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/ExtensionMethods.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/ExtensionMethods.cs new file mode 100644 index 0000000..901111f --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/ExtensionMethods.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter +{ + public static partial class ExtensionMethods + { + public static T AddComponentUnique(this GameObject instance) where T : Component + { + var t = instance.GetComponent(); + + if (!t) + { + t = instance.AddComponent(); + } + + return t; + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BathInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BathInteraction_Start.cs new file mode 100644 index 0000000..b6e5752 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BathInteraction_Start.cs @@ -0,0 +1,15 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(BathInteraction), "Start")] + public class BathInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(BathInteraction __instance) + { + __instance.cam01?.AddComponentUnique(); + __instance.cam02?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BottleDialogue_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BottleDialogue_Start.cs new file mode 100644 index 0000000..68de81d --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/BottleDialogue_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(BottleDialogue), "Start")] + public class BottleDialogue_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(BottleDialogue __instance) + { + __instance.myCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/CabinetteInteract_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/CabinetteInteract_Start.cs new file mode 100644 index 0000000..c4c6583 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/CabinetteInteract_Start.cs @@ -0,0 +1,16 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(CabinetteInteract), "Start")] + public class CabinetteInteract_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(CabinetteInteract __instance) + { + __instance.thePuzzleCam?.AddComponentUnique(); + __instance.myCam?.AddComponentUnique(); + __instance.cabinetteCam?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/ClockInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/ClockInteraction_Start.cs new file mode 100644 index 0000000..e6c1eb1 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/ClockInteraction_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(ClockInteraction), "Start")] + public class ClockInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(ClockInteraction __instance) + { + __instance.clockCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DeadDollInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DeadDollInteraction_Start.cs new file mode 100644 index 0000000..7f65610 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DeadDollInteraction_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(DeadDollInteraction), "Start")] + public class DeadDollInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(DeadDollInteraction __instance) + { + __instance.theCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DisplayCaseInteraction_Awake.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DisplayCaseInteraction_Awake.cs new file mode 100644 index 0000000..452daf4 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/DisplayCaseInteraction_Awake.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(DisplayCaseInteraction), "Awake")] + public class DisplayCaseInteraction_Awake + { + // Add a frameCounter component if necessary. + public static void Postfix(DisplayCaseInteraction __instance) + { + __instance.theCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Drawer01Interaction_Awake.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Drawer01Interaction_Awake.cs new file mode 100644 index 0000000..f8673a0 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Drawer01Interaction_Awake.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(Drawer01Interaction), "Awake")] + public class Drawer01Interaction_Awake + { + // Add a frameCounter component if necessary. + public static void Postfix(Drawer01Interaction __instance) + { + __instance.theCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericNoteInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericNoteInteraction_Start.cs new file mode 100644 index 0000000..5c1afa4 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericNoteInteraction_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(GenericNoteInteraction), "Start")] + public class GenericNoteInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(GenericNoteInteraction __instance) + { + __instance.myCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericSpecialInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericSpecialInteraction_Start.cs new file mode 100644 index 0000000..ad7228d --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/GenericSpecialInteraction_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(GenericSpecialInteraction), "Start")] + public class GenericSpecialInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(GenericSpecialInteraction __instance) + { + __instance.specialCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/LastLetterBlockInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/LastLetterBlockInteraction_Start.cs new file mode 100644 index 0000000..71d023c --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/LastLetterBlockInteraction_Start.cs @@ -0,0 +1,14 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(LastLetterBlockInteraction), "Start")] + public class LastLetterBlockInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(LastLetterBlockInteraction __instance) + { + __instance.myCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle01Interaction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle01Interaction_Start.cs new file mode 100644 index 0000000..f7aa3c2 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle01Interaction_Start.cs @@ -0,0 +1,16 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(Puzzle01Interaction), "Start")] + public class Puzzle01Interaction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(Puzzle01Interaction __instance) + { + __instance.camera01?.AddComponentUnique(); + __instance.camera02?.AddComponentUnique(); + __instance.camera03?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle02Interaction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle02Interaction_Start.cs new file mode 100644 index 0000000..65db63e --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/Puzzle02Interaction_Start.cs @@ -0,0 +1,15 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(Puzzle02Interaction), "Start")] + public class Puzzle02Interaction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(Puzzle02Interaction __instance) + { + __instance.camera01?.gameObject.AddComponentUnique(); + __instance.puzzleCamera?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/SinkInteraction_Start.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/SinkInteraction_Start.cs new file mode 100644 index 0000000..a68e2c3 --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/HarmonyPatches/SinkInteraction_Start.cs @@ -0,0 +1,15 @@ +using HarmonyLib; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter.HarmonyPatches +{ + [HarmonyPatch(typeof(SinkInteraction), "Start")] + public class SinkInteraction_Start + { + // Add a frameCounter component if necessary. + public static void Postfix(SinkInteraction __instance) + { + __instance.camera01?.AddComponentUnique(); + __instance.camera02?.AddComponentUnique(); + } + } +} diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/NuGet.Config b/BepInEx5Plugins.Ash.Alisa.FrameCounter/NuGet.Config new file mode 100644 index 0000000..1864ded --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/BepInEx5Plugins.Ash.Alisa.FrameCounter/Plugin.cs b/BepInEx5Plugins.Ash.Alisa.FrameCounter/Plugin.cs new file mode 100644 index 0000000..fcf6d9c --- /dev/null +++ b/BepInEx5Plugins.Ash.Alisa.FrameCounter/Plugin.cs @@ -0,0 +1,26 @@ +using BepInEx; +using HarmonyLib; +using System; + +namespace BepInEx5Plugins.Ash.Alisa.FrameCounter +{ + [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)] + public class Plugin : BaseUnityPlugin + { + private void Awake() + { + try + { + Logger.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded!"); + + var harmony = new Harmony(Info.Metadata.GUID); + + harmony.PatchAll(); + } + catch (Exception exception) + { + Console.WriteLine(exception); + } + } + } +}