mirror of
https://github.com/SDraw/ml_mods_cvr.git
synced 2026-05-04 09:17:01 +00:00
Game build 2025r181 update
This commit is contained in:
parent
bab5346876
commit
569a521be4
35 changed files with 233 additions and 55 deletions
109
ml_ppu/AvatarParameter.cs
Normal file
109
ml_ppu/AvatarParameter.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
using ABI_RC.Core.Util.AnimatorManager;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ml_ppu
|
||||
{
|
||||
class AvatarParameter
|
||||
{
|
||||
public readonly string m_name;
|
||||
public readonly int m_hash = 0;
|
||||
public readonly bool m_sync;
|
||||
public readonly AnimatorControllerParameterType m_type;
|
||||
readonly AvatarAnimatorManager m_manager = null;
|
||||
|
||||
public AvatarParameter(string p_name, AvatarAnimatorManager p_manager)
|
||||
{
|
||||
m_name = p_name;
|
||||
m_manager = p_manager;
|
||||
|
||||
Regex l_regex = new Regex("^#?" + p_name + '$');
|
||||
foreach(var l_param in m_manager.Animator.parameters)
|
||||
{
|
||||
if(l_regex.IsMatch(l_param.name))
|
||||
{
|
||||
m_name = l_param.name;
|
||||
m_sync = !l_param.name.StartsWith('#');
|
||||
m_hash = l_param.nameHash;
|
||||
m_type = l_param.type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetValue(bool p_value)
|
||||
{
|
||||
if(m_hash != 0)
|
||||
{
|
||||
if(m_sync)
|
||||
m_manager.SetParameter(m_name, p_value);
|
||||
else
|
||||
{
|
||||
switch(m_type)
|
||||
{
|
||||
case AnimatorControllerParameterType.Bool:
|
||||
case AnimatorControllerParameterType.Trigger:
|
||||
m_manager.Animator.SetBool(m_hash, p_value);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Int:
|
||||
m_manager.Animator.SetInteger(m_hash, p_value ? 1 : 0);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Float:
|
||||
m_manager.Animator.SetFloat(m_hash, p_value ? 1f : 0f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetValue(int p_value)
|
||||
{
|
||||
if(m_hash != 0)
|
||||
{
|
||||
if(m_sync)
|
||||
m_manager.SetParameter(m_name, p_value);
|
||||
else
|
||||
{
|
||||
switch(m_type)
|
||||
{
|
||||
case AnimatorControllerParameterType.Bool:
|
||||
case AnimatorControllerParameterType.Trigger:
|
||||
m_manager.Animator.SetBool(m_hash, p_value > 0);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Int:
|
||||
m_manager.Animator.SetInteger(m_hash, p_value);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Float:
|
||||
m_manager.Animator.SetFloat(m_hash, p_value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetValue(float p_value)
|
||||
{
|
||||
if(m_hash != 0)
|
||||
{
|
||||
if(m_sync)
|
||||
m_manager.SetParameter(m_name, p_value);
|
||||
else
|
||||
{
|
||||
switch(m_type)
|
||||
{
|
||||
case AnimatorControllerParameterType.Bool:
|
||||
case AnimatorControllerParameterType.Trigger:
|
||||
m_manager.Animator.SetBool(m_hash, p_value > 0f);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Int:
|
||||
m_manager.Animator.SetInteger(m_hash, (int)p_value);
|
||||
break;
|
||||
case AnimatorControllerParameterType.Float:
|
||||
m_manager.Animator.SetFloat(m_hash, p_value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -33,6 +33,8 @@ namespace ml_ppu
|
|||
Vector3 m_lastPosition = Vector3.zero;
|
||||
Vector3 m_velocity = Vector3.zero;
|
||||
|
||||
AvatarParameter m_avatarParameter = null;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if(Instance != null)
|
||||
|
|
@ -122,6 +124,7 @@ namespace ml_ppu
|
|||
m_held = false;
|
||||
|
||||
BetterBetterCharacterController.Instance.SetVelocity(m_velocity * Settings.VelocityMultiplier);
|
||||
m_avatarParameter?.SetValue(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -134,6 +137,8 @@ namespace ml_ppu
|
|||
Animator l_animator = PlayerSetup.Instance.Animator;
|
||||
if((l_animator != null) && l_animator.isHuman)
|
||||
{
|
||||
m_avatarParameter = new AvatarParameter("PickedUp", PlayerSetup.Instance.AnimatorManager);
|
||||
|
||||
IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose);
|
||||
PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero;
|
||||
PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity;
|
||||
|
|
@ -171,6 +176,8 @@ namespace ml_ppu
|
|||
{
|
||||
try
|
||||
{
|
||||
m_avatarParameter = null;
|
||||
|
||||
m_ready = false;
|
||||
m_held = false;
|
||||
|
||||
|
|
@ -264,6 +271,8 @@ namespace ml_ppu
|
|||
m_lastPosition = l_playerPos;
|
||||
m_velocity = Vector3.zero;
|
||||
m_held = true;
|
||||
|
||||
m_avatarParameter?.SetValue(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[assembly: MelonLoader.MelonInfo(typeof(ml_ppu.PlayerPickUp), "PlayerPickUp", "1.0.1", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
|
||||
[assembly: MelonLoader.MelonInfo(typeof(ml_ppu.PlayerPickUp), "PlayerPickUp", "1.0.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
|
||||
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
|
||||
[assembly: MelonLoader.MelonOptionalDependencies("PlayerRagdollMod")]
|
||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||
|
|
|
|||
|
|
@ -13,9 +13,14 @@ Available mod's settings in BTKUILib's page:
|
|||
* **Friends only:** allow only friends to pick you up; `true` by default;
|
||||
* **Velocity multiplier:** velocity multiplier upon drop/throw; `1.0` by default.
|
||||
|
||||
|
||||
To pick you up remote player should:
|
||||
* Make hands `grab` pointers to appear on your side (usually, press controller grip, trigger button or fist gesture, depends on remote player controllers type);
|
||||
* Touch your avatar's torso with both pointers;
|
||||
|
||||
Available additional parameters for AAS animator:
|
||||
* **`PickedUp`:** defines current picked up state; boolean.
|
||||
* Note: Can be set as local-only (not synced) if starts with `#` character.
|
||||
|
||||
# Notes
|
||||
* Compatible with PlayerRagdollMod.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<Platforms>x64</Platforms>
|
||||
<AssemblyName>PlayerPickUp</AssemblyName>
|
||||
<Authors>SDraw</Authors>
|
||||
<Version>1.0.1</Version>
|
||||
<Version>1.0.2</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue