[CVRGizmos] cleanup & new gizmos

This commit is contained in:
NotAKidoS 2023-05-02 12:57:13 -05:00
parent 6f24bd6ff3
commit e512c9dd70
21 changed files with 724 additions and 565 deletions

View file

@ -1,8 +1,8 @@
using CVRGizmos.GismoTypes;
using NAK.CVRGizmos.GismoTypes;
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos
namespace NAK.CVRGizmos
{
public class CVRGizmoManager : MonoBehaviour
{
@ -25,6 +25,9 @@ namespace CVRGizmos
typeof(CVRGizmos_Avatar),
typeof(CVRGizmos_AvatarPickupMarker),
typeof(CVRGizmos_DistanceConstrain),
typeof(CVRGizmos_BoxCollider),
typeof(CVRGizmos_SphereCollider),
typeof(CVRGizmos_CapsuleCollider),
};
void Start()

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk"/>
<Project Sdk="Microsoft.NET.Sdk" />

View file

@ -8,41 +8,40 @@ CVRAdvancedAvatarSettingsPointer shouldn't really be used at this point. Only in
**/
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_AdvancedAvatarSettingsPointer : CVRGizmoBase
{
public class CVRGizmos_AdvancedAvatarSettingsPointer : CVRGizmoBase
public static CVRAdvancedAvatarSettingsPointer[] references;
public override void CacheGizmos()
{
public static CVRAdvancedAvatarSettingsPointer[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAdvancedAvatarSettingsPointer)) as CVRAdvancedAvatarSettingsPointer[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAdvancedAvatarSettingsPointer)) as CVRAdvancedAvatarSettingsPointer[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAdvancedAvatarSettingsPointer)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAdvancedAvatarSettingsPointer)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.cyan;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Sphere(Vector3.zero, 0.015f);
}
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.cyan;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Sphere(Vector3.zero, 0.015f);
}
}
}

View file

@ -3,109 +3,108 @@ using ABI_RC.Core.Player;
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_AdvancedAvatarSettingsTrigger : CVRGizmoBase
{
public class CVRGizmos_AdvancedAvatarSettingsTrigger : CVRGizmoBase
public static CVRAdvancedAvatarSettingsTrigger[] references;
public override void CacheGizmos()
{
public static CVRAdvancedAvatarSettingsTrigger[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAdvancedAvatarSettingsTrigger)) as CVRAdvancedAvatarSettingsTrigger[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAdvancedAvatarSettingsTrigger)) as CVRAdvancedAvatarSettingsTrigger[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAdvancedAvatarSettingsTrigger)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAdvancedAvatarSettingsTrigger)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.cyan;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
if (references[i].stayTasks.Count > 0)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.cyan;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
if (references[i].stayTasks.Count > 0)
for (int ii = 0; ii < references[i].stayTasks.Count(); ii++)
{
for (int ii = 0; ii < references[i].stayTasks.Count(); ii++)
var stayTask = references[i].stayTasks[ii];
float num = PlayerSetup.Instance.GetAnimatorParam(stayTask.settingName);
switch (stayTask.updateMethod)
{
var stayTask = references[i].stayTasks[ii];
float num = PlayerSetup.Instance.GetAnimatorParam(stayTask.settingName);
switch (stayTask.updateMethod)
{
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.SetFromPosition:
{
num = Mathf.InverseLerp(stayTask.minValue, stayTask.maxValue, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
}
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.Add:
num = num + stayTask.minValue / 60f;
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.SetFromPosition:
{
num = Mathf.InverseLerp(stayTask.minValue, stayTask.maxValue, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.Subtract:
num = num - stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
default:
return;
}
}
Vector3 vector = new Vector3(references[i].areaSize.x * 0.5f, references[i].areaSize.y * 0.5f, references[i].areaSize.z * 0.5f);
switch (references[i].sampleDirection)
{
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.XPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
}
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.Add:
num = num + stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.XNegative:
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.YPositive:
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.YNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.ZPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.ZNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
case CVRAdvancedAvatarSettingsTriggerTaskStay.UpdateMethod.Subtract:
num = num - stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
default:
break;
return;
}
}
Vector3 vector = new Vector3(references[i].areaSize.x * 0.5f, references[i].areaSize.y * 0.5f, references[i].areaSize.z * 0.5f);
switch (references[i].sampleDirection)
{
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.XPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.XNegative:
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.YPositive:
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.YNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.ZPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
break;
case CVRAdvancedAvatarSettingsTrigger.SampleDirection.ZNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
break;
default:
break;
}
}
}
}

