NAK_CVR_Mods/PortableCameraAdditions/HarmonyPatches.cs
2023-04-11 15:08:13 -05:00

54 lines
No EOL
2 KiB
C#

using ABI_RC.Systems.Camera;
using HarmonyLib;
using UnityEngine;
namespace NAK.Melons.PortableCameraAdditions.HarmonyPatches;
[HarmonyPatch]
internal class PortableCameraPatches
{
[HarmonyPostfix]
[HarmonyPatch(typeof(PortableCamera), nameof(PortableCamera.Start))]
private static void Postfix_PortableCamera_Start(ref PortableCamera __instance)
{
//run mod.Setup() instead of registering full mod with icon
VisualMods.CameraAdditions mainMod = new VisualMods.CameraAdditions();
mainMod.Setup(__instance);
}
[HarmonyPostfix]
[HarmonyPatch(typeof(PortableCamera), nameof(PortableCamera.OnWorldLoaded))]
private static void Postfix_PortableCamera_OnWorldLoaded(Camera worldCamera)
{
VisualMods.CameraAdditions.Instance?.OnWorldLoaded(worldCamera);
}
[HarmonyPostfix]
[HarmonyPatch(typeof(PortableCamera), nameof(PortableCamera.UpdateOptionsDisplay))]
private static void Postfix_PortableCamera_UpdateOptionsDisplay(ref bool ____showExpertSettings)
{
VisualMods.CameraAdditions.Instance?.OnUpdateOptionsDisplay(____showExpertSettings);
}
[HarmonyPostfix]
[HarmonyPatch(typeof(PortableCamera), nameof(PortableCamera.Update))]
private static void Postfix_PortableCamera_Update(ref PortableCamera __instance)
{
if (Input.GetKeyDown(KeyCode.F11))
{
bool flag = __instance.mode == MirroringMode.NoMirror;
__instance.mode = (flag) ? MirroringMode.Mirror : MirroringMode.NoMirror;
__instance.mirroringActive.SetActive(flag);
__instance.mirroringCanvas.gameObject.SetActive(flag);
}
}
[HarmonyPostfix]
[HarmonyPatch(typeof(PortableCamera), nameof(PortableCamera.OnDisable))]
private static void Postfix_PortableCamera_OnDisable(ref PortableCamera __instance)
{
__instance.mode = MirroringMode.NoMirror;
__instance.mirroringActive.SetActive(false);
__instance.mirroringCanvas.gameObject.SetActive(false);
}
}