diff --git a/ComfyQM Standalone.csproj b/ComfyQM Standalone.csproj index f65c734..9f4955c 100644 --- a/ComfyQM Standalone.csproj +++ b/ComfyQM Standalone.csproj @@ -17,7 +17,7 @@ true full false - C:\Users\Chris\source\repos\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -30,55 +30,58 @@ prompt 4 + + OnOutputUpdated + - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Assembly-CSharp.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\Assembly-CSharp.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\Il2Cppmscorlib.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\Il2Cppmscorlib.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\MelonLoader.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\MelonLoader.dll - - - - - - D:\SteamLibrary\steamapps\common\VRChat\Mods\UIExpansionKit.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\Mods\UIExpansionKit.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnhollowerBaseLib.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\UnhollowerBaseLib.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.CoreModule.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.CoreModule.dll False - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VRModule.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.VRModule.dll False - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.XRModule.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\UnityEngine.XRModule.dll False - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Core.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Core.dll - D:\SteamLibrary\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Elements.dll + C:\Program Files (x86)\Steam\steamapps\common\VRChat\MelonLoader\Managed\VRC.UI.Elements.dll - + + + + + COPY "$(TargetPath)" "C:\Program Files (x86)\Steam\steamapps\common\VRChat\Mods\$(TargetFileName)" + \ No newline at end of file diff --git a/ComfyQM.cs b/ComfyQM.cs index 7017ff7..894fdc3 100644 --- a/ComfyQM.cs +++ b/ComfyQM.cs @@ -5,6 +5,9 @@ using UnityEngine.XR; using VRC.UI.Core; +[assembly: MelonInfo(typeof(ComfyQM_Standalone.ComfyQM), "ComfyQM", "1.2.0", "xaiver")] +[assembly: MelonGame("VRChat", "VRChat")] + namespace ComfyQM_Standalone { public class ComfyQM : MelonMod @@ -17,65 +20,45 @@ public class ComfyQM : MelonMod public IEnumerator WaitForUIMan() { - while (VRCUiManager.field_Private_Static_VRCUiManager_0 == null) yield return null; - while (UIManager.field_Private_Static_UIManager_0 == null) yield return null; - while (GameObject.Find("UserInterface").GetComponentInChildren(true) == null) yield return null; - QuickMenuObject = GameObject.Find("UserInterface").GetComponentInChildren(true).gameObject; - OnUIManInit(); - } + while (VRCUiManager.field_Private_Static_VRCUiManager_0 is null) yield return null; + while (UIManager.field_Private_Static_UIManager_0 is null) yield return null; + while ((QuickMenuObject = GameObject.Find("UserInterface").GetComponentInChildren(true)?.gameObject) is null) yield return null; + LeftHand = VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.transform.Find("DotLeftHand").gameObject; + RightHand = VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.transform.Find("DotRightHand").gameObject; + } public override void OnApplicationStart() { ComfyQuickMenu = MelonPreferences.CreateCategory("ComfyQM"); ComfyToggle = ComfyQuickMenu.CreateEntry("ComfyQM Toggle", false); + if (!XRDevice.isPresent) return; + MelonCoroutines.Start(WaitForUIMan()); - - HarmonyInstance.Patch(typeof(VRC.UI.Elements.QuickMenu).GetMethod(nameof(VRC.UI.Elements.QuickMenu.Method_Private_Boolean_0)), - typeof(ComfyQM).GetMethod(nameof(IsAttachedToHandPatch), BindingFlags.NonPublic | BindingFlags.Static).ToNewHarmonyMethod()); - HarmonyInstance.Patch(typeof(VRC.UI.Elements.QuickMenu).GetMethod(nameof(VRC.UI.Elements.QuickMenu.Method_Private_Boolean_1)), - typeof(ComfyQM).GetMethod(nameof(IsAttachedToHandPatch), BindingFlags.NonPublic | BindingFlags.Static).ToNewHarmonyMethod()); - } + HarmonyInstance.Patch( + typeof(VRC.UI.Elements.QuickMenu).GetMethod(nameof(VRC.UI.Elements.QuickMenu.Method_Private_Boolean_0)), + typeof(ComfyQM).GetMethod(nameof(IsAttachedToHandPatch), BindingFlags.NonPublic | BindingFlags.Static).ToNewHarmonyMethod() + ); - public void OnUIManInit() - { - LeftHand = VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.transform.Find("DotLeftHand").gameObject; - RightHand = VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.transform.Find("DotRightHand").gameObject; + HarmonyInstance.Patch( + typeof(VRC.UI.Elements.QuickMenu).GetMethod(nameof(VRC.UI.Elements.QuickMenu.Method_Private_Boolean_1)), + typeof(ComfyQM).GetMethod(nameof(IsAttachedToHandPatch), BindingFlags.NonPublic | BindingFlags.Static).ToNewHarmonyMethod() + ); } public override void OnUpdate() - { - if (LeftHand == null || RightHand == null) - { - return; - } - if (!QuickMenuObject.active) - { + { + if (QuickMenuObject is null || !QuickMenuObject.active || !ComfyToggle.Value) return; - } - if (ComfyToggle.Value == true) - { - LeftHand.SetActive(true); - RightHand.SetActive(true); - VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.field_Private_Boolean_2 = false; - VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.field_Private_Boolean_7 = false; - } - } - private static bool IsAttachedToHandPatch(ref bool __result) - { - if (XRDevice.isPresent == false) - { - return true; - } - if (ComfyToggle.Value) - { - __result = false; - return false; - } - return true; + LeftHand?.SetActive(true); + RightHand?.SetActive(true); + VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.field_Private_Boolean_2 = false; + VRCUiCursorManager.field_Private_Static_VRCUiCursorManager_0.field_Private_Boolean_7 = false; } + + private static bool IsAttachedToHandPatch(ref bool __result) => !ComfyToggle.Value || (__result = false); } } \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs deleted file mode 100644 index a974d30..0000000 --- a/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using MelonLoader; -using ComfyQM_Standalone; - - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ComfyQM Standalone")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ComfyQM Standalone")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: MelonInfo(typeof(ComfyQM), "ComfyQM", "1.2.0", "xaiver")] -[assembly: MelonGame("VRChat", "VRChat")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2a5d53cb-8b0e-4fa6-b800-1204e11f0589")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")]