View file

@ -2,48 +2,47 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_Avatar : CVRGizmoBase
{
public class CVRGizmos_Avatar : CVRGizmoBase
public static CVRAvatar[] references;
public override void CacheGizmos()
{
public static CVRAvatar[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAvatar)) as CVRAvatar[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAvatar)) as CVRAvatar[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAvatar)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAvatar)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
//viewPosition & voicePosition seem to be rounded... not good, may be why viewpoint drift is bad on scale
Gizmos.Color = Color.green;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.localScale);
Gizmos.Sphere(references[i].viewPosition, 0.01f);
Gizmos.Line(references[i].viewPosition, references[i].viewPosition + Vector3.forward * 0.05f);
Gizmos.Line(references[i].viewPosition, references[i].viewPosition + Vector3.right * 0.05f);
Gizmos.Color = Color.red;
Gizmos.Sphere(references[i].voicePosition, 0.01f);
Gizmos.Line(references[i].voicePosition, references[i].voicePosition + Vector3.forward * 0.05f);
Gizmos.Line(references[i].voicePosition, references[i].voicePosition + Vector3.right * 0.05f);
}
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
//viewPosition & voicePosition seem to be rounded... not good, may be why viewpoint drift is bad on scale
Gizmos.Color = Color.green;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.localScale);
Gizmos.Sphere(references[i].viewPosition, 0.01f);
Gizmos.Line(references[i].viewPosition, references[i].viewPosition + Vector3.forward * 0.05f);
Gizmos.Line(references[i].viewPosition, references[i].viewPosition + Vector3.right * 0.05f);
Gizmos.Color = Color.red;
Gizmos.Sphere(references[i].voicePosition, 0.01f);
Gizmos.Line(references[i].voicePosition, references[i].voicePosition + Vector3.forward * 0.05f);
Gizmos.Line(references[i].voicePosition, references[i].voicePosition + Vector3.right * 0.05f);
}
}
}

View file

@ -2,49 +2,48 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_AvatarPickupMarker : CVRGizmoBase
{
public class CVRGizmos_AvatarPickupMarker : CVRGizmoBase
public static CVRAvatarPickupMarker[] references;
public override void CacheGizmos()
{
public static CVRAvatarPickupMarker[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAvatarPickupMarker)) as CVRAvatarPickupMarker[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRAvatarPickupMarker)) as CVRAvatarPickupMarker[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAvatarPickupMarker)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRAvatarPickupMarker)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.magenta;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(new Vector3(0f, 0.75f, 0f), Quaternion.identity, new Vector3(1f, 1.5f, 0f));
Gizmos.Cube(new Vector3(0f, 0.7f, 0f), Quaternion.identity, new Vector3(0.8f, 0.1f, 0f));
Gizmos.Cube(new Vector3(0f, 0.615f, 0f), Quaternion.identity, new Vector3(0.6f, 0.07f, 0f));
Gizmos.Cube(new Vector3(0.24f, 0.28f, 0f), Quaternion.identity, new Vector3(0.32f, 0.42f, 0f));
Gizmos.Cube(new Vector3(-0.24f, 0.28f, 0f), Quaternion.identity, new Vector3(0.32f, 0.42f, 0f));
Vector3 lossyScale = references[i].transform.lossyScale;
lossyScale.Scale(new Vector3(1f, 1f, 0f));
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, lossyScale);
Gizmos.Sphere(new Vector3(0f, 1.11f, 0f), 0.31f);
}
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.magenta;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(new Vector3(0f, 0.75f, 0f), Quaternion.identity, new Vector3(1f, 1.5f, 0f));
Gizmos.Cube(new Vector3(0f, 0.7f, 0f), Quaternion.identity, new Vector3(0.8f, 0.1f, 0f));
Gizmos.Cube(new Vector3(0f, 0.615f, 0f), Quaternion.identity, new Vector3(0.6f, 0.07f, 0f));
Gizmos.Cube(new Vector3(0.24f, 0.28f, 0f), Quaternion.identity, new Vector3(0.32f, 0.42f, 0f));
Gizmos.Cube(new Vector3(-0.24f, 0.28f, 0f), Quaternion.identity, new Vector3(0.32f, 0.42f, 0f));
Vector3 lossyScale = references[i].transform.lossyScale;
lossyScale.Scale(new Vector3(1f, 1f, 0f));
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, lossyScale);
Gizmos.Sphere(new Vector3(0f, 1.11f, 0f), 0.31f);
}
}
}

