Game build 2025r181 update

This commit is contained in:
SDraw 2025-12-20 13:44:10 +03:00
parent bab5346876
commit 569a521be4
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
35 changed files with 233 additions and 55 deletions

View file

@ -3,18 +3,18 @@ Merged set of MelonLoader mods for ChilloutVR.
**Table for game build 2025r180:** **Table for game build 2025r180:**
| Full name | Latest version | | Full name | Latest version |
|:---------:|:--------------:| |:---------:|:--------------:|
|[Avatar Motion Tweaker](/ml_amt/README.md)|1.5.2 [:arrow_down:](../../releases/download/r180/AvatarMotionTweaker.dll)| |[Avatar Motion Tweaker](/ml_amt/README.md)|1.5.3 [:arrow_down:](../../releases/download/r181/AvatarMotionTweaker.dll)|
|[Avatar Synced Look](/ml_asl/README.md)|1.1.2 [:arrow_down:](../../releases/download/r180/AvatarSyncedLook.dll)| |[Avatar Synced Look](/ml_asl/README.md)|1.1.3 [:arrow_down:](../../releases/download/r181/AvatarSyncedLook.dll)|
|[Better Fingers Tracking](/ml_bft/README.md)|1.1.3 [:arrow_down:](../../releases/download/r180/BetterFingersTracking.dll)| |[Better Fingers Tracking](/ml_bft/README.md)|1.1.4 [:arrow_down:](../../releases/download/r181/BetterFingersTracking.dll)|
|[Leap Motion Extension](/ml_lme/README.md)| 1.6.2 [:arrow_down:](../../releases/download/r180/LeapMotionExtension.dll)| |[Leap Motion Extension](/ml_lme/README.md)| 1.6.4 [:arrow_down:](../../releases/download/r181/LeapMotionExtension.dll)|
|[Pickup Arm Movement](/ml_pam/README.md)|1.2.3 [:arrow_down:](../../releases/download/r180/PickupArmMovement.dll)| |[Pickup Arm Movement](/ml_pam/README.md)|1.2.4 [:arrow_down:](../../releases/download/r181/PickupArmMovement.dll)|
|[Player Avatar History](/ml_pah/README.md)|1.0.0 [:arrow_down:](../../releases/download/r180/PlayerAvatarHistory.dll)| |[Player Avatar History](/ml_pah/README.md)|1.0.1 [:arrow_down:](../../releases/download/r181/PlayerAvatarHistory.dll)|
|[Player Movement Copycat](/ml_pmc/README.md)|1.1.2 [:arrow_down:](../../releases/download/r180/PlayerMovementCopycat.dll)| |[Player Movement Copycat](/ml_pmc/README.md)|1.1.3 [:arrow_down:](../../releases/download/r181/PlayerMovementCopycat.dll)|
|[Player Pick Up](/ml_ppu/README.md)|1.0.1 [:arrow_down:](../../releases/download/r180/PlayerPickUp.dll)| |[Player Pick Up](/ml_ppu/README.md)|1.0.2 [:arrow_down:](../../releases/download/r181/PlayerPickUp.dll)|
|[Player Ragdoll Mod](/ml_prm/README.md)|1.2.4 [:arrow_down:](../../releases/download/r180/PlayerRagdollMod.dll)| |[Player Ragdoll Mod](/ml_prm/README.md)|1.2.5 [:arrow_down:](../../releases/download/r181/PlayerRagdollMod.dll)|
|[Players Instance Notifier](/ml_pin/README.md)|1.1.2 [:arrow_down:](../../releases/download/r180/PlayersInstanceNotifier.dll)| |[Players Instance Notifier](/ml_pin/README.md)|1.1.3 [:arrow_down:](../../releases/download/r181/PlayersInstanceNotifier.dll)|
|[Vive Extended Input](/ml_vei/README.md)|1.1.2 [:arrow_down:](../../releases/download/r180/ViveExtendedInput.dll)| |[Vive Extended Input](/ml_vei/README.md)|1.1.3 [:arrow_down:](../../releases/download/r181/ViveExtendedInput.dll)|
|[Video Player Cookies](/ml_vpc/README.md)|1.0.3 [:arrow_down:](../../releases/download/r180/VideoPlayerCookies.dll)| |[Video Player Cookies](/ml_vpc/README.md)|1.0.4 [:arrow_down:](../../releases/download/r181/VideoPlayerCookies.dll)|

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.5.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_amt.AvatarMotionTweaker), "AvatarMotionTweaker", "1.5.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -6,7 +6,7 @@
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>AvatarMotionTweaker</Product> <Product>AvatarMotionTweaker</Product>
<PackageId>AvatarMotionTweaker</PackageId> <PackageId>AvatarMotionTweaker</PackageId>
<Version>1.5.2</Version> <Version>1.5.3</Version>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<AssemblyName>AvatarMotionTweaker</AssemblyName> <AssemblyName>AvatarMotionTweaker</AssemblyName>
</PropertyGroup> </PropertyGroup>

View file

@ -1,4 +1,6 @@
using ABI_RC.Core.Player; using ABI_RC.Core.Player;
using ABI_RC.Systems.FaceTracking;
using System;
using System.Reflection; using System.Reflection;
using UnityEngine; using UnityEngine;
@ -13,22 +15,29 @@ namespace ml_asl
Settings.Init(); Settings.Init();
HarmonyInstance.Patch( HarmonyInstance.Patch(
typeof(PlayerSetup).GetMethod("UpdatePlayerAvatarMovementData", BindingFlags.Instance | BindingFlags.NonPublic ), typeof(PlayerSetup).GetMethod("UpdatePlayerAvatarMovementData", BindingFlags.Instance | BindingFlags.NonPublic),
null, null,
new HarmonyLib.HarmonyMethod(typeof(AvatarSyncedLook).GetMethod(nameof(OnPlayerAvatarMovementDataUpdate_Postfix), BindingFlags.Static | BindingFlags.NonPublic )) new HarmonyLib.HarmonyMethod(typeof(AvatarSyncedLook).GetMethod(nameof(OnPlayerAvatarMovementDataUpdate_Postfix), BindingFlags.Static | BindingFlags.NonPublic))
); );
} }
static void OnPlayerAvatarMovementDataUpdate_Postfix(ref PlayerSetup __instance, PlayerAvatarMovementData ____playerAvatarMovementData) static void OnPlayerAvatarMovementDataUpdate_Postfix(ref PlayerSetup __instance, PlayerAvatarMovementData ____playerAvatarMovementData)
{ {
if(Settings.Enabled && (__instance.EyeMovementController != null)) try
{ {
____playerAvatarMovementData.EyeTrackingOverride = true; if(Settings.Enabled && (__instance.EyeMovementController != null) && !FaceTrackingManager.Instance.IsEyeDataAvailable())
{
____playerAvatarMovementData.EyeTrackingOverride = true;
if(__instance.EyeMovementController.CurrentTarget != null) if(__instance.EyeMovementController.CurrentTarget != null)
____playerAvatarMovementData.EyeTrackingPosition = __instance.EyeMovementController.CurrentTarget.GetPosition(); ____playerAvatarMovementData.EyeTrackingPosition = __instance.EyeMovementController.CurrentTarget.GetPosition();
else else
____playerAvatarMovementData.EyeTrackingPosition = (__instance.transform.GetMatrix() * ms_back).GetPosition(); ____playerAvatarMovementData.EyeTrackingPosition = (__instance.transform.GetMatrix() * ms_back).GetPosition();
}
}
catch(Exception e)
{
MelonLoader.MelonLogger.Error(e);
} }
} }
} }

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_asl.AvatarSyncedLook), "AvatarSyncedLook", "1.1.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_asl.AvatarSyncedLook), "AvatarSyncedLook", "1.1.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -7,7 +7,7 @@
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>AvatarSyncedLook</Product> <Product>AvatarSyncedLook</Product>
<Version>1.1.2</Version> <Version>1.1.3</Version>
<AssemblyName>AvatarSyncedLook</AssemblyName> <AssemblyName>AvatarSyncedLook</AssemblyName>
</PropertyGroup> </PropertyGroup>

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_bft.BetterFingersTracking), "BetterFingersTracking", "1.1.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_bft.BetterFingersTracking), "BetterFingersTracking", "1.1.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -7,7 +7,7 @@
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>BetterFingersTracking</Product> <Product>BetterFingersTracking</Product>
<Version>1.1.3</Version> <Version>1.1.4</Version>
<AssemblyName>BetterFingersTracking</AssemblyName> <AssemblyName>BetterFingersTracking</AssemblyName>
</PropertyGroup> </PropertyGroup>

