NAK_CVR_Mods/DesktopVRSwitch/VRModeTrackers/MetaPortTracker.cs
2023-06-19 19:44:23 -05:00

44 lines
No EOL
1.6 KiB
C#

using ABI_RC.Core.Savior;
namespace NAK.DesktopVRSwitch.VRModeTrackers;
public class MetaPortTracker : VRModeTracker
{
public override void TrackerInit()
{
VRModeSwitchManager.OnPostVRModeSwitch += OnPostSwitch;
}
public override void TrackerDestroy()
{
VRModeSwitchManager.OnPostVRModeSwitch -= OnPostSwitch;
}
private void OnPostSwitch(bool intoVR)
{
MetaPort _metaPort = MetaPort.Instance;
if (_metaPort == null)
{
DesktopVRSwitch.Logger.Error("Error while getting MetaPort!");
return;
}
DesktopVRSwitch.Logger.Msg($"Setting MetaPort isUsingVr to {intoVR}.");
// Main thing most of the game checks for if using VR
_metaPort.isUsingVr = intoVR;
// Hacky way of updating rich presence
if (_metaPort.settings.GetSettingsBool("ImplementationRichPresenceDiscordEnabled", true))
{
DesktopVRSwitch.Logger.Msg("Forcing Discord Rich Presence update.");
_metaPort.settings.SetSettingsBool("ImplementationRichPresenceDiscordEnabled", false);
_metaPort.settings.SetSettingsBool("ImplementationRichPresenceDiscordEnabled", true);
}
if (_metaPort.settings.GetSettingsBool("ImplementationRichPresenceSteamEnabled", true))
{
DesktopVRSwitch.Logger.Msg("Forcing Steam Rich Presence update.");
_metaPort.settings.SetSettingsBool("ImplementationRichPresenceSteamEnabled", false);
_metaPort.settings.SetSettingsBool("ImplementationRichPresenceSteamEnabled", true);
}
}
}