View file

@ -2,77 +2,76 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_DistanceConstrain : CVRGizmoBase
{
public class CVRGizmos_DistanceConstrain : CVRGizmoBase
public static CVRDistanceConstrain[] references;
public override void CacheGizmos()
{
public static CVRDistanceConstrain[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRDistanceConstrain)) as CVRDistanceConstrain[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRDistanceConstrain)) as CVRDistanceConstrain[];
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRDistanceConstrain)item);
}
else
{
references = found;
}
}
if (CVRGizmoManager.Instance.g_localOnly)
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRDistanceConstrain)item);
CacheGizmos();
break;
}
if (references[i].target == null)
{
break;
}
if (references[i].maxDistance < references[i].minDistance && references[i].maxDistance != 0f)
{
break;
}
Vector3 normalized = (references[i].transform.position - references[i].target.position).normalized;
//BUG: Matrix addition isn't reset, other gizmo types Matrix will persist.
//This gizmo type could be a bit fucked, but I don't have the time to test.
Gizmos.Matrix = Matrix4x4.identity;
if (references[i].minDistance == 0f)
{
if (references[i].maxDistance == 0f)
{
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position, normalized * 9999f);
break;
}
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position, references[i].target.position + normalized * references[i].maxDistance);
break;
}
else
{
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
if (references[i].maxDistance == 0f)
{
CacheGizmos();
break;
}
if (references[i].target == null)
{
break;
}
if (references[i].maxDistance < references[i].minDistance && references[i].maxDistance != 0f)
{
break;
}
Vector3 normalized = (references[i].transform.position - references[i].target.position).normalized;
//BUG: Matrix addition isn't reset, other gizmo types Matrix will persist.
//This gizmo type could be a bit fucked, but I don't have the time to test.
Gizmos.Matrix = Matrix4x4.identity;
if (references[i].minDistance == 0f)
{
if (references[i].maxDistance == 0f)
{
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position, normalized * 9999f);
break;
}
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position, references[i].target.position + normalized * references[i].maxDistance);
break;
}
else
{
if (references[i].maxDistance == 0f)
{
Gizmos.Color = Color.red;
Gizmos.Line(references[i].target.position, references[i].target.position + normalized * references[i].minDistance);
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position + normalized * references[i].minDistance, normalized * 9999f);
break;
}
Gizmos.Color = Color.red;
Gizmos.Line(references[i].target.position, references[i].target.position + normalized * references[i].minDistance);
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position + normalized * references[i].minDistance, references[i].target.position + normalized * references[i].maxDistance);
Gizmos.Line(references[i].target.position + normalized * references[i].minDistance, normalized * 9999f);
break;
}
Gizmos.Color = Color.red;
Gizmos.Line(references[i].target.position, references[i].target.position + normalized * references[i].minDistance);
Gizmos.Color = Color.green;
Gizmos.Line(references[i].target.position + normalized * references[i].minDistance, references[i].target.position + normalized * references[i].maxDistance);
break;
}
}
}

View file

