diff --git a/README.md b/README.md
index d266da0..d0fbc08 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,12 @@ Merged set of MelonLoader mods for ChilloutVR.
| Full name | Short name | Latest version | Available in [CVRMA](https://github.com/knah/CVRMelonAssistant) | Current Status | Notes |
|-----------|------------|----------------|-----------------------------------------------------------------|----------------|-------|
| Avatar Change Info | ml_aci | 1.0.3 | Retired | Retired | Superseded by `Extended Game Notifications`
-| Avatar Motion Tweaker | ml_amt | 1.2.6 | Yes | Working |
+| Avatar Motion Tweaker | ml_amt | 1.2.7 | Yes, update review | Working |
| Desktop Head Tracking | ml_dht | 1.1.3 | Yes | Working |
| Desktop Reticle Switch | ml_drs | 1.0.0 | Yes | Working |
| Extended Game Notifications | ml_egn | 1.0.2 | Yes | Working
| Four Point Tracking | ml_fpt | 1.0.9 | Retired | Deprecated | In-game feature since 2022r170 update
| Leap Motion Extension | ml_lme | 1.3.4 | Yes | Working |
| Pickup Arm Movement | ml_pam | 1.0.3 | Yes | Working |
-| Player Ragdoll Mod | ml_prm | 1.0.1 | Yes | Working |
+| Player Ragdoll Mod | ml_prm | 1.0.2 | Yes, update review | Working |
| Server Connection Info | ml_sci | 1.0.2 | Retired | Retired | Superseded by `Extended Game Notifications`
diff --git a/ml_amt/ModSupporter.cs b/ml_amt/ModSupporter.cs
index c5c2ed5..a453e86 100644
--- a/ml_amt/ModSupporter.cs
+++ b/ml_amt/ModSupporter.cs
@@ -6,11 +6,14 @@ namespace ml_amt
static class ModSupporter
{
static bool ms_ragdollMod = false;
+ static bool ms_copycatMod = false;
public static void Init()
{
if(MelonLoader.MelonMod.RegisteredMelons.FirstOrDefault(m => m.Info.Name == "PlayerRagdollMod") != null)
MelonLoader.MelonCoroutines.Start(WaitForRagdollInstance());
+ if(MelonLoader.MelonMod.RegisteredMelons.FirstOrDefault(m => m.Info.Name == "PlayerMovementCopycat") != null)
+ MelonLoader.MelonCoroutines.Start(WaitForCopycatInstance());
}
// PlayerRagdollMod support
@@ -22,11 +25,25 @@ namespace ml_amt
ms_ragdollMod = true;
}
static bool IsRagdolled() => ml_prm.RagdollController.Instance.IsRagdolled();
+
+ // PlayerMovementCopycat support
+ static IEnumerator WaitForCopycatInstance()
+ {
+ while(ml_pmc.PoseCopycat.Instance == null)
+ yield return null;
+
+ ms_copycatMod = true;
+ }
+ static bool IsCopycating() => ml_pmc.PoseCopycat.Instance.IsActive();
+
public static bool SkipHipsOverride()
{
bool l_result = false;
l_result |= (ms_ragdollMod && IsRagdolled());
+ l_result |= (ms_copycatMod && IsCopycating());
return l_result;
}
+
+
}
}
diff --git a/ml_amt/Properties/AssemblyInfo.cs b/ml_amt/Properties/AssemblyInfo.cs
index e187bdd..2a256a4 100644
--- a/ml_amt/Properties/AssemblyInfo.cs
+++ b/ml_amt/Properties/AssemblyInfo.cs
@@ -1,11 +1,11 @@
using System.Reflection;
[assembly: AssemblyTitle("AvatarMotionTweaker")]
-[assembly: AssemblyVersion("1.2.6")]
-[assembly: AssemblyFileVersion("1.2.6")]
+[assembly: AssemblyVersion("1.2.7")]
+[assembly: AssemblyFileVersion("1.2.7")]
-[assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.2.6", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
+[assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.2.7", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
-[assembly: MelonLoader.MelonOptionalDependencies("ml_prm")]
+[assembly: MelonLoader.MelonOptionalDependencies("ml_prm", "ml_pmc")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
\ No newline at end of file
diff --git a/ml_amt/ml_amt.csproj b/ml_amt/ml_amt.csproj
index 17bb8f2..58d618a 100644
--- a/ml_amt/ml_amt.csproj
+++ b/ml_amt/ml_amt.csproj
@@ -54,6 +54,10 @@
False
False
+
+ D:\Games\Steam\steamapps\common\ChilloutVR\Mods\ml_pmc.dll
+ False
+
D:\Games\Steam\steamapps\common\ChilloutVR\Mods\ml_prm.dll
False
diff --git a/ml_prm/Main.cs b/ml_prm/Main.cs
index cb01968..0ab7447 100644
--- a/ml_prm/Main.cs
+++ b/ml_prm/Main.cs
@@ -24,6 +24,7 @@ namespace ml_prm
ms_instance = this;
Settings.Init();
+ ModUi.Init();
HarmonyInstance.Patch(
typeof(PlayerSetup).GetMethod(nameof(PlayerSetup.ClearAvatar)),
@@ -81,6 +82,13 @@ namespace ml_prm
yield return null;
m_localController = PlayerSetup.Instance.gameObject.AddComponent();
+ ModUi.SwitchChange += this.OnSwitchActivation;
+ }
+
+ void OnSwitchActivation()
+ {
+ if(m_localController != null)
+ m_localController.SwitchRagdoll();
}
// Patches
diff --git a/ml_prm/ModUi.cs b/ml_prm/ModUi.cs
new file mode 100644
index 0000000..1c50179
--- /dev/null
+++ b/ml_prm/ModUi.cs
@@ -0,0 +1,189 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+
+namespace ml_prm
+{
+ static class ModUi
+ {
+ enum UiIndex
+ {
+ Hotkey = 0,
+ Gravity,
+ PointersReaction,
+ IgnoreLocal,
+ CombatReaction,
+ AutoRecover,
+ Slipperiness,
+ Bounciness,
+ ViewVelocity,
+ VelocityMultiplier,
+ MovementDrag,
+ AngularDrag,
+ RecoverDelay
+ }
+
+ static public event Action SwitchChange;
+
+ static List