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 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("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)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"); } } }