Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of CaveSoundsBeGone v0.0.1
CaveSoundsBeGone.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = ".NET Framework 4.6")] [assembly: AssemblyCompany("CaveSoundsBeGone")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("My first plugin")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("CaveSoundsBeGone")] [assembly: AssemblyTitle("CaveSoundsBeGone")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace CaveSoundsBeGone; [BepInPlugin("CaveSoundsBeGone", "CaveSoundsBeGone", "1.0.0")] public class CaveSoundsBeGonePlugin : BaseUnityPlugin { [HarmonyPatch(typeof(AudioMan), "QueueAmbientLoop")] public class AudioMan_QueueAmbientLoop_Patch { public static void Prefix(AudioClip clip, ref float vol) { if (enableMod.Value && doEerieOverride.Value && ((Object)clip).name == "Amb_Eerie_GraveIntLoop") { vol = (float)eerieVol.Value / 100f; } } } [HarmonyPatch] public class AudioMan_UpdateWindAmbience_Patch { private static MethodBase TargetMethod() { return typeof(AudioMan).GetMethod("UpdateWindAmbience", BindingFlags.Instance | BindingFlags.NonPublic); } public static void Postfix(AudioMan __instance, float dt) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown if (enableMod.Value && doWindOverride.Value) { AudioSource val = (AudioSource)typeof(AudioMan).GetField("m_windLoopSource", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance); val.volume = Mathf.Lerp(val.volume, (float)windVol.Value / 100f, volumeFade); } } } [HarmonyPatch] public class AudioMan_UpdateOceanAmbiance_Patch { private static MethodBase TargetMethod() { return typeof(AudioMan).GetMethod("UpdateOceanAmbiance", BindingFlags.Instance | BindingFlags.NonPublic); } public static void Postfix(AudioMan __instance) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown if (enableMod.Value && doOceanOverride.Value) { AudioSource val = (AudioSource)typeof(AudioMan).GetField("m_oceanAmbientSource", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance); val.volume = Mathf.Lerp(val.volume, (float)oceanVol.Value / 100f, volumeFade); } } } [HarmonyPatch] public class AudioMan_SelectRandomAmbientClip_Patch { private static MethodBase TargetMethod() { return typeof(AudioMan).GetMethod("SelectRandomAmbientClip", BindingFlags.Instance | BindingFlags.NonPublic); } public static bool Prefix(ref bool __result) { if (!enableMod.Value || !disableRandomSounds.Value) { return true; } if ((Object)(object)EnvMan.instance != (Object)null && EnvMan.instance.GetCurrentEnvironment().m_name == "Crypt") { __result = false; return false; } return true; } } public static ConfigEntry<bool> enableMod; public static ConfigEntry<bool> doWindOverride; public static ConfigEntry<int> windVol; public static ConfigEntry<bool> doOceanOverride; public static ConfigEntry<int> oceanVol; public static ConfigEntry<bool> doEerieOverride; public static ConfigEntry<int> eerieVol; public static ConfigEntry<bool> disableRandomSounds; public static float volumeFade = 0f; public static bool volumeFadeUp = true; private static ManualLogSource logger; private void Awake() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Expected O, but got Unknown logger = ((BaseUnityPlugin)this).Logger; enableMod = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableMod", true, "Enable the mod?"); doWindOverride = ((BaseUnityPlugin)this).Config.Bind<bool>("Volume Controls", "WindSoundOverride", true, "Override wind volume in caves (0-100%)"); windVol = ((BaseUnityPlugin)this).Config.Bind<int>("Volume Controls", "WindVolumePercentage", 0, new ConfigDescription("New wind volume", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())); doOceanOverride = ((BaseUnityPlugin)this).Config.Bind<bool>("Volume Controls", "OceanSoundOverride", true, "Override ocean volume in caves (0-100%)"); oceanVol = ((BaseUnityPlugin)this).Config.Bind<int>("Volume Controls", "OceanVolumePercentage", 0, new ConfigDescription("New ocean volume", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())); doEerieOverride = ((BaseUnityPlugin)this).Config.Bind<bool>("Volume Controls", "EerieSoundOverride", true, "Override ghost-like eerie ambience volume in caves (0-100%)"); eerieVol = ((BaseUnityPlugin)this).Config.Bind<int>("Volume Controls", "EerieVolumePercentage", 0, new ConfigDescription("Override ghost-like eerie ambience volume in caves", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())); disableRandomSounds = ((BaseUnityPlugin)this).Config.Bind<bool>("Volume Controls", "DisableRandomSounds", true, "Disable random 3d sounds in caves"); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin CaveSoundsBeGone is loaded!"); Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null); } private void Update() { if ((Object)(object)EnvMan.instance != (Object)null && EnvMan.instance.GetCurrentEnvironment().m_name == "Crypt") { volumeFadeUp = true; } else { volumeFadeUp = false; } if (volumeFadeUp && volumeFade < 1f) { volumeFade += Time.deltaTime / 4f; } else if (!volumeFadeUp && volumeFade > 0f) { volumeFade -= Time.deltaTime / 5f; } volumeFade = Mathf.Clamp(volumeFade, 0f, 1f); } } public static class PluginInfo { public const string PLUGIN_GUID = "CaveSoundsBeGone"; public const string PLUGIN_NAME = "CaveSoundsBeGone"; public const string PLUGIN_VERSION = "1.0.0"; }