NAK_CVR_Mods/DesktopVRSwitch/VRModeTrackers/CVRInputManagerTracker.cs

42 lines
No EOL
1.3 KiB
C#

using ABI_RC.Core.Savior;
namespace NAK.DesktopVRSwitch.VRModeTrackers;
public class CVRInputManagerTracker : VRModeTracker
{
public override void TrackerInit()
{
VRModeSwitchManager.OnPostVRModeSwitch += OnPostSwitch;
}
public override void TrackerDestroy()
{
VRModeSwitchManager.OnPostVRModeSwitch -= OnPostSwitch;
}
void OnPostSwitch(bool intoVR)
{
CVRInputManager _cvrInputManager = CVRInputManager.Instance;
if (_cvrInputManager == null)
{
DesktopVRSwitch.Logger.Error("Error while getting CVRInputManager!");
return;
}
DesktopVRSwitch.Logger.Msg("Resetting CVRInputManager inputs.");
_cvrInputManager.inputEnabled = true;
//just in case
_cvrInputManager.blockedByUi = false;
//sometimes head can get stuck, so just in case
_cvrInputManager.independentHeadToggle = false;
//just nice to load into desktop with idle gesture
_cvrInputManager.gestureLeft = 0f;
_cvrInputManager.gestureLeftRaw = 0f;
_cvrInputManager.gestureRight = 0f;
_cvrInputManager.gestureRightRaw = 0f;
//turn off finger tracking input
_cvrInputManager.individualFingerTracking = false;
}
}