mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
small polish tweaks, update to melon 5.5
This commit is contained in:
parent
329b3bcbdf
commit
35bcc74e3b
5 changed files with 60 additions and 58 deletions
|
@ -2,6 +2,7 @@
|
||||||
using ABI_RC.Core.Savior;
|
using ABI_RC.Core.Savior;
|
||||||
using ABI_RC.Core.UI;
|
using ABI_RC.Core.UI;
|
||||||
using MelonLoader;
|
using MelonLoader;
|
||||||
|
using System.Text;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Blackout;
|
namespace Blackout;
|
||||||
|
@ -78,17 +79,17 @@ public class BlackoutController : MonoBehaviour
|
||||||
case BlackoutState.Awake:
|
case BlackoutState.Awake:
|
||||||
blackoutAnimator.SetBool("BlackoutState.Drowsy", false);
|
blackoutAnimator.SetBool("BlackoutState.Drowsy", false);
|
||||||
blackoutAnimator.SetBool("BlackoutState.Sleeping", false);
|
blackoutAnimator.SetBool("BlackoutState.Sleeping", false);
|
||||||
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyPartial", DrowsyDimStrength);
|
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyStrength", DrowsyDimStrength);
|
||||||
break;
|
break;
|
||||||
case BlackoutState.Drowsy:
|
case BlackoutState.Drowsy:
|
||||||
blackoutAnimator.SetBool("BlackoutState.Drowsy", true);
|
blackoutAnimator.SetBool("BlackoutState.Drowsy", true);
|
||||||
blackoutAnimator.SetBool("BlackoutState.Sleeping", false);
|
blackoutAnimator.SetBool("BlackoutState.Sleeping", false);
|
||||||
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyPartial", DrowsyDimStrength);
|
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyStrength", DrowsyDimStrength);
|
||||||
break;
|
break;
|
||||||
case BlackoutState.Sleeping:
|
case BlackoutState.Sleeping:
|
||||||
blackoutAnimator.SetBool("BlackoutState.Drowsy", false);
|
blackoutAnimator.SetBool("BlackoutState.Drowsy", false);
|
||||||
blackoutAnimator.SetBool("BlackoutState.Sleeping", true);
|
blackoutAnimator.SetBool("BlackoutState.Sleeping", true);
|
||||||
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyPartial", DrowsyDimStrength);
|
blackoutAnimator.SetFloat("BlackoutSetting.DrowsyStrength", DrowsyDimStrength);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -99,6 +100,22 @@ public class BlackoutController : MonoBehaviour
|
||||||
ChangeTargetFPS();
|
ChangeTargetFPS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//initialize BlackoutInstance object
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
|
||||||
|
GameObject blackoutAsset = AssetsHandler.GetAsset("Assets/BundledAssets/Blackout/Blackout.prefab");
|
||||||
|
GameObject blackoutGO = Instantiate(blackoutAsset, new Vector3(0, 0, 0), Quaternion.identity);
|
||||||
|
|
||||||
|
if (blackoutGO == null) return;
|
||||||
|
|
||||||
|
blackoutGO.name = "BlackoutInstance";
|
||||||
|
blackoutAnimator = blackoutGO.GetComponent<Animator>();
|
||||||
|
SetupBlackoutInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Automatic State Change
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
//only run once a second, angularMovement is "smoothed out" at high FPS otherwise
|
//only run once a second, angularMovement is "smoothed out" at high FPS otherwise
|
||||||
|
@ -127,28 +144,6 @@ public class BlackoutController : MonoBehaviour
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//debug
|
|
||||||
//MelonLogger.Msg("curTime " + curTime);
|
|
||||||
//MelonLogger.Msg("lastAwakeTime " + lastAwakeTime);
|
|
||||||
//MelonLogger.Msg("timeleft " + GetNextStateTimer());
|
|
||||||
//MelonLogger.Msg("current state " + CurrentState);
|
|
||||||
}
|
|
||||||
|
|
||||||
//initialize BlackoutInstance object
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
Instance = this;
|
|
||||||
|
|
||||||
GameObject blackoutAsset = AssetsHandler.GetAsset("Assets/BundledAssets/Blackout/Blackout.prefab");
|
|
||||||
GameObject blackoutGO = Instantiate(blackoutAsset, new Vector3(0, 0, 0), Quaternion.identity);
|
|
||||||
|
|
||||||
if (blackoutGO != null)
|
|
||||||
{
|
|
||||||
blackoutGO.name = "BlackoutInstance";
|
|
||||||
blackoutAnimator = blackoutGO.GetComponent<Animator>();
|
|
||||||
SetupBlackoutInstance();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
|
@ -190,7 +185,12 @@ public class BlackoutController : MonoBehaviour
|
||||||
{
|
{
|
||||||
MelonLogger.Msg(message);
|
MelonLogger.Msg(message);
|
||||||
if (!CohtmlHud.Instance || !HudMessages) return;
|
if (!CohtmlHud.Instance || !HudMessages) return;
|
||||||
CohtmlHud.Instance.ViewDropTextImmediate("Blackout", message, GetNextStateTimer().ToString() + " seconds till next state change.");
|
|
||||||
|
StringBuilder secondmessage = new StringBuilder();
|
||||||
|
if (enabled)
|
||||||
|
secondmessage = new StringBuilder(GetNextStateTimer().ToString() + " seconds till next state change.");
|
||||||
|
|
||||||
|
CohtmlHud.Instance.ViewDropTextImmediate("Blackout", message, secondmessage.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeTargetFPS()
|
private void ChangeTargetFPS()
|
||||||
|
|
|
@ -14,6 +14,7 @@ internal class HarmonyPatches
|
||||||
if (Blackout.inVR != PlayerSetup.Instance._inVr)
|
if (Blackout.inVR != PlayerSetup.Instance._inVr)
|
||||||
{
|
{
|
||||||
BlackoutController.Instance.SetupBlackoutInstance();
|
BlackoutController.Instance.SetupBlackoutInstance();
|
||||||
|
BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Awake);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,23 +1,21 @@
|
||||||
using ABI_RC.Core.Player;
|
using ABI_RC.Core.Player;
|
||||||
using MelonLoader;
|
using MelonLoader;
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Blackout;
|
namespace Blackout;
|
||||||
|
|
||||||
public class Blackout : MelonMod
|
public class Blackout : MelonMod
|
||||||
{
|
{
|
||||||
public const string SettingsCategory = "Blackout";
|
|
||||||
|
|
||||||
internal static bool inVR;
|
internal static bool inVR;
|
||||||
internal static MelonPreferences_Category m_categoryBlackout;
|
internal const string SettingsCategory = "Blackout";
|
||||||
internal static MelonPreferences_Entry<bool> m_entryEnabled, m_entryHudMessages, m_entryDropFPSOnSleep;
|
|
||||||
//internal static MelonPreferences_Entry<bool> m_entryVROnly;
|
private static MelonPreferences_Category m_categoryBlackout;
|
||||||
internal static MelonPreferences_Entry<float>
|
private static MelonPreferences_Entry<bool> m_entryEnabled, m_entryHudMessages, m_entryDropFPSOnSleep;
|
||||||
|
private static MelonPreferences_Entry<float>
|
||||||
m_entryDrowsyThreshold, m_entryAwakeThreshold,
|
m_entryDrowsyThreshold, m_entryAwakeThreshold,
|
||||||
m_entryDrowsyModeTimer, m_entrySleepModeTimer,
|
m_entryDrowsyModeTimer, m_entrySleepModeTimer,
|
||||||
m_entryDrowsyDimStrength;
|
m_entryDrowsyDimStrength;
|
||||||
|
|
||||||
public override void OnApplicationStart()
|
public override void OnInitializeMelon()
|
||||||
{
|
{
|
||||||
m_categoryBlackout = MelonPreferences.CreateCategory(nameof(Blackout));
|
m_categoryBlackout = MelonPreferences.CreateCategory(nameof(Blackout));
|
||||||
m_entryEnabled = m_categoryBlackout.CreateEntry<bool>("Automatic State Change", true, description: "Dim screen when there is no movement for a while.");
|
m_entryEnabled = m_categoryBlackout.CreateEntry<bool>("Automatic State Change", true, description: "Dim screen when there is no movement for a while.");
|
||||||
|
@ -28,29 +26,25 @@ public class Blackout : MelonMod
|
||||||
m_entryDrowsyModeTimer = m_categoryBlackout.CreateEntry<float>("Enter Drowsy Time", 3f, description: "How many minutes without movement until enter drowsy mode.");
|
m_entryDrowsyModeTimer = m_categoryBlackout.CreateEntry<float>("Enter Drowsy Time", 3f, description: "How many minutes without movement until enter drowsy mode.");
|
||||||
m_entrySleepModeTimer = m_categoryBlackout.CreateEntry<float>("Enter Sleep Time", 10f, description: "How many seconds without movement until enter sleep mode.");
|
m_entrySleepModeTimer = m_categoryBlackout.CreateEntry<float>("Enter Sleep Time", 10f, description: "How many seconds without movement until enter sleep mode.");
|
||||||
m_entryDrowsyDimStrength = m_categoryBlackout.CreateEntry<float>("Drowsy Dim Strength", 0.5f, description: "How strong of a dimming effect should drowsy mode have.");
|
m_entryDrowsyDimStrength = m_categoryBlackout.CreateEntry<float>("Drowsy Dim Strength", 0.5f, description: "How strong of a dimming effect should drowsy mode have.");
|
||||||
//m_entryVROnly = m_categoryBlackout.CreateEntry<bool>("VR Only", false, description: "Only enable mod in VR.");
|
|
||||||
m_categoryBlackout.SaveToFile(false);
|
m_categoryBlackout.SaveToFile(false);
|
||||||
|
|
||||||
//please tell me a better way to do this
|
m_entryEnabled.OnEntryValueChangedUntyped.Subscribe(OnUpdateEnabled);
|
||||||
//this is fucking
|
m_entryHudMessages.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
//gross pleas etell me how to do this but not like this
|
m_entryDropFPSOnSleep.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryEnabled.OnValueChangedUntyped += OnEnabled;
|
m_entryDrowsyThreshold.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryHudMessages.OnValueChangedUntyped += OnUpdateSettings;
|
m_entryAwakeThreshold.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryDropFPSOnSleep.OnValueChangedUntyped += OnUpdateSettings;
|
m_entryDrowsyModeTimer.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryDrowsyThreshold.OnValueChangedUntyped += OnUpdateSettings;
|
m_entrySleepModeTimer.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryAwakeThreshold.OnValueChangedUntyped += OnUpdateSettings;
|
m_entryDrowsyDimStrength.OnEntryValueChangedUntyped.Subscribe(OnUpdateSettings);
|
||||||
m_entryDrowsyModeTimer.OnValueChangedUntyped += OnUpdateSettings;
|
|
||||||
m_entrySleepModeTimer.OnValueChangedUntyped += OnUpdateSettings;
|
|
||||||
m_entryDrowsyDimStrength.OnValueChangedUntyped += OnUpdateSettings;
|
|
||||||
//m_entryVROnly.OnValueChangedUntyped += OnUpdateSettings;
|
|
||||||
MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer());
|
|
||||||
|
|
||||||
//UIExpansionKit addon
|
//UIExpansionKit addon
|
||||||
if (MelonHandler.Mods.Any(it => it.Info.Name == "UI Expansion Kit"))
|
if (MelonMod.RegisteredMelons.Any(it => it.Info.Name == "UI Expansion Kit"))
|
||||||
{
|
{
|
||||||
MelonLogger.Msg("Initializing UIExpansionKit support.");
|
MelonLogger.Msg("Initializing UIExpansionKit support.");
|
||||||
UiExtensionsAddon.Init();
|
UiExtensionsAddon.Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
System.Collections.IEnumerator WaitForLocalPlayer()
|
System.Collections.IEnumerator WaitForLocalPlayer()
|
||||||
|
@ -65,8 +59,10 @@ public class Blackout : MelonMod
|
||||||
PlayerSetup.Instance.gameObject.AddComponent<BlackoutController>();
|
PlayerSetup.Instance.gameObject.AddComponent<BlackoutController>();
|
||||||
|
|
||||||
//update BlackoutController settings after it initializes
|
//update BlackoutController settings after it initializes
|
||||||
yield return new WaitForEndOfFrame();
|
while (BlackoutController.Instance == null)
|
||||||
OnUpdateSettings();
|
yield return null;
|
||||||
|
|
||||||
|
UpdateAllSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnEnabled()
|
private void OnEnabled()
|
||||||
|
@ -74,20 +70,25 @@ public class Blackout : MelonMod
|
||||||
if (!BlackoutController.Instance) return;
|
if (!BlackoutController.Instance) return;
|
||||||
BlackoutController.Instance.enabled = m_entryEnabled.Value;
|
BlackoutController.Instance.enabled = m_entryEnabled.Value;
|
||||||
}
|
}
|
||||||
private void OnUpdateSettings()
|
|
||||||
|
private void UpdateAllSettings()
|
||||||
{
|
{
|
||||||
if (!BlackoutController.Instance) return;
|
if (!BlackoutController.Instance) return;
|
||||||
|
BlackoutController.Instance.enabled = m_entryEnabled.Value;
|
||||||
|
BlackoutController.Instance.HudMessages = m_entryHudMessages.Value;
|
||||||
|
BlackoutController.Instance.DropFPSOnSleep = m_entryDropFPSOnSleep.Value;
|
||||||
BlackoutController.Instance.drowsyThreshold = m_entryDrowsyThreshold.Value;
|
BlackoutController.Instance.drowsyThreshold = m_entryDrowsyThreshold.Value;
|
||||||
BlackoutController.Instance.wakeThreshold = m_entryAwakeThreshold.Value;
|
BlackoutController.Instance.wakeThreshold = m_entryAwakeThreshold.Value;
|
||||||
BlackoutController.Instance.DrowsyModeTimer = m_entryDrowsyModeTimer.Value;
|
BlackoutController.Instance.DrowsyModeTimer = m_entryDrowsyModeTimer.Value;
|
||||||
BlackoutController.Instance.SleepModeTimer = m_entrySleepModeTimer.Value;
|
BlackoutController.Instance.SleepModeTimer = m_entrySleepModeTimer.Value;
|
||||||
BlackoutController.Instance.DrowsyDimStrength = m_entryDrowsyDimStrength.Value;
|
BlackoutController.Instance.DrowsyDimStrength = m_entryDrowsyDimStrength.Value;
|
||||||
BlackoutController.Instance.HudMessages = m_entryHudMessages.Value;
|
|
||||||
BlackoutController.Instance.DropFPSOnSleep = m_entryDropFPSOnSleep.Value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnUpdateEnabled(object arg1, object arg2) => OnEnabled();
|
||||||
|
private void OnUpdateSettings(object arg1, object arg2) => UpdateAllSettings();
|
||||||
|
|
||||||
//UIExpansionKit actions
|
//UIExpansionKit actions
|
||||||
public static void AwakeState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Awake);
|
internal static void AwakeState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Awake);
|
||||||
public static void DrowsyState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Drowsy);
|
internal static void DrowsyState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Drowsy);
|
||||||
public static void SleepingState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Sleeping);
|
internal static void SleepingState() => BlackoutController.Instance.ChangeBlackoutState(BlackoutController.BlackoutState.Sleeping);
|
||||||
}
|
}
|
|
@ -25,6 +25,6 @@ using System.Reflection;
|
||||||
namespace Blackout.Properties;
|
namespace Blackout.Properties;
|
||||||
internal static class AssemblyInfoParams
|
internal static class AssemblyInfoParams
|
||||||
{
|
{
|
||||||
public const string Version = "1.0.0";
|
public const string Version = "1.0.1";
|
||||||
public const string Author = "NotAKidoS";
|
public const string Author = "NotAKidoS";
|
||||||
}
|
}
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue