mirror of
https://github.com/hanetzer/sdraw_mods_cvr.git
synced 2025-09-03 18:39:23 +00:00
Minor change of grab state detection
This commit is contained in:
parent
dee25a1c48
commit
e5d4ea9d29
4 changed files with 19 additions and 4 deletions
|
@ -122,7 +122,7 @@ namespace ml_prm
|
|||
ms_fallDamageToggle = ms_category.AddToggle("Fall damage", "Enable ragdoll when falling from height", Settings.FallDamage);
|
||||
ms_fallDamageToggle.OnValueUpdated += (state) => OnToggleUpdate(UiIndex.FallDamage, state);
|
||||
|
||||
ms_gestureGrabToggle = ms_category.AddToggle("Gesture grab", "Enable grabbing of ragdolled body parts by remote players with trigger gesture<p>Warning: can lead to unpredictable physics behaviour in some cases", Settings.GestureGrab);
|
||||
ms_gestureGrabToggle = ms_category.AddToggle("Gesture grab", "Enable grabbing of ragdolled body parts by remote players with trigger/grab gesture<p>Warning: can lead to unpredictable physics behaviour in some cases", Settings.GestureGrab);
|
||||
ms_gestureGrabToggle.OnValueUpdated += (state) => OnToggleUpdate(UiIndex.GestureGrab, state);
|
||||
|
||||
ms_friendsGrabToggle = ms_category.AddToggle("Friends grab only", " ", Settings.FriendsGrab);
|
||||
|
|
|
@ -29,7 +29,7 @@ Optional mod's settings page with [BTKUILib](https://github.com/BTK-Development/
|
|||
* **Buoyancy:** enables floating in fluid volumes; `true` by default.
|
||||
* Note: Forcibly enabled in worlds that don't allow flight.
|
||||
* **Fall damage:** enables ragdoll when falling from specific height; `true` by default.
|
||||
* **Gesture grab:** enables grabbing of ragdolled body parts by remote players with trigger gesture; `false` by default.
|
||||
* **Gesture grab:** enables grabbing of ragdolled body parts by remote players with trigger/grab gesture; `false` by default.
|
||||
* Note: Can lead to unpredictable physics behaviour in some cases.
|
||||
* **Friends grab only:** Allow only friends to be able to grab your radgolled body parts; `true` by default.
|
||||
* **Velocity multiplier:** velocity force multiplier based on player's movement direction; `2.0` by default.
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace ml_prm
|
|||
|
||||
void Update()
|
||||
{
|
||||
bool l_state = Mathf.Approximately(m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureLeft, 1f);
|
||||
bool l_state = m_puppetMaster.IsLeftGrabPointerActive();
|
||||
if(m_stateLeft != l_state)
|
||||
{
|
||||
m_stateLeft = l_state;
|
||||
|
@ -38,7 +38,7 @@ namespace ml_prm
|
|||
OnGestureState.Invoke(m_puppetMaster, true, m_stateLeft);
|
||||
}
|
||||
|
||||
l_state = Mathf.Approximately(m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureRight, 1f);
|
||||
l_state = m_puppetMaster.IsRightGrabPointerActive();
|
||||
if(m_stateRight != l_state)
|
||||
{
|
||||
m_stateRight = l_state;
|
||||
|
|
|
@ -7,6 +7,7 @@ using System.Collections.Generic;
|
|||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
using ABI_RC.Systems.IK.SubSystems;
|
||||
|
||||
namespace ml_prm
|
||||
{
|
||||
|
@ -43,5 +44,19 @@ namespace ml_prm
|
|||
}
|
||||
|
||||
public static bool IsInEnumeration(object p_obj, object[] p_enumeration) => p_enumeration.Contains(p_obj);
|
||||
|
||||
public static bool IsLeftGrabPointerActive(this PuppetMaster p_source)
|
||||
{
|
||||
bool l_result = ((p_source._playerAvatarMovementDataCurrent.AnimatorGestureLeft >= 0.5f) && (p_source._playerAvatarMovementDataCurrent.AnimatorGestureLeft <= 1f));
|
||||
l_result |= ((FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.LeftMiddle1Stretched) >= 0.5f) && (FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.LeftMiddle2Stretched) >= 0.5f) && (FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.LeftMiddle3Stretched) >= 0.5f));
|
||||
return l_result;
|
||||
}
|
||||
|
||||
public static bool IsRightGrabPointerActive(this PuppetMaster p_source)
|
||||
{
|
||||
bool l_result = ((p_source._playerAvatarMovementDataCurrent.AnimatorGestureRight >= 0.5f) && (p_source._playerAvatarMovementDataCurrent.AnimatorGestureRight <= 1f));
|
||||
l_result |= ((FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.RightMiddle1Stretched) >= 0.5f) && (FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.RightMiddle2Stretched) >= 0.5f) && (FingerSystem.GetCurlNormalized(p_source._playerAvatarMovementDataCurrent.RightMiddle3Stretched) >= 0.5f));
|
||||
return l_result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue