Minor code changes

This commit is contained in:
SDraw 2023-10-30 22:50:36 +03:00
parent c37d3a6842
commit a232c2ce13
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
7 changed files with 675 additions and 666 deletions

View file

@ -3,13 +3,13 @@ Merged set of MelonLoader mods for ChilloutVR.
**Table for game build 2023r172p1:** **Table for game build 2023r172p1:**
| Full name | Short name | Latest version | Available in [CVRMA](https://github.com/knah/CVRMelonAssistant) | | Full name | Short name | Latest version | Available in [CVRMA](https://github.com/knah/CVRMelonAssistant) |
|:---------:|:----------:|:--------------:| :----------------------------------------------------------------| |:---------:|:----------:|:--------------:| :----------------------------------------------------------------|
| [Avatar Motion Tweaker](/ml_amt/README.md) | ml_amt | 1.3.3 [:arrow_down:](../../releases/latest/download/ml_amt.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review | | [Avatar Motion Tweaker](/ml_amt/README.md) | ml_amt | 1.3.3 [:arrow_down:](../../releases/latest/download/ml_amt.dll)| ✔ Yes |
| [Desktop Head Tracking](/ml_dht/README.md)| ml_dht | - | ✔ Yes<br>:warning:Broken | | [Desktop Head Tracking](/ml_dht/README.md)| ml_dht | - | ✔ Yes<br>:warning:Broken |
| [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.4.3 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review | | [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.4.3 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes |
| [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.8 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review | | [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.8 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes |
| [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.3 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes | | [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.3 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes |
| [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.10 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review | | [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.11 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review |
| [Vive Extended Input](/ml_vei/README.md) | ml_vei | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_vei.dll)| :hourglass_flowing_sand: On review | | [Vive Extended Input](/ml_vei/README.md) | ml_vei | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_vei.dll)| ✔ Yes |
**Archived mods:** **Archived mods:**
| Full name | Short name | Notes | | Full name | Short name | Notes |

View file

@ -1,4 +1,4 @@
[assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.10", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_prm.PlayerRagdollMod), "PlayerRagdollMod", "1.0.11", "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.MelonOptionalDependencies("BTKUILib")] [assembly: MelonLoader.MelonOptionalDependencies("BTKUILib")]

View file

@ -14,7 +14,7 @@ Optional mod's settings page with [BTKUILib](https://github.com/BTK-Development/
* **Use hotkey:** enables/disables ragdoll state switch with `R` key; `true` by default. * **Use hotkey:** enables/disables ragdoll state switch with `R` key; `true` by default.
* **Use gravity:** enables/disables gravity for ragdoll; `true` by default. * **Use gravity:** enables/disables gravity for ragdoll; `true` by default.
* Note: Forcibly enabled in worlds that don't allow flight. * Note: Forcibly enabled in worlds that don't allow flight.
* **Pointers reaction:** enables ragdoll state when player collides with trigger colliders with CVRPointer component of `ragdoll` type (avatars, props and world included); `true` by default. * **Pointers reaction:** enables ragdoll state when player collides with trigger colliders and particle systems with CVRPointer component of `ragdoll` type (avatars, props and world included); `true` by default.
* **Ignore local pointers:** enables/disables ignoring of CVRPointer components of `ragdoll` type on local player's avatar; `true` by default. * **Ignore local pointers:** enables/disables ignoring of CVRPointer components of `ragdoll` type on local player's avatar; `true` by default.
* **Combat reaction:** enables ragdoll state upon death in worlds with combat system; `true` by default. * **Combat reaction:** enables ragdoll state upon death in worlds with combat system; `true` by default.
* **Auto recover:** enables automatic recovering after specific time delay; `false` by default. * **Auto recover:** enables automatic recovering after specific time delay; `false` by default.

View file

@ -6,7 +6,7 @@ using UnityEngine;
namespace ml_prm namespace ml_prm
{ {
[DisallowMultipleComponent] [DisallowMultipleComponent]
public class RagdollTrigger : MonoBehaviour class RagdollTrigger : MonoBehaviour
{ {
const string c_ragdollPointerType = "ragdoll"; const string c_ragdollPointerType = "ragdoll";
@ -18,14 +18,13 @@ namespace ml_prm
void Start() void Start()
{ {
m_collider = this.GetComponent<Collider>(); m_collider = this.GetComponent<Collider>();
CVRParticlePointerManager.volumes.Add(new RagdollTriggerVolume() {
collider = m_collider, CVRParticlePointerManager.volumes.Add(new RagdollTriggerVolume(m_collider, this));
trigger = this,
});
CVRParticlePointerManager.UpdateParticleSystems(); CVRParticlePointerManager.UpdateParticleSystems();
} }
void OnDestroy() { void OnDestroy()
{
CVRParticlePointerManager.RemoveTrigger(m_collider); CVRParticlePointerManager.RemoveTrigger(m_collider);
} }
@ -45,7 +44,7 @@ namespace ml_prm
{ {
if(m_lastParticleSystemTrigger != null) if(m_lastParticleSystemTrigger != null)
{ {
if (m_lastParticleSystemTrigger.particleCount == 0) if(m_lastParticleSystemTrigger.particleCount == 0)
m_lastParticleSystemTrigger = null; m_lastParticleSystemTrigger = null;
} }
else else
@ -71,8 +70,10 @@ namespace ml_prm
public void OnPointerParticleEnter(CVRPointer p_pointer) public void OnPointerParticleEnter(CVRPointer p_pointer)
{ {
if (!gameObject.activeInHierarchy) return; if(!this.gameObject.activeInHierarchy)
if ((p_pointer.type == c_ragdollPointerType) && !IsIgnored(p_pointer.transform) && (m_lastParticleSystemTrigger != p_pointer.particleSystem)) return;
if((p_pointer.type == c_ragdollPointerType) && !IsIgnored(p_pointer.transform) && (m_lastParticleSystemTrigger != p_pointer.particleSystem))
{ {
m_lastParticleSystemTrigger = p_pointer.particleSystem; m_lastParticleSystemTrigger = p_pointer.particleSystem;
m_triggered = true; m_triggered = true;

View file

@ -2,13 +2,21 @@
using ABI.CCK.Components; using ABI.CCK.Components;
using UnityEngine; using UnityEngine;
namespace ml_prm { namespace ml_prm
{
public class RagdollTriggerVolume : CVRTriggerVolume class RagdollTriggerVolume : CVRTriggerVolume
{ {
readonly RagdollTrigger m_trigger = null;
public Collider collider { get; set; } public Collider collider { get; set; }
public RagdollTrigger trigger { get; set; }
public void TriggerEnter(CVRPointer pointer) => trigger.OnPointerParticleEnter(pointer); internal RagdollTriggerVolume(Collider p_collider, RagdollTrigger p_trigger)
public void TriggerExit(CVRPointer pointer) => trigger.OnPointerParticleExit(pointer); {
collider = p_collider;
m_trigger = p_trigger;
}
public void TriggerEnter(CVRPointer pointer) => m_trigger.OnPointerParticleEnter(pointer);
public void TriggerExit(CVRPointer pointer) => m_trigger.OnPointerParticleExit(pointer);
} }
} }

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.0.10</Version> <Version>1.0.11</Version>
<Authors>SDraw</Authors> <Authors>SDraw</Authors>
<Company>None</Company> <Company>None</Company>
<Product>PlayerRagdollMod</Product> <Product>PlayerRagdollMod</Product>