@ -2,60 +2,59 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_DistanceLod : CVRGizmoBase
{
public class CVRGizmos_DistanceLod : CVRGizmoBase
public static CVRDistanceLod[] references;
private static Color[] _gizmoColors = new Color[]
{
public static CVRDistanceLod[] references;
Color.green,
Color.yellow,
Color.red,
Color.white
};
private static Color[] _gizmoColors = new Color[]
public override void CacheGizmos()
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRDistanceLod)) as CVRDistanceLod[];
if (CVRGizmoManager.Instance.g_localOnly)
{
Color.green,
Color.yellow,
Color.red,
Color.white
};
public override void CacheGizmos()
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRDistanceLod)item);
}
else
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRDistanceLod)) as CVRDistanceLod[];
references = found;
}
}
if (CVRGizmoManager.Instance.g_localOnly)
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRDistanceLod)item);
CacheGizmos();
break;
}
if (!references[i].distance3D)
{
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, Quaternion.identity, new Vector3(1f, 0f, 1f));
}
else
{
references = found;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, Quaternion.identity, Vector3.one);
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
float num = 0;
foreach (CVRDistanceLodGroup cvrdistanceLodGroup in references[i].Groups)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (!references[i].distance3D)
{
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, Quaternion.identity, new Vector3(1f, 0f, 1f));
}
else
{
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, Quaternion.identity, Vector3.one);
}
float num = 0;
foreach (CVRDistanceLodGroup cvrdistanceLodGroup in references[i].Groups)
{
//Gizmos.Color = _gizmoColors[Math.Min(num, 3)];
num = Mathf.InverseLerp(0, references[i].Groups.Count, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
Gizmos.Sphere(Vector3.zero, cvrdistanceLodGroup.MaxDistance);
num++;
}
//Gizmos.Color = _gizmoColors[Math.Min(num, 3)];
num = Mathf.InverseLerp(0, references[i].Groups.Count, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
Gizmos.Sphere(Vector3.zero, cvrdistanceLodGroup.MaxDistance);
num++;
}
}
}

View file

@ -1,37 +1,36 @@
using UnityEngine;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmoBase : MonoBehaviour
{
public class CVRGizmoBase : MonoBehaviour
public Component[] GetLocalOnly(Component[] input)
{
public MonoBehaviour[] GetLocalOnly(MonoBehaviour[] input)
{
return input.Where(c => c.gameObject.scene.name == "DontDestroyOnLoad").ToArray();
}
return input.Where(c => c.gameObject.scene.name == "DontDestroyOnLoad").ToArray();
}
public virtual void OnEnable()
{
CacheGizmos();
// register the callback when enabling object
Camera.onPreRender += RenderGizmos;
}
public virtual void OnDisable()
{
// remove the callback when disabling object
Camera.onPreRender -= RenderGizmos;
}
public virtual void OnEnable()
{
CacheGizmos();
// register the callback when enabling object
Camera.onPreRender += RenderGizmos;
}
public virtual void OnDisable()
{
// remove the callback when disabling object
Camera.onPreRender -= RenderGizmos;
}
public virtual void RenderGizmos(Camera cam)
{
DrawGizmos();
}
public virtual void RenderGizmos(Camera cam)
{
DrawGizmos();
}
public virtual void CacheGizmos()
{
}
public virtual void CacheGizmos()
{
}
public virtual void DrawGizmos()
{
}
public virtual void DrawGizmos()
{
}
}

View file

@ -3,49 +3,48 @@ using HarmonyLib;
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_HapticAreaChest : CVRGizmoBase
{
public class CVRGizmos_HapticAreaChest : CVRGizmoBase
public static CVRHapticAreaChest[] references;
public override void CacheGizmos()
{
public static CVRHapticAreaChest[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRHapticAreaChest)) as CVRHapticAreaChest[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRHapticAreaChest)) as CVRHapticAreaChest[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRHapticAreaChest)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRHapticAreaChest)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.yellow;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(Vector3.zero, Quaternion.identity, references[i].chestAreaSize);
int num = 0;
foreach (Vector3 center in references[i].HapticPoints40)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.yellow;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(Vector3.zero, Quaternion.identity, references[i].chestAreaSize);
int num = 0;
foreach (Vector3 center in references[i].HapticPoints40)
{
float[] pointValues = Traverse.Create(references[i]).Field("pointValues").GetValue() as float[];
center.Scale(references[i].chestAreaSize * 0.5f);
Gizmos.Color = new Color(1f - pointValues[num], pointValues[num], 0f);
Gizmos.Cube(center, Quaternion.identity, new Vector3(0.01f, 0.01f, 0.01f));
num++;
}
float[] pointValues = Traverse.Create(references[i]).Field("pointValues").GetValue() as float[];
center.Scale(references[i].chestAreaSize * 0.5f);
Gizmos.Color = new Color(1f - pointValues[num], pointValues[num], 0f);
Gizmos.Cube(center, Quaternion.identity, new Vector3(0.01f, 0.01f, 0.01f));
num++;
}
}
}