View file

@ -29,7 +29,7 @@ namespace ml_lme
public override void ModuleAdded() public override void ModuleAdded()
{ {
base.ModuleAdded(); base.ModuleAdded();
base.InputEnabled = Settings.Enabled; base.InputModuleEnabled = Settings.Enabled;
base.HapticFeedback = false; base.HapticFeedback = false;
m_inVR = Utils.IsInVR(); m_inVR = Utils.IsInVR();
@ -159,7 +159,7 @@ namespace ml_lme
public override void UpdateInput() public override void UpdateInput()
{ {
if(base.InputEnabled) if(base.InputModuleEnabled)
{ {
LeapParser.LeapData l_data = LeapManager.Instance.GetLatestData(); LeapParser.LeapData l_data = LeapManager.Instance.GetLatestData();
@ -360,7 +360,7 @@ namespace ml_lme
// Settings changes // Settings changes
void OnEnableChanged(bool p_state) void OnEnableChanged(bool p_state)
{ {
base.InputEnabled = p_state; base.InputModuleEnabled = p_state;
m_handVisibleLeft &= p_state; m_handVisibleLeft &= p_state;
m_handVisibleRight &= p_state; m_handVisibleRight &= p_state;

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.6.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.6.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -4,7 +4,7 @@
<TargetFramework>netstandard2.1</TargetFramework> <TargetFramework>netstandard2.1</TargetFramework>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<PackageId>LeapMotionExtension</PackageId> <PackageId>LeapMotionExtension</PackageId>
<Version>1.6.2</Version> <Version>1.6.4</Version>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>LeapMotionExtension</Product> <Product>LeapMotionExtension</Product>

View file

@ -27,6 +27,9 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_vpc", "ml_vpc\ml_vpc.csproj", "{7CF37B93-9341-422D-845C-9AB96DB4D0A1}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_vpc", "ml_vpc\ml_vpc.csproj", "{7CF37B93-9341-422D-845C-9AB96DB4D0A1}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_ppu", "ml_ppu\ml_ppu.csproj", "{F16DF16B-D127-4A2A-81FF-2FD80F320E64}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_ppu", "ml_ppu\ml_ppu.csproj", "{F16DF16B-D127-4A2A-81FF-2FD80F320E64}"
ProjectSection(ProjectDependencies) = postProject
{C4C3F080-379F-49DB-ADC6-6328BE884AE3} = {C4C3F080-379F-49DB-ADC6-6328BE884AE3}
EndProjectSection
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_pah", "ml_pah\ml_pah.csproj", "{C4659F60-3FED-4F43-88E4-969907D4C7A6}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ml_pah", "ml_pah\ml_pah.csproj", "{C4659F60-3FED-4F43-88E4-969907D4C7A6}"
EndProject EndProject

View file

@ -1,5 +1,6 @@
using ABI_RC.Core.Networking.API; using ABI_RC.Core.Networking.API;
using ABI_RC.Core.Networking.API.Responses; using ABI_RC.Core.Networking.API.Responses;
using ABI_RC.Core.Networking.API.Responses.DetailsV2;
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections; using System.Collections;
@ -178,12 +179,12 @@ namespace ml_pah
static async Task RequestAvatarInfoTask(AvatarEntry p_entry) static async Task RequestAvatarInfoTask(AvatarEntry p_entry)
{ {
BaseResponse<AvatarDetailsResponse> l_baseResponse = await ApiConnection.MakeRequest<AvatarDetailsResponse>(ApiConnection.ApiOperation.AvatarDetail, new { avatarID = p_entry.m_id }); BaseResponse<ContentAvatarResponse> l_baseResponse = await ApiConnection.MakeRequest<ContentAvatarResponse>(ApiConnection.ApiOperation.AvatarDetail, new { avatarID = p_entry.m_id }, "2");
if(l_baseResponse != null) if(l_baseResponse != null)
{ {
if(!l_baseResponse.IsSuccessStatusCode) return; if(!l_baseResponse.IsSuccessStatusCode) return;
p_entry.m_name = l_baseResponse.Data.Name; p_entry.m_name = l_baseResponse.Data.Name;
p_entry.m_imageUrl = l_baseResponse.Data.ImageUrl; p_entry.m_imageUrl = l_baseResponse.Data.Image.AbsoluteUri;
p_entry.m_cached = true; p_entry.m_cached = true;
} }
} }

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_pah.PlayerAvatarHistory), "PlayerAvatarHistory", "1.0.0", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_pah.PlayerAvatarHistory), "PlayerAvatarHistory", "1.0.1", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -6,6 +6,7 @@
<PackageId>PlayerAvatarHistory</PackageId> <PackageId>PlayerAvatarHistory</PackageId>
<AssemblyName>PlayerAvatarHistory</AssemblyName> <AssemblyName>PlayerAvatarHistory</AssemblyName>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Version>1.0.1</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.2.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_pam.PickupArmMovement), "PickupArmMovement", "1.2.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(1)] [assembly: MelonLoader.MelonPriority(1)]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]

View file

@ -4,7 +4,7 @@
<TargetFramework>netstandard2.1</TargetFramework> <TargetFramework>netstandard2.1</TargetFramework>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<PackageId>PickupArmMovement</PackageId> <PackageId>PickupArmMovement</PackageId>
<Version>1.2.3</Version> <Version>1.2.4</Version>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>PickupArmMovement</Product> <Product>PickupArmMovement</Product>

View file

@ -1,8 +1,6 @@
using ABI_RC.Core.AudioEffects; using ABI_RC.Core.AudioEffects;
using ABI_RC.Core.Networking.IO.Social; using ABI_RC.Core.Networking.IO.Social;
using ABI_RC.Core.Player; using ABI_RC.Core.Player;
using ABI_RC.Core.Savior;
using ABI_RC.Core.Networking.IO.Instancing;
using ABI_RC.Systems.GameEventSystem; using ABI_RC.Systems.GameEventSystem;
using System; using System;
using System.Collections; using System.Collections;
@ -111,9 +109,9 @@ namespace ml_pin
bool ShouldNotifyInCurrentInstance() bool ShouldNotifyInCurrentInstance()
{ {
bool l_isInPublic = ((MetaPort.Instance.CurrentInstancePrivacyType == Instances.InstancePrivacyType.Public) && Settings.NotifyInPublic); bool l_isInPublic = Utils.IsInPublicInstance() && Settings.NotifyInPublic;
bool l_isInFriends = (((MetaPort.Instance.CurrentInstancePrivacyType == Instances.InstancePrivacyType.Friends) || (MetaPort.Instance.CurrentInstancePrivacyType == Instances.InstancePrivacyType.FriendsOfFriends)) && Settings.NotifyInFriends); bool l_isInFriends = Utils.IsInFriendsInstance() && Settings.NotifyInFriends;
bool l_isInPrivate = (((MetaPort.Instance.CurrentInstancePrivacyType == Instances.InstancePrivacyType.EveryoneCanInvite) || (MetaPort.Instance.CurrentInstancePrivacyType == Instances.InstancePrivacyType.OwnerMustInvite)) && Settings.NotifyInPrivate); bool l_isInPrivate = Utils.IsInPrivateInstance() && Settings.NotifyInPrivate;
return (l_isInPublic || l_isInFriends || l_isInPrivate); return (l_isInPublic || l_isInFriends || l_isInPrivate);
} }
} }

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_pin.PlayersInstanceNotifier), "PlayersInstanceNotifier", "1.1.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_pin.PlayersInstanceNotifier), "PlayersInstanceNotifier", "1.1.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -1,3 +1,4 @@
using ABI_RC.Core.Networking.IO.Instancing;
using ABI_RC.Core.UI; using ABI_RC.Core.UI;
using System.Reflection; using System.Reflection;
@ -8,5 +9,47 @@ namespace ml_pin
static readonly FieldInfo ms_view = typeof(CohtmlControlledViewWrapper).GetField("_view", BindingFlags.Instance | BindingFlags.NonPublic); static readonly FieldInfo ms_view = typeof(CohtmlControlledViewWrapper).GetField("_view", BindingFlags.Instance | BindingFlags.NonPublic);
public static void ExecuteScript(this CohtmlControlledViewWrapper p_instance, string p_script) => (ms_view?.GetValue(p_instance) as cohtml.Net.View)?.ExecuteScript(p_script); public static void ExecuteScript(this CohtmlControlledViewWrapper p_instance, string p_script) => (ms_view?.GetValue(p_instance) as cohtml.Net.View)?.ExecuteScript(p_script);
// Instance info
public static bool IsInPublicInstance()
{
bool l_result = false;
switch(Instances.CurrentInstancePrivacyType)
{
case Instances.InstancePrivacyType.Public:
case Instances.InstancePrivacyType.GroupPublic:
l_result = true;
break;
}
return l_result;
}
public static bool IsInFriendsInstance()
{
bool l_result = false;
switch(Instances.CurrentInstancePrivacyType)
{
case Instances.InstancePrivacyType.Friends:
case Instances.InstancePrivacyType.FriendsOfFriends:
case Instances.InstancePrivacyType.GroupPlus:
l_result = true;
break;
}
return l_result;
}
public static bool IsInPrivateInstance()
{
bool l_result = false;
switch(Instances.CurrentInstancePrivacyType)
{
case Instances.InstancePrivacyType.EveryoneCanInvite:
case Instances.InstancePrivacyType.OwnerMustInvite:
case Instances.InstancePrivacyType.Group:
l_result = true;
break;
}
return l_result;
}
} }
} }

