Animator parameters save and restore

This commit is contained in:
SDraw 2023-03-18 01:35:14 +03:00
parent da201e2135
commit 2c67f02f7e
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
4 changed files with 82 additions and 9 deletions

View file

@ -256,14 +256,15 @@ namespace ml_amt
return false;
}
static void OnOverride_Prefix(ref CVRAnimatorManager __instance, ref bool __state)
static void OnOverride_Prefix(ref CVRAnimatorManager __instance, out AnimatorAnalyzer __state)
{
__state = new AnimatorAnalyzer();
try
{
if(Settings.OverrideFix && (__instance.animator != null))
{
__state = __instance.animator.enabled;
if(__state)
__state.AnalyzeFrom(__instance.animator);
if(__state.IsEnabled())
__instance.animator.enabled = false;
__instance.animator.WriteDefaultValues();
}
@ -273,14 +274,14 @@ namespace ml_amt
MelonLoader.MelonLogger.Error(l_exception);
}
}
static void OnOverride_Postfix(ref CVRAnimatorManager __instance, bool __state)
static void OnOverride_Postfix(ref CVRAnimatorManager __instance, AnimatorAnalyzer __state)
{
try
{
if(Settings.OverrideFix && (__instance.animator != null))
{
__instance.animator.enabled = __state;
if(__state)
__state.ApplyTo(__instance.animator);
if(__state.IsEnabled())
__instance.animator.Update(0f);
}
}