NAK_CVR_Mods/.Deprecated/AASDefaultProfileFix/Main.cs

33 lines
No EOL
1.3 KiB
C#

using System.Reflection;
using ABI_RC.Core.Util.AnimatorManager;
using ABI.CCK.Scripts;
using HarmonyLib;
using MelonLoader;
namespace NAK.AASDefaultProfileFix;
public class AASDefaultProfileFix : MelonMod
{
public override void OnInitializeMelon()
{
HarmonyInstance.Patch(
typeof(CVRAdvancedAvatarSettings).GetMethod(nameof(CVRAdvancedAvatarSettings.LoadProfile),
BindingFlags.Public | BindingFlags.Instance),
prefix: new HarmonyMethod(typeof(AASDefaultProfileFix).GetMethod(nameof(OnAttemptLoadAASProfile),
BindingFlags.NonPublic | BindingFlags.Static))
);
}
// when default profile is selected the defaultProfileName string is emptydepends
// so it does not load/apply anything- we will fix by forcing LoadDefault when this is detected
private static bool OnAttemptLoadAASProfile(string profileName, AvatarAnimatorManager animatorManager,
ref CVRAdvancedAvatarSettings __instance)
{
if (!string.IsNullOrEmpty(profileName) // LoadDefault sets defaultProfileName as ""
&& profileName != "default") // CVRAdvancedSettingsFile defines initial default as "default"
return true;
__instance.LoadDefault(animatorManager);
return false;
}
}