Cohtml's view script execution fix for build 2023r171ex3

This commit is contained in:
SDraw 2023-03-22 13:46:37 +03:00
parent c0bff73107
commit 6f8fa13c94
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
8 changed files with 25 additions and 10 deletions

View file

@ -1,5 +1,4 @@
using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.InteractionSystem;
using cohtml;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View file

@ -1,11 +1,13 @@
using UnityEngine; using UnityEngine;
using System.Reflection; using System.Reflection;
using ABI_RC.Core.UI;
namespace ml_amt namespace ml_amt
{ {
static class Utils static class Utils
{ {
static MethodInfo ms_getSineKeyframes = typeof(RootMotion.FinalIK.IKSolverVR).GetMethod("GetSineKeyframes", BindingFlags.NonPublic | BindingFlags.Static); static MethodInfo ms_getSineKeyframes = typeof(RootMotion.FinalIK.IKSolverVR).GetMethod("GetSineKeyframes", BindingFlags.NonPublic | BindingFlags.Static);
static FieldInfo ms_cohtmlView = typeof(CohtmlControlledViewDisposable).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded); public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded);
@ -19,5 +21,7 @@ namespace ml_amt
{ {
return (Keyframe[])ms_getSineKeyframes.Invoke(null, new object[] { p_mag }); return (Keyframe[])ms_getSineKeyframes.Invoke(null, new object[] { p_mag });
} }
public static void ExecuteScript(this CohtmlControlledViewDisposable p_viewDisposable, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_viewDisposable))?.ExecuteScript(p_script);
} }
} }

View file

@ -1,5 +1,4 @@
using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.InteractionSystem;
using cohtml;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View file

@ -1,12 +1,18 @@
using UnityEngine; using ABI_RC.Core.UI;
using System.Reflection;
using UnityEngine;
namespace ml_dht namespace ml_dht
{ {
static class Utils static class Utils
{ {
static FieldInfo ms_cohtmlView = typeof(CohtmlControlledViewDisposable).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false) public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false)
{ {
return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.localScale : Vector3.one); return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.localScale : Vector3.one);
} }
public static void ExecuteScript(this CohtmlControlledViewDisposable p_viewDisposable, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_viewDisposable))?.ExecuteScript(p_script);
} }
} }

View file

@ -1,5 +1,4 @@
using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.InteractionSystem;
using cohtml;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;

View file

@ -13,24 +13,27 @@ namespace ml_lme
static readonly FieldInfo ms_leftControllerName = typeof(InputModuleOpenXR).GetField("_leftHandControllerName", BindingFlags.NonPublic | BindingFlags.Instance); static readonly FieldInfo ms_leftControllerName = typeof(InputModuleOpenXR).GetField("_leftHandControllerName", BindingFlags.NonPublic | BindingFlags.Instance);
static readonly FieldInfo ms_rightControllerName = typeof(InputModuleOpenXR).GetField("_rightHandControllerName", BindingFlags.NonPublic | BindingFlags.Instance); static readonly FieldInfo ms_rightControllerName = typeof(InputModuleOpenXR).GetField("_rightHandControllerName", BindingFlags.NonPublic | BindingFlags.Instance);
static readonly FieldInfo ms_indexGestureToggle = typeof(InputModuleOpenXR).GetField("_steamVrIndexGestureToggleValue", BindingFlags.Instance | BindingFlags.NonPublic); static readonly FieldInfo ms_indexGestureToggle = typeof(InputModuleOpenXR).GetField("_steamVrIndexGestureToggleValue", BindingFlags.Instance | BindingFlags.NonPublic);
static FieldInfo ms_cohtmlView = typeof(CohtmlControlledViewDisposable).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
public static bool IsInVR() => ((CheckVR.Instance != null) && CheckVR.Instance.hasVrDeviceLoaded); public static bool IsInVR() => ((CheckVR.Instance != null) && CheckVR.Instance.hasVrDeviceLoaded);
public static bool AreKnucklesInUse(this InputModuleOpenXR p_module) => (((string)ms_leftControllerName.GetValue(p_module)).Contains("Index") || ((string)ms_rightControllerName.GetValue(p_module)).Contains("Index")); public static bool AreKnucklesInUse(this InputModuleOpenXR p_module) => (((string)ms_leftControllerName.GetValue(p_module)).Contains("Index") || ((string)ms_rightControllerName.GetValue(p_module)).Contains("Index"));
public static bool GetIndexGestureToggle(this InputModuleOpenXR p_module) => (bool)ms_indexGestureToggle.GetValue(p_module); public static bool GetIndexGestureToggle(this InputModuleOpenXR p_module) => (bool)ms_indexGestureToggle.GetValue(p_module);
public static bool IsLeftHandTracked() => InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).isValid; public static bool IsLeftHandTracked() => InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).isValid;
public static bool IsRightHandTracked() => InputDevices.GetDeviceAtXRNode(XRNode.RightHand).isValid; public static bool IsRightHandTracked() => InputDevices.GetDeviceAtXRNode(XRNode.RightHand).isValid;
public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false) public static Matrix4x4 GetMatrix(this Transform p_transform, bool p_pos = true, bool p_rot = true, bool p_scl = false)
{ {
return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.lossyScale : Vector3.one); return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.lossyScale : Vector3.one);
} }
public static void ExecuteScript(this CohtmlControlledViewDisposable p_viewDisposable, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_viewDisposable))?.ExecuteScript(p_script);
public static void ShowHUDNotification(string p_title, string p_message, string p_small = "", bool p_immediate = false) public static void ShowHUDNotification(string p_title, string p_message, string p_small = "", bool p_immediate = false)
{ {
if (CohtmlHud.Instance != null) if(CohtmlHud.Instance != null)
{ {
if (p_immediate) if(p_immediate)
CohtmlHud.Instance.ViewDropTextImmediate(p_title, p_message, p_small); CohtmlHud.Instance.ViewDropTextImmediate(p_title, p_message, p_small);
else else
CohtmlHud.Instance.ViewDropText(p_title, p_message, p_small); CohtmlHud.Instance.ViewDropText(p_title, p_message, p_small);
@ -44,7 +47,7 @@ namespace ml_lme
p_rot.x *= -1f; p_rot.x *= -1f;
p_rot.y *= -1f; p_rot.y *= -1f;
switch (p_mode) switch(p_mode)
{ {
case Settings.LeapTrackingMode.Screentop: case Settings.LeapTrackingMode.Screentop:
{ {

View file

@ -1,5 +1,4 @@
using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.InteractionSystem;
using cohtml;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View file

@ -1,9 +1,13 @@
using UnityEngine; using ABI_RC.Core.UI;
using System.Reflection;
using UnityEngine;
namespace ml_pam namespace ml_pam
{ {
static class Utils static class Utils
{ {
static FieldInfo ms_cohtmlView = typeof(CohtmlControlledViewDisposable).GetField("_view", BindingFlags.NonPublic | BindingFlags.Instance);
public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded); public static bool IsInVR() => ((ABI_RC.Core.Savior.CheckVR.Instance != null) && ABI_RC.Core.Savior.CheckVR.Instance.hasVrDeviceLoaded);
// Extensions // Extensions
@ -11,5 +15,7 @@ namespace ml_pam
{ {
return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.localScale : Vector3.one); return Matrix4x4.TRS(p_pos ? p_transform.position : Vector3.zero, p_rot ? p_transform.rotation : Quaternion.identity, p_scl ? p_transform.localScale : Vector3.one);
} }
public static void ExecuteScript(this CohtmlControlledViewDisposable p_viewDisposable, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_viewDisposable))?.ExecuteScript(p_script);
} }
} }