using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BoneLib.BoneMenu;
using MelonLoader;
using MelonLoader.Preferences;
using NoVignette;
using UnityEngine;
using UnityEngine.SceneManagement;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(global::NoVignette.NoVignette), "NoVignette", "1.1.0", "HEIMO", null)]
[assembly: MelonGame("Stress Level Zero", "BONELAB")]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("NoVignette")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("NoVignette")]
[assembly: AssemblyTitle("NoVignette")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace NoVignette;
public class NoVignette : MelonMod
{
private static bool _preferencesSetup;
public static MelonPreferences_Category MelonPrefCategory { get; private set; }
public static MelonPreferences_Entry<bool> MelonPrefEnabled { get; private set; }
public static bool IsEnabled { get; private set; }
public static Page MainPage { get; private set; }
public static BoolElement EnabledElement { get; private set; }
public override void OnInitializeMelon()
{
SetupMelonPrefs();
SetupBoneMenu();
}
public static void SetupMelonPrefs()
{
MelonPrefCategory = MelonPreferences.CreateCategory("No Vignette");
MelonPrefEnabled = MelonPrefCategory.CreateEntry<bool>("IsEnabled", true, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
IsEnabled = MelonPrefEnabled.Value;
_preferencesSetup = true;
}
public static void SetupBoneMenu()
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
MainPage = Page.Root.CreatePage("No Vignette", Color.red, 0, true);
EnabledElement = MainPage.CreateBool("Vignette Remover", Color.white, IsEnabled, (Action<bool>)OnSetEnabled);
}
private static void OnSetEnabled(bool value)
{
IsEnabled = value;
MelonPrefEnabled.Value = value;
MelonPrefCategory.SaveToFile(false);
UpdateVignetteState();
}
public override void OnPreferencesLoaded()
{
if (_preferencesSetup)
{
IsEnabled = MelonPrefEnabled.Value;
EnabledElement.Value = IsEnabled;
}
}
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
{
MelonCoroutines.Start(DisableVignette());
}
private IEnumerator DisableVignette()
{
yield return (object)new WaitForSeconds(2f);
if (IsEnabled)
{
Scene activeScene = SceneManager.GetActiveScene();
string sceneName = ((Scene)(ref activeScene)).name;
if (!(sceneName == "scene_GameBootstrap") && !(sceneName == "scene_BoneLab_Loading"))
{
UpdateVignetteState();
}
}
}
private static void UpdateVignetteState()
{
GameObject val = GameObject.Find("RigManager(bonelab) [0]/VRControllerRig/TrackingSpace/Headset/Vignetter(Clone)");
if ((Object)(object)val == (Object)null)
{
MelonLogger.Warning("No Vignetter found in current scene");
}
else if (IsEnabled)
{
val.SetActive(false);
MelonLogger.Msg("Vignetter disabled");
}
else
{
val.SetActive(true);
MelonLogger.Msg("Vignetter enabled");
}
}
}