mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
well
This commit is contained in:
parent
81affe9377
commit
845baee849
4 changed files with 45 additions and 26 deletions
|
@ -84,7 +84,7 @@ internal class HarmonyPatches
|
||||||
{
|
{
|
||||||
if (QuickMenuHelper.Instance == null) return;
|
if (QuickMenuHelper.Instance == null) return;
|
||||||
QuickMenuHelper.Instance.UpdateWorldAnchors();
|
QuickMenuHelper.Instance.UpdateWorldAnchors();
|
||||||
QuickMenuHelper.Instance.ToggleDesktopInputMethod(show);
|
MSP_MenuInfo.ToggleDesktopInputMethod(show);
|
||||||
QuickMenuHelper.Instance.enabled = show;
|
QuickMenuHelper.Instance.enabled = show;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ internal class HarmonyPatches
|
||||||
{
|
{
|
||||||
if (MainMenuHelper.Instance == null) return;
|
if (MainMenuHelper.Instance == null) return;
|
||||||
MainMenuHelper.Instance.UpdateWorldAnchors();
|
MainMenuHelper.Instance.UpdateWorldAnchors();
|
||||||
MainMenuHelper.Instance.ToggleDesktopInputMethod(show);
|
MSP_MenuInfo.ToggleDesktopInputMethod(show);
|
||||||
MainMenuHelper.Instance.enabled = show;
|
MainMenuHelper.Instance.enabled = show;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,4 +114,13 @@ internal class HarmonyPatches
|
||||||
{
|
{
|
||||||
MSP_MenuInfo.CameraTransform = PlayerSetup.Instance.GetActiveCamera().transform;
|
MSP_MenuInfo.CameraTransform = PlayerSetup.Instance.GetActiveCamera().transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//only fixes Desktop QM interaction while using independent head input...
|
||||||
|
//[HarmonyPrefix]
|
||||||
|
//[HarmonyPatch(typeof(ControllerRay), "LateUpdate")]
|
||||||
|
//private static void UpdateMenuPositionForInput()
|
||||||
|
//{
|
||||||
|
// MainMenuHelper.Instance.UpdateMenuPosition();
|
||||||
|
// QuickMenuHelper.Instance.UpdateMenuPosition();
|
||||||
|
//}
|
||||||
}
|
}
|
|
@ -44,21 +44,18 @@ public class MainMenuHelper : MonoBehaviour
|
||||||
UpdateMenuPosition();
|
UpdateMenuPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
independentHeadTurn = false;
|
independentHeadTurn = false;
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
prevIndependentHeadTurn = false;
|
prevIndependentHeadTurn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleDesktopInputMethod(bool flag)
|
void OnDisable()
|
||||||
{
|
{
|
||||||
if (MetaPort.Instance.isUsingVr) return;
|
independentHeadTurn = false;
|
||||||
PlayerSetup.Instance._movementSystem.disableCameraControl = flag;
|
returnIndependentHeadTurn = false;
|
||||||
CVRInputManager.Instance.inputEnabled = !flag;
|
prevIndependentHeadTurn = false;
|
||||||
RootLogic.Instance.ToggleMouse(flag);
|
|
||||||
CVR_MenuManager.Instance.desktopControllerRay.enabled = !flag;
|
|
||||||
Traverse.Create(CVR_MenuManager.Instance).Field("_desktopMouseMode").SetValue(flag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CreateWorldAnchors()
|
public void CreateWorldAnchors()
|
||||||
|
@ -103,6 +100,7 @@ public class MainMenuHelper : MonoBehaviour
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float angle = (float)ms_followAngleY.GetValue(MovementSystem.Instance);
|
||||||
bool independentHeadTurnChanged = CVRInputManager.Instance.independentHeadTurn != prevIndependentHeadTurn;
|
bool independentHeadTurnChanged = CVRInputManager.Instance.independentHeadTurn != prevIndependentHeadTurn;
|
||||||
if (independentHeadTurnChanged)
|
if (independentHeadTurnChanged)
|
||||||
{
|
{
|
||||||
|
@ -110,10 +108,10 @@ public class MainMenuHelper : MonoBehaviour
|
||||||
//if pressing but not already enabled
|
//if pressing but not already enabled
|
||||||
if (prevIndependentHeadTurn)
|
if (prevIndependentHeadTurn)
|
||||||
{
|
{
|
||||||
if (!independentHeadTurn)
|
if (!independentHeadTurn && angle == 0f)
|
||||||
{
|
{
|
||||||
UpdateWorldAnchors();
|
UpdateWorldAnchors();
|
||||||
ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
MSP_MenuInfo.ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
||||||
independentHeadTurn = true;
|
independentHeadTurn = true;
|
||||||
}
|
}
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
|
@ -126,12 +124,11 @@ public class MainMenuHelper : MonoBehaviour
|
||||||
|
|
||||||
if (returnIndependentHeadTurn)
|
if (returnIndependentHeadTurn)
|
||||||
{
|
{
|
||||||
float angle = (float)ms_followAngleY.GetValue(MovementSystem.Instance);
|
|
||||||
if (angle == 0f)
|
if (angle == 0f)
|
||||||
{
|
{
|
||||||
independentHeadTurn = false;
|
independentHeadTurn = false;
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
MSP_MenuInfo.ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,21 +43,18 @@ public class QuickMenuHelper : MonoBehaviour
|
||||||
UpdateMenuPosition();
|
UpdateMenuPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
independentHeadTurn = false;
|
independentHeadTurn = false;
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
prevIndependentHeadTurn = false;
|
prevIndependentHeadTurn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleDesktopInputMethod(bool flag)
|
void OnDisable()
|
||||||
{
|
{
|
||||||
if (MetaPort.Instance.isUsingVr) return;
|
independentHeadTurn = false;
|
||||||
PlayerSetup.Instance._movementSystem.disableCameraControl = flag;
|
returnIndependentHeadTurn = false;
|
||||||
CVRInputManager.Instance.inputEnabled = !flag;
|
prevIndependentHeadTurn = false;
|
||||||
RootLogic.Instance.ToggleMouse(flag);
|
|
||||||
CVR_MenuManager.Instance.desktopControllerRay.enabled = !flag;
|
|
||||||
Traverse.Create(CVR_MenuManager.Instance).Field("_desktopMouseMode").SetValue(flag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CreateWorldAnchors()
|
public void CreateWorldAnchors()
|
||||||
|
@ -85,6 +82,7 @@ public class QuickMenuHelper : MonoBehaviour
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float angle = (float)ms_followAngleY.GetValue(MovementSystem.Instance);
|
||||||
bool independentHeadTurnChanged = CVRInputManager.Instance.independentHeadTurn != prevIndependentHeadTurn;
|
bool independentHeadTurnChanged = CVRInputManager.Instance.independentHeadTurn != prevIndependentHeadTurn;
|
||||||
if (independentHeadTurnChanged)
|
if (independentHeadTurnChanged)
|
||||||
{
|
{
|
||||||
|
@ -92,10 +90,10 @@ public class QuickMenuHelper : MonoBehaviour
|
||||||
//if pressing but not already enabled
|
//if pressing but not already enabled
|
||||||
if (prevIndependentHeadTurn)
|
if (prevIndependentHeadTurn)
|
||||||
{
|
{
|
||||||
if (!independentHeadTurn)
|
if (!independentHeadTurn && angle == 0f)
|
||||||
{
|
{
|
||||||
UpdateWorldAnchors();
|
UpdateWorldAnchors();
|
||||||
ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
MSP_MenuInfo.ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
||||||
independentHeadTurn = true;
|
independentHeadTurn = true;
|
||||||
}
|
}
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
|
@ -108,12 +106,11 @@ public class QuickMenuHelper : MonoBehaviour
|
||||||
|
|
||||||
if (returnIndependentHeadTurn)
|
if (returnIndependentHeadTurn)
|
||||||
{
|
{
|
||||||
float angle = (float)ms_followAngleY.GetValue(MovementSystem.Instance);
|
|
||||||
if (angle == 0f)
|
if (angle == 0f)
|
||||||
{
|
{
|
||||||
independentHeadTurn = false;
|
independentHeadTurn = false;
|
||||||
returnIndependentHeadTurn = false;
|
returnIndependentHeadTurn = false;
|
||||||
ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
MSP_MenuInfo.ToggleDesktopInputMethod(!prevIndependentHeadTurn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,12 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using ABI_RC.Core.InteractionSystem;
|
||||||
|
using ABI_RC.Core.Player;
|
||||||
using ABI_RC.Core.Savior;
|
using ABI_RC.Core.Savior;
|
||||||
|
using ABI_RC.Core;
|
||||||
|
using ABI_RC.Systems.MovementSystem;
|
||||||
|
using HarmonyLib;
|
||||||
|
|
||||||
namespace NAK.Melons.MenuScalePatch.Helpers;
|
namespace NAK.Melons.MenuScalePatch.Helpers;
|
||||||
|
|
||||||
|
@ -23,4 +28,15 @@ public class MSP_MenuInfo
|
||||||
public static bool DisableQMHelper_VR;
|
public static bool DisableQMHelper_VR;
|
||||||
public static bool DisableMMHelper;
|
public static bool DisableMMHelper;
|
||||||
public static bool DisableMMHelper_VR;
|
public static bool DisableMMHelper_VR;
|
||||||
|
|
||||||
|
public static void ToggleDesktopInputMethod(bool flag)
|
||||||
|
{
|
||||||
|
if (MetaPort.Instance.isUsingVr) return;
|
||||||
|
MelonLoader.MelonLogger.Msg("Toggled Desktop Input");
|
||||||
|
PlayerSetup.Instance._movementSystem.disableCameraControl = flag;
|
||||||
|
CVRInputManager.Instance.inputEnabled = !flag;
|
||||||
|
RootLogic.Instance.ToggleMouse(flag);
|
||||||
|
CVR_MenuManager.Instance.desktopControllerRay.enabled = !flag;
|
||||||
|
Traverse.Create(CVR_MenuManager.Instance).Field("_desktopMouseMode").SetValue(flag);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue