mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-01 05:49:23 +00:00
113 lines
No EOL
3.6 KiB
C#
113 lines
No EOL
3.6 KiB
C#
using ABI_RC.Core.Player;
|
|
using HarmonyLib;
|
|
using NAK.AvatarScaleMod.AvatarScaling;
|
|
using NAK.AvatarScaleMod.GestureReconizer;
|
|
using UnityEngine;
|
|
using Object = UnityEngine.Object;
|
|
|
|
namespace NAK.AvatarScaleMod.HarmonyPatches;
|
|
|
|
internal class PlayerSetupPatches
|
|
{
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(PlayerSetup), nameof(PlayerSetup.Start))]
|
|
private static void Postfix_PlayerSetup_Start()
|
|
{
|
|
try
|
|
{
|
|
GameObject scaleManager = new (nameof(AvatarScaleManager), typeof(AvatarScaleManager));
|
|
Object.DontDestroyOnLoad(scaleManager);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error($"Error during the patched method {nameof(Postfix_PlayerSetup_Start)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(PlayerSetup), nameof(PlayerSetup.SetupAvatar))]
|
|
private static void Postfix_PlayerSetup_SetupAvatar(ref PlayerSetup __instance)
|
|
{
|
|
try
|
|
{
|
|
AvatarScaleManager.Instance.OnAvatarInstantiated(__instance);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error($"Error during the patched method {nameof(Postfix_PlayerSetup_SetupAvatar)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(PlayerSetup), nameof(PlayerSetup.ClearAvatar))]
|
|
private static void Postfix_PlayerSetup_ClearAvatar(ref PlayerSetup __instance)
|
|
{
|
|
try
|
|
{
|
|
if (__instance == null) return; // this is called when the game is closed
|
|
AvatarScaleManager.Instance.OnAvatarDestroyed(__instance);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error($"Error during the patched method {nameof(Postfix_PlayerSetup_ClearAvatar)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
internal class PuppetMasterPatches
|
|
{
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(PuppetMaster), nameof(PuppetMaster.AvatarInstantiated))]
|
|
private static void Postfix_PuppetMaster_AvatarInstantiated(ref PuppetMaster __instance)
|
|
{
|
|
try
|
|
{
|
|
AvatarScaleManager.Instance.OnNetworkAvatarInstantiated(__instance);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error(
|
|
$"Error during the patched method {nameof(Postfix_PuppetMaster_AvatarInstantiated)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(PuppetMaster), nameof(PuppetMaster.AvatarDestroyed))]
|
|
private static void Postfix_PuppetMaster_AvatarDestroyed(ref PuppetMaster __instance)
|
|
{
|
|
try
|
|
{
|
|
if (__instance == null) return; // this is called when the game is closed
|
|
AvatarScaleManager.Instance.OnNetworkAvatarDestroyed(__instance);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error(
|
|
$"Error during the patched method {nameof(Postfix_PuppetMaster_AvatarDestroyed)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
internal class GesturePlaneTestPatches
|
|
{
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(GesturePlaneTest), nameof(GesturePlaneTest.Start))]
|
|
private static void Postfix_GesturePlaneTest_Start()
|
|
{
|
|
try
|
|
{
|
|
// nicked from Kafe >:))))
|
|
ScaleReconizer.Initialize();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
AvatarScaleMod.Logger.Error($"Error during the patched method {nameof(Postfix_GesturePlaneTest_Start)}");
|
|
AvatarScaleMod.Logger.Error(e);
|
|
}
|
|
}
|
|
} |