View file

@ -7,7 +7,7 @@
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>PlayersInstanceNotifier</Product> <Product>PlayersInstanceNotifier</Product>
<Version>1.1.2</Version> <Version>1.1.3</Version>
<AssemblyName>PlayersInstanceNotifier</AssemblyName> <AssemblyName>PlayersInstanceNotifier</AssemblyName>
</PropertyGroup> </PropertyGroup>

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.1.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_pmc.PlayerMovementCopycat), "PlayerMovementCopycat", "1.1.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(3)] [assembly: MelonLoader.MelonPriority(3)]
[assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")] [assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")]

View file

@ -7,7 +7,7 @@
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>PlayerMovementCopycat</Product> <Product>PlayerMovementCopycat</Product>
<Version>1.1.2</Version> <Version>1.1.3</Version>
<AssemblyName>PlayerMovementCopycat</AssemblyName> <AssemblyName>PlayerMovementCopycat</AssemblyName>
</PropertyGroup> </PropertyGroup>

109
ml_ppu/AvatarParameter.cs Normal file
View 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;
}
}
}
}
}
}

View file

@ -33,6 +33,8 @@ namespace ml_ppu
Vector3 m_lastPosition = Vector3.zero; Vector3 m_lastPosition = Vector3.zero;
Vector3 m_velocity = Vector3.zero; Vector3 m_velocity = Vector3.zero;
AvatarParameter m_avatarParameter = null;
void Awake() void Awake()
{ {
if(Instance != null) if(Instance != null)
@ -122,6 +124,7 @@ namespace ml_ppu
m_held = false; m_held = false;
BetterBetterCharacterController.Instance.SetVelocity(m_velocity * Settings.VelocityMultiplier); BetterBetterCharacterController.Instance.SetVelocity(m_velocity * Settings.VelocityMultiplier);
m_avatarParameter?.SetValue(false);
} }
} }
} }
@ -134,6 +137,8 @@ namespace ml_ppu
Animator l_animator = PlayerSetup.Instance.Animator; Animator l_animator = PlayerSetup.Instance.Animator;
if((l_animator != null) && l_animator.isHuman) if((l_animator != null) && l_animator.isHuman)
{ {
m_avatarParameter = new AvatarParameter("PickedUp", PlayerSetup.Instance.AnimatorManager);
IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose); IKSystem.Instance.SetAvatarPose(IKSystem.AvatarPose.TPose);
PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero; PlayerSetup.Instance.AvatarTransform.localPosition = Vector3.zero;
PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity; PlayerSetup.Instance.AvatarTransform.localRotation = Quaternion.identity;
@ -171,6 +176,8 @@ namespace ml_ppu
{ {
try try
{ {
m_avatarParameter = null;
m_ready = false; m_ready = false;
m_held = false; m_held = false;
@ -264,6 +271,8 @@ namespace ml_ppu
m_lastPosition = l_playerPos; m_lastPosition = l_playerPos;
m_velocity = Vector3.zero; m_velocity = Vector3.zero;
m_held = true; m_held = true;
m_avatarParameter?.SetValue(true);
} }
} }
} }

