diff --git a/ml_amt/Settings.cs b/ml_amt/Settings.cs index 930a83d..a317964 100644 --- a/ml_amt/Settings.cs +++ b/ml_amt/Settings.cs @@ -1,5 +1,4 @@ using ABI_RC.Core.InteractionSystem; -using cohtml; using System; using System.Collections.Generic; diff --git a/ml_amt/Utils.cs b/ml_amt/Utils.cs index 140cadc..f49bc9f 100644 --- a/ml_amt/Utils.cs +++ b/ml_amt/Utils.cs @@ -1,11 +1,13 @@ using UnityEngine; using System.Reflection; +using ABI_RC.Core.UI; namespace ml_amt { static class Utils { 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); @@ -19,5 +21,7 @@ namespace ml_amt { 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); } } diff --git a/ml_dht/Settings.cs b/ml_dht/Settings.cs index 7251fed..aaa92f1 100644 --- a/ml_dht/Settings.cs +++ b/ml_dht/Settings.cs @@ -1,5 +1,4 @@ using ABI_RC.Core.InteractionSystem; -using cohtml; using System; using System.Collections.Generic; diff --git a/ml_dht/Utils.cs b/ml_dht/Utils.cs index 7d2651c..638b9e4 100644 --- a/ml_dht/Utils.cs +++ b/ml_dht/Utils.cs @@ -1,12 +1,18 @@ -using UnityEngine; +using ABI_RC.Core.UI; +using System.Reflection; +using UnityEngine; namespace ml_dht { 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) { 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); } } diff --git a/ml_lme/Settings.cs b/ml_lme/Settings.cs index a28ee48..b1c04c6 100644 --- a/ml_lme/Settings.cs +++ b/ml_lme/Settings.cs @@ -1,5 +1,4 @@ using ABI_RC.Core.InteractionSystem; -using cohtml; using System; using System.Collections.Generic; using UnityEngine; diff --git a/ml_lme/Utils.cs b/ml_lme/Utils.cs index 3757395..b2eed59 100644 --- a/ml_lme/Utils.cs +++ b/ml_lme/Utils.cs @@ -13,24 +13,27 @@ namespace ml_lme 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_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 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 IsLeftHandTracked() => InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).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) { 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) { - if (CohtmlHud.Instance != null) + if(CohtmlHud.Instance != null) { - if (p_immediate) + if(p_immediate) CohtmlHud.Instance.ViewDropTextImmediate(p_title, p_message, p_small); else CohtmlHud.Instance.ViewDropText(p_title, p_message, p_small); @@ -44,7 +47,7 @@ namespace ml_lme p_rot.x *= -1f; p_rot.y *= -1f; - switch (p_mode) + switch(p_mode) { case Settings.LeapTrackingMode.Screentop: { diff --git a/ml_pam/Settings.cs b/ml_pam/Settings.cs index 488f2df..92ac61a 100644 --- a/ml_pam/Settings.cs +++ b/ml_pam/Settings.cs @@ -1,5 +1,4 @@ using ABI_RC.Core.InteractionSystem; -using cohtml; using System; using System.Collections.Generic; diff --git a/ml_pam/Utils.cs b/ml_pam/Utils.cs index b11b808..9bed194 100644 --- a/ml_pam/Utils.cs +++ b/ml_pam/Utils.cs @@ -1,9 +1,13 @@ -using UnityEngine; +using ABI_RC.Core.UI; +using System.Reflection; +using UnityEngine; namespace ml_pam { 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); // 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); } + + public static void ExecuteScript(this CohtmlControlledViewDisposable p_viewDisposable, string p_script) => ((cohtml.Net.View)ms_cohtmlView.GetValue(p_viewDisposable))?.ExecuteScript(p_script); } }