diff --git a/README.md b/README.md
index 2147cd5..47802a2 100644
--- a/README.md
+++ b/README.md
@@ -5,17 +5,17 @@ Merged set of MelonLoader mods for ChilloutVR.
|:---------:|:----------:|:--------------:| :----------------------------------------------------------------|
| [Avatar Motion Tweaker](/ml_amt/README.md) | ml_amt | 1.3.2 [:arrow_down:](../../releases/latest/download/ml_amt.dll)| ✔ Yes
:hourglass_flowing_sand: Update review |
| [Desktop Head Tracking](/ml_dht/README.md)| ml_dht | - | ✔ Yes
:warning:Broken |
-| [Desktop Reticle Switch](/ml_drs/README.md)| ml_drs | 1.0.1 [:arrow_down:](../../releases/latest/download/ml_drs.dll)| ✔ Yes |
-| [Extended Game Notifications](/ml_egn/README.md) | ml_egn | 1.0.3 [:arrow_down:](../../releases/latest/download/ml_egn.dll)| ✔ Yes |
| [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.4.2 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes
:hourglass_flowing_sand: Update review |
-| [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.6 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes |
-| [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.2 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes |
+| [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.7 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes
:hourglass_flowing_sand: Update review |
+| [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.3 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes
:hourglass_flowing_sand: Update review |
| [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.9 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes
:hourglass_flowing_sand: Update review |
-| [Game Main Fixes](/ml_gmf/README.md) | ml_gmf | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_gmf.dll)| ❔ No |
**Archived mods:**
| Full name | Short name | Notes |
|:---------:|:----------:|-------|
| Avatar Change Info | ml_aci | Superseded by `Extended Game Notifications`
+| Desktop Reticle Switch | ml_drs |
+| Extended Game Notifications | ml_egn | In-game feature sine 2023r172 update
| Four Point Tracking | ml_fpt | In-game feature since 2022r170 update
+| Game Main Fixes | ml_gmf | In-game feature sine 2023r172 update
| Server Connection Info | ml_sci | Superseded by `Extended Game Notifications`
diff --git a/ml_drs/Main.cs b/archived/ml_drs/Main.cs
similarity index 100%
rename from ml_drs/Main.cs
rename to archived/ml_drs/Main.cs
diff --git a/ml_drs/Properties/AssemblyInfo.cs b/archived/ml_drs/Properties/AssemblyInfo.cs
similarity index 100%
rename from ml_drs/Properties/AssemblyInfo.cs
rename to archived/ml_drs/Properties/AssemblyInfo.cs
diff --git a/ml_drs/README.md b/archived/ml_drs/README.md
similarity index 100%
rename from ml_drs/README.md
rename to archived/ml_drs/README.md
diff --git a/ml_drs/ml_drs.csproj b/archived/ml_drs/ml_drs.csproj
similarity index 100%
rename from ml_drs/ml_drs.csproj
rename to archived/ml_drs/ml_drs.csproj
diff --git a/ml_egn/Main.cs b/archived/ml_egn/Main.cs
similarity index 100%
rename from ml_egn/Main.cs
rename to archived/ml_egn/Main.cs
diff --git a/ml_egn/Properties/AssemblyInfo.cs b/archived/ml_egn/Properties/AssemblyInfo.cs
similarity index 100%
rename from ml_egn/Properties/AssemblyInfo.cs
rename to archived/ml_egn/Properties/AssemblyInfo.cs
diff --git a/ml_egn/README.md b/archived/ml_egn/README.md
similarity index 100%
rename from ml_egn/README.md
rename to archived/ml_egn/README.md
diff --git a/ml_egn/Utils.cs b/archived/ml_egn/Utils.cs
similarity index 100%
rename from ml_egn/Utils.cs
rename to archived/ml_egn/Utils.cs
diff --git a/ml_egn/ml_egn.csproj b/archived/ml_egn/ml_egn.csproj
similarity index 100%
rename from ml_egn/ml_egn.csproj
rename to archived/ml_egn/ml_egn.csproj
diff --git a/ml_gmf/Fixes/AnimationOverrides.cs b/archived/ml_gmf/Fixes/AnimationOverrides.cs
similarity index 100%
rename from ml_gmf/Fixes/AnimationOverrides.cs
rename to archived/ml_gmf/Fixes/AnimationOverrides.cs
diff --git a/ml_gmf/Fixes/AvatarOverrides.cs b/archived/ml_gmf/Fixes/AvatarOverrides.cs
similarity index 100%
rename from ml_gmf/Fixes/AvatarOverrides.cs
rename to archived/ml_gmf/Fixes/AvatarOverrides.cs
diff --git a/ml_gmf/Fixes/PostProccesVolumes.cs b/archived/ml_gmf/Fixes/PostProccesVolumes.cs
similarity index 100%
rename from ml_gmf/Fixes/PostProccesVolumes.cs
rename to archived/ml_gmf/Fixes/PostProccesVolumes.cs
diff --git a/ml_gmf/Fixes/ViveControls.cs b/archived/ml_gmf/Fixes/ViveControls.cs
similarity index 100%
rename from ml_gmf/Fixes/ViveControls.cs
rename to archived/ml_gmf/Fixes/ViveControls.cs
diff --git a/ml_gmf/Main.cs b/archived/ml_gmf/Main.cs
similarity index 100%
rename from ml_gmf/Main.cs
rename to archived/ml_gmf/Main.cs
diff --git a/ml_gmf/Properties/AssemblyInfo.cs b/archived/ml_gmf/Properties/AssemblyInfo.cs
similarity index 100%
rename from ml_gmf/Properties/AssemblyInfo.cs
rename to archived/ml_gmf/Properties/AssemblyInfo.cs
diff --git a/ml_gmf/README.md b/archived/ml_gmf/README.md
similarity index 100%
rename from ml_gmf/README.md
rename to archived/ml_gmf/README.md
diff --git a/ml_gmf/ml_gmf.csproj b/archived/ml_gmf/ml_gmf.csproj
similarity index 100%
rename from ml_gmf/ml_gmf.csproj
rename to archived/ml_gmf/ml_gmf.csproj
diff --git a/ml_amt/Overhauls/JumpHeight.cs b/ml_amt/Overhauls/JumpHeight.cs
deleted file mode 100644
index 845f885..0000000
--- a/ml_amt/Overhauls/JumpHeight.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using ABI.CCK.Components;
-using ABI_RC.Core.Player;
-using ABI_RC.Core.Savior;
-using ABI_RC.Systems.MovementSystem;
-using System;
-using System.Collections;
-using System.Reflection;
-using UnityEngine;
-
-namespace ml_amt.Overhauls
-{
- static class JumpHeight
- {
- static FieldInfo ms_avatarHeight = typeof(PlayerSetup).GetField("_avatarHeight", BindingFlags.NonPublic | BindingFlags.Instance);
-
- static float ms_playerHeight = 1f;
-
- internal static void Init(HarmonyLib.Harmony p_instance)
- {
- p_instance.Patch(
- typeof(PlayerSetup).GetMethod(nameof(PlayerSetup.SetupAvatar)),
- null,
- new HarmonyLib.HarmonyMethod(typeof(JumpHeight).GetMethod(nameof(OnSetupAvatar_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
- );
- p_instance.Patch(
- typeof(CVRWorld).GetMethod("SetupWorldRules", BindingFlags.NonPublic | BindingFlags.Instance),
- null,
- new HarmonyLib.HarmonyMethod(typeof(JumpHeight).GetMethod(nameof(OnWorldRulesSetup_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
- );
- p_instance.Patch(
- typeof(PlayerSetup).GetMethod("SetupIKScaling", BindingFlags.NonPublic | BindingFlags.Instance),
- null,
- new HarmonyLib.HarmonyMethod(typeof(JumpHeight).GetMethod(nameof(OnSetupIKScaling_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
- );
-
- Settings.ScaledJumpChange += OnScaledJumpChange;
- MelonLoader.MelonCoroutines.Start(WaitForGameSettings());
- }
-
- static IEnumerator WaitForGameSettings()
- {
- while(MetaPort.Instance == null)
- yield return null;
- while(MetaPort.Instance.settings == null)
- yield return null;
-
- ms_playerHeight = MetaPort.Instance.settings.GetSettingInt("GeneralPlayerHeight") * 0.01f;
- MetaPort.Instance.settings.settingIntChanged.AddListener(OnGameSettingIntChange);
- }
-
- // Patches
- static void OnSetupAvatar_Postfix()
- {
- try
- {
- SetScaledJump(Settings.ScaledJump);
- }
- catch(Exception e)
- {
- MelonLoader.MelonLogger.Error(e);
- }
- }
- static void OnWorldRulesSetup_Postfix()
- {
- try
- {
- SetScaledJump(Settings.ScaledJump);
- }
- catch(Exception e)
- {
- MelonLoader.MelonLogger.Error(e);
- }
- }
-
- static void OnSetupIKScaling_Postfix()
- {
- try
- {
- SetScaledJump(Settings.ScaledJump);
- }
- catch(Exception l_exception)
- {
- MelonLoader.MelonLogger.Error(l_exception);
- }
- }
-
- // Mod settings
- static void OnScaledJumpChange(bool p_state)
- {
- SetScaledJump(p_state);
- }
-
- // Game settings
- static void OnGameSettingIntChange(string p_name, int p_value)
- {
- if(p_name == "GeneralPlayerHeight")
- {
- ms_playerHeight = p_value * 0.01f;
- }
- }
-
- // Arbitrary
- static void SetScaledJump(bool p_state)
- {
- if(Utils.IsWorldSafe())
- {
- if(p_state)
- MovementSystem.Instance.jumpHeight = Mathf.Clamp(Utils.GetWorldJumpHeight() * ((float)ms_avatarHeight.GetValue(PlayerSetup.Instance) / ms_playerHeight), float.MinValue, Utils.GetWorldMovementLimit());
- else
- MovementSystem.Instance.jumpHeight = Utils.GetWorldJumpHeight();
- }
- }
- }
-}
diff --git a/ml_amt/Utils.cs b/ml_amt/Utils.cs
index 149f66a..2882764 100644
--- a/ml_amt/Utils.cs
+++ b/ml_amt/Utils.cs
@@ -12,6 +12,7 @@ namespace ml_amt
static readonly FieldInfo ms_grounded = typeof(MovementSystem).GetField("_isGrounded", BindingFlags.NonPublic | BindingFlags.Instance);
static readonly FieldInfo ms_groundedRaw = typeof(MovementSystem).GetField("_isGroundedRaw", BindingFlags.NonPublic | BindingFlags.Instance);
static readonly FieldInfo ms_hasToes = typeof(IKSolverVR).GetField("hasToes", BindingFlags.NonPublic | BindingFlags.Instance);
+ static readonly FieldInfo ms_view = typeof(CohtmlControlledViewWrapper).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded);
@@ -34,6 +35,8 @@ namespace ml_amt
return l_result;
}
+ static public void ExecuteScript(this CohtmlControlledViewWrapper p_instance, string p_script) => ((cohtml.Net.View)ms_view.GetValue(p_instance)).ExecuteScript(p_script);
+
// Engine extensions
public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false)
{
diff --git a/ml_lme/Utils.cs b/ml_lme/Utils.cs
index cbddd42..ed3b80d 100644
--- a/ml_lme/Utils.cs
+++ b/ml_lme/Utils.cs
@@ -1,8 +1,6 @@
-using ABI_RC.Core.Player;
-using ABI_RC.Core.Savior;
+using ABI_RC.Core.Savior;
using ABI_RC.Core.UI;
using ABI_RC.Systems.InputManagement;
-using System.Linq;
using System.Reflection;
using UnityEngine;
@@ -10,6 +8,8 @@ namespace ml_lme
{
static class Utils
{
+ static readonly FieldInfo ms_view = typeof(CohtmlControlledViewWrapper).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
+
public static bool IsInVR() => ((CheckVR.Instance != null) && CheckVR.Instance.hasVrDeviceLoaded);
public static bool AreKnucklesInUse() => ((CVRInputManager.Instance._leftController == ABI_RC.Systems.InputManagement.XR.EXRControllerType.Index) || (CVRInputManager.Instance._rightController == ABI_RC.Systems.InputManagement.XR.EXRControllerType.Index));
public static bool IsLeftHandTracked() => (CVRInputManager.Instance._leftController != ABI_RC.Systems.InputManagement.XR.EXRControllerType.None);
@@ -31,6 +31,8 @@ namespace ml_lme
}
}
+ static public void ExecuteScript(this CohtmlControlledViewWrapper p_instance, string p_script) => ((cohtml.Net.View)ms_view.GetValue(p_instance)).ExecuteScript(p_script);
+
public static void Swap(ref T lhs, ref T rhs)
{
T temp = lhs;
diff --git a/ml_mods_cvr.sln b/ml_mods_cvr.sln
index 1fc727f..1100165 100644
--- a/ml_mods_cvr.sln
+++ b/ml_mods_cvr.sln
@@ -11,10 +11,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_amt", "ml_amt\ml_amt.csp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_dht", "ml_dht\ml_dht.csproj", "{D805BA67-067E-4B79-87FC-6B08973F13EE}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_drs", "ml_drs\ml_drs.csproj", "{47B2BE27-B238-4135-AE17-9195884FDD8F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_egn", "ml_egn\ml_egn.csproj", "{8B05FAC0-5C12-40CA-BA48-9F55923E8135}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_lme", "ml_lme\ml_lme.csproj", "{77EA76B1-3709-4FC5-BDBD-8F77160E6DA3}"
ProjectSection(ProjectDependencies) = postProject
{118675AA-9AC7-4B0C-BFB1-FA1691619502} = {118675AA-9AC7-4B0C-BFB1-FA1691619502}
@@ -26,8 +22,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_prm", "ml_prm\ml_prm.csp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_pmc", "ml_pmc\ml_pmc.csproj", "{118675AA-9AC7-4B0C-BFB1-FA1691619502}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_gmf", "ml_gmf\ml_gmf.csproj", "{90D47D36-15A0-437E-957C-E1EF75C39657}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -40,12 +34,6 @@ Global
{D805BA67-067E-4B79-87FC-6B08973F13EE}.Debug|x64.ActiveCfg = Debug|x64
{D805BA67-067E-4B79-87FC-6B08973F13EE}.Release|x64.ActiveCfg = Release|x64
{D805BA67-067E-4B79-87FC-6B08973F13EE}.Release|x64.Build.0 = Release|x64
- {47B2BE27-B238-4135-AE17-9195884FDD8F}.Debug|x64.ActiveCfg = Debug|x64
- {47B2BE27-B238-4135-AE17-9195884FDD8F}.Release|x64.ActiveCfg = Release|x64
- {47B2BE27-B238-4135-AE17-9195884FDD8F}.Release|x64.Build.0 = Release|x64
- {8B05FAC0-5C12-40CA-BA48-9F55923E8135}.Debug|x64.ActiveCfg = Debug|x64
- {8B05FAC0-5C12-40CA-BA48-9F55923E8135}.Release|x64.ActiveCfg = Release|x64
- {8B05FAC0-5C12-40CA-BA48-9F55923E8135}.Release|x64.Build.0 = Release|x64
{77EA76B1-3709-4FC5-BDBD-8F77160E6DA3}.Debug|x64.ActiveCfg = Debug|x64
{77EA76B1-3709-4FC5-BDBD-8F77160E6DA3}.Release|x64.ActiveCfg = Release|x64
{77EA76B1-3709-4FC5-BDBD-8F77160E6DA3}.Release|x64.Build.0 = Release|x64
@@ -58,10 +46,6 @@ Global
{118675AA-9AC7-4B0C-BFB1-FA1691619502}.Debug|x64.ActiveCfg = Debug|x64
{118675AA-9AC7-4B0C-BFB1-FA1691619502}.Release|x64.ActiveCfg = Release|x64
{118675AA-9AC7-4B0C-BFB1-FA1691619502}.Release|x64.Build.0 = Release|x64
- {90D47D36-15A0-437E-957C-E1EF75C39657}.Debug|x64.ActiveCfg = Debug|x64
- {90D47D36-15A0-437E-957C-E1EF75C39657}.Debug|x64.Build.0 = Debug|x64
- {90D47D36-15A0-437E-957C-E1EF75C39657}.Release|x64.ActiveCfg = Release|x64
- {90D47D36-15A0-437E-957C-E1EF75C39657}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ml_pam/Properties/AssemblyInfo.cs b/ml_pam/Properties/AssemblyInfo.cs
index 98b6c8a..d79a0db 100644
--- a/ml_pam/Properties/AssemblyInfo.cs
+++ b/ml_pam/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.6", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
+[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.0.7", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(1)]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
diff --git a/ml_pam/Utils.cs b/ml_pam/Utils.cs
index a9131bb..d8d76c4 100644
--- a/ml_pam/Utils.cs
+++ b/ml_pam/Utils.cs
@@ -6,8 +6,12 @@ namespace ml_pam
{
static class Utils
{
+ static readonly FieldInfo ms_view = typeof(CohtmlControlledViewWrapper).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
+
public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded);
+ static public void ExecuteScript(this CohtmlControlledViewWrapper p_instance, string p_script) => ((cohtml.Net.View)ms_view.GetValue(p_instance)).ExecuteScript(p_script);
+
// Extensions
public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false)
{
diff --git a/ml_pam/ml_pam.csproj b/ml_pam/ml_pam.csproj
index cf46819..68e8a2c 100644
--- a/ml_pam/ml_pam.csproj
+++ b/ml_pam/ml_pam.csproj
@@ -4,7 +4,7 @@
netstandard2.1
x64
PickupArmMovement
- 1.0.6
+ 1.0.7
SDraw
None
PickupArmMovement
diff --git a/ml_pmc/Properties/AssemblyInfo.cs b/ml_pmc/Properties/AssemblyInfo.cs
index 13a64db..174416c 100644
--- a/ml_pmc/Properties/AssemblyInfo.cs
+++ b/ml_pmc/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-[assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.0.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
+[assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.0.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(3)]
[assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")]
diff --git a/ml_pmc/ml_pmc.csproj b/ml_pmc/ml_pmc.csproj
index 4e2eaec..a45b2e7 100644
--- a/ml_pmc/ml_pmc.csproj
+++ b/ml_pmc/ml_pmc.csproj
@@ -7,7 +7,7 @@
SDraw
None
PlayerMovementCopycat
- 1.0.2
+ 1.0.3