mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
54 lines
No EOL
2 KiB
C#
54 lines
No EOL
2 KiB
C#
using ABI_RC.Systems.Camera;
|
|
using HarmonyLib;
|
|
using UnityEngine;
|
|
|
|
namespace NAK.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);
|
|
}
|
|
} |