Decompiled source of NoVignette v1.1.0

Mods/NoVignette.dll

Decompiled a month ago
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");
		}
	}
}