View file

@ -2,44 +2,43 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_HapticZone : CVRGizmoBase
{
public class CVRGizmos_HapticZone : CVRGizmoBase
public static CVRHapticZone[] references;
public override void CacheGizmos()
{
public static CVRHapticZone[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRHapticZone)) as CVRHapticZone[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRHapticZone)) as CVRHapticZone[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRHapticZone)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRHapticZone)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
Gizmos.Color = Color.yellow;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
if (references[i].triggerForm == CVRHapticZone.TriggerForm.Box)
{
Gizmos.Cube(references[i].center, Quaternion.identity, references[i].bounds);
return;
}
Gizmos.Sphere(references[i].center, references[i].bounds.x);
CacheGizmos();
break;
}
Gizmos.Color = Color.yellow;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
if (references[i].triggerForm == CVRHapticZone.TriggerForm.Box)
{
Gizmos.Cube(references[i].center, Quaternion.identity, references[i].bounds);
return;
}
Gizmos.Sphere(references[i].center, references[i].bounds.x);
}
}
}

View file

@ -2,42 +2,41 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_Pointer : CVRGizmoBase
{
public class CVRGizmos_Pointer : CVRGizmoBase
public static CVRPointer[] references;
public override void CacheGizmos()
{
public static CVRPointer[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRPointer)) as CVRPointer[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRPointer)) as CVRPointer[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRPointer)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRPointer)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.blue;
Vector3 lossyScale = references[i].transform.lossyScale;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, lossyScale);
Gizmos.Sphere(Vector3.zero, 0.00125f / Mathf.Max(Mathf.Max(lossyScale.x, lossyScale.y), lossyScale.z));
}
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.blue;
Vector3 lossyScale = references[i].transform.lossyScale;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, lossyScale);
Gizmos.Sphere(Vector3.zero, 0.00125f / Mathf.Max(Mathf.Max(lossyScale.x, lossyScale.y), lossyScale.z));
}
}
}

View file

@ -8,117 +8,116 @@ CVRSpawnableTrigger **can** be local using CVROfflinePreview or similar mods.
**/
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_SpawnableTrigger : CVRGizmoBase
{
public class CVRGizmos_SpawnableTrigger : CVRGizmoBase
public static CVRSpawnableTrigger[] references;
public override void CacheGizmos()
{
public static CVRSpawnableTrigger[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRSpawnableTrigger)) as CVRSpawnableTrigger[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRSpawnableTrigger)) as CVRSpawnableTrigger[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRSpawnableTrigger)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRSpawnableTrigger)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.blue;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
//stayTask colors
if (references[i].stayTasks.Count > 0)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.blue;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
//stayTask colors
if (references[i].stayTasks.Count > 0)
for (int ii = 0; ii < references[i].stayTasks.Count(); ii++)
{
for (int ii = 0; ii < references[i].stayTasks.Count(); ii++)
var stayTask = references[i].stayTasks[ii];
if (stayTask.spawnable != null)
{
var stayTask = references[i].stayTasks[ii];
if (stayTask.spawnable != null)
float num = stayTask.spawnable.GetValue(stayTask.settingIndex);
switch (stayTask.updateMethod)
{
float num = stayTask.spawnable.GetValue(stayTask.settingIndex);
switch (stayTask.updateMethod)
{
case CVRSpawnableTriggerTaskStay.UpdateMethod.SetFromPosition:
{
num = Mathf.InverseLerp(stayTask.minValue, stayTask.maxValue, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
}
case CVRSpawnableTriggerTaskStay.UpdateMethod.Add:
num = num + stayTask.minValue / 60f;
case CVRSpawnableTriggerTaskStay.UpdateMethod.SetFromPosition:
{
num = Mathf.InverseLerp(stayTask.minValue, stayTask.maxValue, num);
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
case CVRSpawnableTriggerTaskStay.UpdateMethod.Subtract:
num = num - stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
default:
return;
}
}
case CVRSpawnableTriggerTaskStay.UpdateMethod.Add:
num = num + stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
case CVRSpawnableTriggerTaskStay.UpdateMethod.Subtract:
num = num - stayTask.minValue / 60f;
Gizmos.Color = new Color(2.0f * num, 2.0f * (1 - num), 0);
break;
default:
return;
}
}
}
Vector3 vector = new Vector3(references[i].areaSize.x * 0.5f, references[i].areaSize.y * 0.5f, references[i].areaSize.z * 0.5f);
switch (references[i].sampleDirection)
{
case CVRSpawnableTrigger.SampleDirection.XPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.XNegative:
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.YPositive:
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.YNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.ZPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.ZNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
break;
default:
break;
Vector3 vector = new Vector3(references[i].areaSize.x * 0.5f, references[i].areaSize.y * 0.5f, references[i].areaSize.z * 0.5f);
switch (references[i].sampleDirection)
{
case CVRSpawnableTrigger.SampleDirection.XPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.XNegative:
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.YPositive:
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.YNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, -vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, -vector.y, 0f) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.ZPositive:
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, -vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, vector.z) + references[i].areaOffset);
break;
case CVRSpawnableTrigger.SampleDirection.ZNegative:
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(0f, vector.y, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
Gizmos.Line(new Vector3(-vector.x, -vector.y, vector.z) + references[i].areaOffset, new Vector3(-vector.x, 0f, -vector.z) + references[i].areaOffset);
break;
default:
break;
}
}
}
}