View file

@ -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.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonOptionalDependencies("PlayerRagdollMod")] [assembly: MelonLoader.MelonOptionalDependencies("PlayerRagdollMod")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]

View file

@ -13,9 +13,14 @@ Available mod's settings in BTKUILib's page:
* **Friends only:** allow only friends to pick you up; `true` by default; * **Friends only:** allow only friends to pick you up; `true` by default;
* **Velocity multiplier:** velocity multiplier upon drop/throw; `1.0` by default. * **Velocity multiplier:** velocity multiplier upon drop/throw; `1.0` by default.
To pick you up remote player should: 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); * 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; * 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 # Notes
* Compatible with PlayerRagdollMod. * Compatible with PlayerRagdollMod.

View file

@ -5,7 +5,7 @@
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<AssemblyName>PlayerPickUp</AssemblyName> <AssemblyName>PlayerPickUp</AssemblyName>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Version>1.0.1</Version> <Version>1.0.2</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.2.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.2.5", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPriority(2)] [assembly: MelonLoader.MelonPriority(2)]
[assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")] [assembly: MelonLoader.MelonAdditionalDependencies("BTKUILib")]

View file

@ -661,7 +661,7 @@ namespace ml_prm
IKSystem.Instance.applyOriginalHipRotation = true; IKSystem.Instance.applyOriginalHipRotation = true;
PlayerSetup.Instance.AnimatorManager.CancelEmote = true; PlayerSetup.Instance.AnimatorManager.CancelEmote = true;
m_ragdolledParameter.SetValue(true); m_ragdolledParameter?.SetValue(true);
if(!WorldManager.IsSafeWorld()) if(!WorldManager.IsSafeWorld())
{ {
@ -706,7 +706,7 @@ namespace ml_prm
if(m_vrIK != null) if(m_vrIK != null)
m_vrIK.solver.Reset(); m_vrIK.solver.Reset();
m_ragdolledParameter.SetValue(false); m_ragdolledParameter?.SetValue(false);
m_puppet.localPosition = Vector3.zero; m_puppet.localPosition = Vector3.zero;
m_puppet.localRotation = Quaternion.identity; m_puppet.localRotation = Quaternion.identity;

View file

@ -4,7 +4,7 @@
<TargetFramework>netstandard2.1</TargetFramework> <TargetFramework>netstandard2.1</TargetFramework>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<PackageId>PlayerRagdollMod</PackageId> <PackageId>PlayerRagdollMod</PackageId>
<Version>1.2.4</Version> <Version>1.2.5</Version>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>PlayerRagdollMod</Product> <Product>PlayerRagdollMod</Product>

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_vei.ViveExtendedInput), "ViveExtendedInput", "1.1.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_vei.ViveExtendedInput), "ViveExtendedInput", "1.1.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -4,7 +4,7 @@
<TargetFramework>netstandard2.1</TargetFramework> <TargetFramework>netstandard2.1</TargetFramework>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<PackageId>ViveExtendedInput</PackageId> <PackageId>ViveExtendedInput</PackageId>
<Version>1.1.2</Version> <Version>1.1.3</Version>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Product>ViveExtendedInput</Product> <Product>ViveExtendedInput</Product>

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_vpc.VideoPlayerCookies), "VideoPlayerCookies", "1.0.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_vpc.VideoPlayerCookies), "VideoPlayerCookies", "1.0.4", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)] [assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]

View file

@ -6,7 +6,7 @@
<AssemblyName>VideoPlayerCookies</AssemblyName> <AssemblyName>VideoPlayerCookies</AssemblyName>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>SDraw</Company> <Company>SDraw</Company>
<Version>1.0.3</Version> <Version>1.0.4</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">