Upload from upload_mods.ps1
This commit is contained in:
74
Score/Other/AvatarController.cs
Normal file
74
Score/Other/AvatarController.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Harmony.AvatarControllerPatch
|
||||
{
|
||||
public class AvatarControllerSetTrig
|
||||
{
|
||||
[HarmonyPatch(typeof(AvatarController))]
|
||||
[HarmonyPatch("SetCrouching")]
|
||||
public class AvatarControllerSetCrouching
|
||||
{
|
||||
private static readonly int IsCrouchingHash = Animator.StringToHash("IsCrouching");
|
||||
public static bool Prefix(global::AvatarController __instance, Animator ___anim, bool _bEnable, Dictionary<int, AnimParamData> ___ChangedAnimationParameters, global::EntityAlive ___entity)
|
||||
{
|
||||
if (___anim == null || ___anim.GetBool(IsCrouchingHash) == _bEnable) return true;
|
||||
___anim.SetBool(IsCrouchingHash, _bEnable);
|
||||
if (IsCrouchingHash == AvatarController.isFPVHash)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!___entity.isEntityRemote)
|
||||
{
|
||||
___ChangedAnimationParameters[IsCrouchingHash] = new AnimParamData(IsCrouchingHash, AnimParamData.ValueTypes.Bool, _bEnable);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(AvatarZombieController))]
|
||||
[HarmonyPatch("FindBodyParts")]
|
||||
public class AvatarControllerFindBodyParts
|
||||
{
|
||||
public static void Postfix(global::AvatarZombieController __instance, global::EntityAlive ___entity, Transform ___bipedT, ref Transform ___rightHandT)
|
||||
{
|
||||
if (___entity is not EntityAliveV2 entityAlive) return;
|
||||
|
||||
// Since we allow weapon switching, the right hand transform may change depending on the weapon.
|
||||
// Re-read the right hand transform, which will give it the option to specify another one through a property entry on the item.
|
||||
___rightHandT = ___bipedT.FindInChilds(entityAlive.GetRightHandTransformName(), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[HarmonyPatch(typeof(AvatarZombieController))]
|
||||
[HarmonyPatch("Update")]
|
||||
public class AvatarControllerUpdate
|
||||
{
|
||||
public static void Postfix(global::AvatarZombieController __instance, global::EntityAlive ___entity)
|
||||
{
|
||||
if (___entity == null) return;
|
||||
if (___entity is not EntityAliveV2) return;
|
||||
if (___entity.IsFlyMode.Value) return;
|
||||
|
||||
|
||||
__instance.TryGetFloat(AvatarController.forwardHash, out var num);
|
||||
__instance.TryGetFloat(AvatarController.strafeHash, out var num2);
|
||||
|
||||
if (num < 0.01)
|
||||
{
|
||||
__instance.UpdateFloat(AvatarController.forwardHash, 0f, false);
|
||||
}
|
||||
|
||||
if (num2 < 0.01)
|
||||
{
|
||||
__instance.UpdateFloat(AvatarController.strafeHash, 0f, false);
|
||||
}
|
||||
|
||||
if (num < 0.01f || num2 < 0.01f)
|
||||
{
|
||||
__instance.UpdateBool(AvatarController.isMovingHash, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user