View file

@ -8,41 +8,40 @@ CVRToggleStateTrigger **can** be local using CVROfflinePreview or similar mods.
**/
namespace CVRGizmos.GismoTypes
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_ToggleStateTrigger : CVRGizmoBase
{
public class CVRGizmos_ToggleStateTrigger : CVRGizmoBase
public static CVRToggleStateTrigger[] references;
public override void CacheGizmos()
{
public static CVRToggleStateTrigger[] references;
var found = Resources.FindObjectsOfTypeAll(typeof(CVRToggleStateTrigger)) as CVRToggleStateTrigger[];
public override void CacheGizmos()
if (CVRGizmoManager.Instance.g_localOnly)
{
var found = Resources.FindObjectsOfTypeAll(typeof(CVRToggleStateTrigger)) as CVRToggleStateTrigger[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRToggleStateTrigger)item);
}
else
{
references = found;
}
references = Array.ConvertAll(GetLocalOnly(found), item => (CVRToggleStateTrigger)item);
}
public override void DrawGizmos()
else
{
for (int i = 0; i < references.Count(); i++)
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Count(); i++)
{
if (references[i] == null)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.green;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
}
CacheGizmos();
break;
}
if (references[i].isActiveAndEnabled)
{
Gizmos.Color = Color.green;
Gizmos.Matrix = Matrix4x4.TRS(references[i].transform.position, references[i].transform.rotation, references[i].transform.lossyScale);
Gizmos.Cube(references[i].areaOffset, Quaternion.identity, references[i].areaSize);
}
}
}

View file

@ -0,0 +1,47 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_BoxCollider : CVRGizmoBase
{
public static BoxCollider[] references;
public override void CacheGizmos()
{
var found = Resources.FindObjectsOfTypeAll(typeof(BoxCollider)) as BoxCollider[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (BoxCollider)item);
}
else
{
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Length; i++)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].gameObject.activeInHierarchy)
{
BoxCollider box = references[i];
Gizmos.Color = Color.green;
Vector3 position = box.transform.TransformPoint(box.center);
Quaternion rotation = box.transform.rotation;
Vector3 scaledSize = Vector3.Scale(box.size, box.transform.lossyScale);
Gizmos.Matrix = Matrix4x4.TRS(position, rotation, Vector3.one);
Gizmos.Cube(Vector3.zero, Quaternion.identity, scaledSize);
}
}
}
}

View file

@ -0,0 +1,84 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_CapsuleCollider : CVRGizmoBase
{
public static CapsuleCollider[] references;
public override void CacheGizmos()
{
var found = Resources.FindObjectsOfTypeAll(typeof(CapsuleCollider)) as CapsuleCollider[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (CapsuleCollider)item);
}
else
{
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Length; i++)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].gameObject.activeInHierarchy)
{
CapsuleCollider capsule = references[i];
Gizmos.Color = Color.green;
Vector3 position = capsule.transform.position;
Quaternion rotation = capsule.transform.rotation;
Vector3 lossyScale = capsule.transform.lossyScale;
float maxLossyScale = Mathf.Max(Mathf.Max(lossyScale.x, lossyScale.y), lossyScale.z);
Vector3 scaledCenter = Vector3.Scale(capsule.center, lossyScale);
float scaledRadius = capsule.radius * maxLossyScale;
float scaledHeight = capsule.height * maxLossyScale;
Gizmos.Matrix = Matrix4x4.TRS(position, rotation, Vector3.one);
// Draw top sphere
Vector3 topSphereOffset = Vector3.zero;
topSphereOffset[capsule.direction] = (scaledHeight - (2 * scaledRadius)) / 2;
Gizmos.Sphere(scaledCenter + topSphereOffset, scaledRadius);
// Draw bottom sphere
Vector3 bottomSphereOffset = Vector3.zero;
bottomSphereOffset[capsule.direction] = -(scaledHeight - (2 * scaledRadius)) / 2;
Gizmos.Sphere(scaledCenter + bottomSphereOffset, scaledRadius);
// Draw cylinder
int cylinderResolution = 24;
Vector3 previousTopPoint = Vector3.zero;
Vector3 previousBottomPoint = Vector3.zero;
for (int j = 0; j <= cylinderResolution; j++)
{
float angle = j * 2 * Mathf.PI / cylinderResolution;
Vector3 directionVector = new Vector3(Mathf.Cos(angle), 0, Mathf.Sin(angle));
directionVector[capsule.direction] = 0;
Vector3 topPoint = (scaledCenter + topSphereOffset) + directionVector * scaledRadius;
Vector3 bottomPoint = (scaledCenter + bottomSphereOffset) + directionVector * scaledRadius;
if (j > 0)
{
Gizmos.Line(previousTopPoint, topPoint);
Gizmos.Line(previousBottomPoint, bottomPoint);
Gizmos.Line(previousTopPoint, previousBottomPoint);
Gizmos.Line(topPoint, bottomPoint);
}
previousTopPoint = topPoint;
previousBottomPoint = bottomPoint;
}
}
}
}
}

View file

@ -0,0 +1,49 @@
using UnityEngine;
using Gizmos = Popcron.Gizmos;
namespace NAK.CVRGizmos.GismoTypes;
public class CVRGizmos_SphereCollider : CVRGizmoBase
{
public static SphereCollider[] references;
public override void CacheGizmos()
{
var found = Resources.FindObjectsOfTypeAll(typeof(SphereCollider)) as SphereCollider[];
if (CVRGizmoManager.Instance.g_localOnly)
{
references = Array.ConvertAll(GetLocalOnly(found), item => (SphereCollider)item);
}
else
{
references = found;
}
}
public override void DrawGizmos()
{
for (int i = 0; i < references.Length; i++)
{
if (references[i] == null)
{
CacheGizmos();
break;
}
if (references[i].gameObject.activeInHierarchy)
{
Gizmos.Color = Color.green;
Vector3 position = references[i].transform.position;
Quaternion rotation = references[i].transform.rotation;
Vector3 lossyScale = references[i].transform.lossyScale;
float maxLossyScale = Mathf.Max(Mathf.Max(lossyScale.x, lossyScale.y), lossyScale.z);
Vector3 scaledCenter = Vector3.Scale(references[i].center, lossyScale);
float scaledRadius = references[i].radius * maxLossyScale;
Gizmos.Matrix = Matrix4x4.TRS(position, rotation, Vector3.one);
Gizmos.Sphere(scaledCenter, scaledRadius);
}
}
}
}

View file

@ -2,7 +2,7 @@
using MelonLoader;
using System.Collections;
namespace CVRGizmos;
namespace NAK.CVRGizmos;
public class CVRGizmos : MelonMod
{
@ -17,6 +17,8 @@ public class CVRGizmos : MelonMod
public override void OnInitializeMelon()
{
EntryEnabled.OnEntryValueChangedUntyped.Subscribe(CVRGizmosEnabled);
EntryLocalOnly.OnEntryValueChangedUntyped.Subscribe(CVRGizmosLocalOnly);
MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer());
}
@ -28,13 +30,13 @@ public class CVRGizmos : MelonMod
PlayerSetup.Instance.gameObject.AddComponent<CVRGizmoManager>();
}
public void CVRGizmosEnabled()
public void CVRGizmosEnabled(object arg1, object arg2)
{
if (!CVRGizmoManager.Instance) return;
CVRGizmoManager.Instance.EnableGizmos(EntryEnabled.Value);
}
public void CVRGizmosLocalOnly()
public void CVRGizmosLocalOnly(object arg1, object arg2)
{
if (!CVRGizmoManager.Instance) return;
CVRGizmoManager.Instance.g_localOnly = EntryLocalOnly.Value;

View file

@ -1,17 +1,17 @@
using CVRGizmos.Properties;
using NAK.CVRGizmos.Properties;
using MelonLoader;
using System.Reflection;
[assembly: AssemblyVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyFileVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyInformationalVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyTitle(nameof(CVRGizmos))]
[assembly: AssemblyTitle(nameof(NAK.CVRGizmos))]
[assembly: AssemblyCompany(AssemblyInfoParams.Author)]
[assembly: AssemblyProduct(nameof(CVRGizmos))]
[assembly: AssemblyProduct(nameof(NAK.CVRGizmos))]
[assembly: MelonInfo(
typeof(CVRGizmos.CVRGizmos),
nameof(CVRGizmos),
typeof(NAK.CVRGizmos.CVRGizmos),
nameof(NAK.CVRGizmos),
AssemblyInfoParams.Version,
AssemblyInfoParams.Author,
downloadLink: "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/CVRGizmos"
@ -21,9 +21,9 @@ using System.Reflection;
[assembly: MelonPlatform(MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonPlatformDomain(MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
namespace CVRGizmos.Properties;
namespace NAK.CVRGizmos.Properties;
internal static class AssemblyInfoParams
{
public const string Version = "1.0.0";
public const string Version = "1.0.1";
public const string Author = "NotAKidoS";
}

View file

@ -1,23 +1,23 @@
{
"_id": 95,
"_id": 97,
"name": "CVRGizmos",
"modversion": "1.1.0",
"gameversion": "2022r168",
"loaderversion": "0.5.4",
"modversion": "1.0.1",
"gameversion": "2022r170",
"loaderversion": "0.5.7",
"modtype": "Mod",
"author": "NotAKidoS",
"description": "Corrects MM and QM position when avatar is scaled.\nAdditional option to scale player collision.",
"description": "Adds runtime gizmos to common CCK components.",
"searchtags": [
"menu",
"scale",
"avatarscale",
"slider"
"gizmo",
"components",
"cck",
"visual"
],
"requirements": [
"None"
],
"downloadlink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/download/r3/CVRGizmos.dll",
"sourcelink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/CVRGizmos/",
"changelog": "Added option to scale player collision. Fixed some VR specific issues.",
"changelog": "- Removed SaveToFile().",
"embedcolor": "804221"
}

View file

@ -2,22 +2,9 @@
using System.Reflection;
using UnityEngine;
using static NAK.ThirdPerson.CameraLogic;
using BuildInfo = NAK.ThirdPerson.BuildInfo;
[assembly: AssemblyCopyright("Created by " + BuildInfo.Author)]
[assembly: MelonInfo(typeof(NAK.ThirdPerson.ThirdPerson), BuildInfo.Name, BuildInfo.Version, BuildInfo.Author)]
[assembly: MelonGame("Alpha Blend Interactive", "ChilloutVR")]
[assembly: MelonColor(ConsoleColor.DarkMagenta)]
namespace NAK.ThirdPerson;
public static class BuildInfo
{
public const string Name = "ThirdPerson";
public const string Author = "Davi & NotAKidoS";
public const string Version = "1.0.2";
}
public class ThirdPerson : MelonMod
{
internal static MelonLogger.Instance Logger;
@ -26,9 +13,8 @@ public class ThirdPerson : MelonMod
{
Logger = LoggerInstance;
MelonCoroutines.Start(SetupCamera());
Patches.Apply(HarmonyInstance);
MelonCoroutines.Start(SetupCamera());
}
public override void OnUpdate()