using 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 Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("FogTweaks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("FogTweaks")] [assembly: AssemblyTitle("Fog Control")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } [BepInPlugin("FogTweaks", "Fog Tweaks", "1.0.0")] public class Plugin : BaseUnityPlugin { [HarmonyPatch(typeof(FogSphere))] public static class FogSphereSetSharderVarsPatch { [HarmonyPostfix] [HarmonyPatch("SetSharderVars")] private static void Postfix(FogSphere __instance) { //IL_009c: Unknown result type (might be due to invalid IL or missing references) if (__instance.mpb != null && (Object)(object)__instance.rend != (Object)null) { Vector4 val = default(Vector4); ((Vector4)(ref val))..ctor(fogTintColorRConfig?.Value ?? 0.72f, fogTintColorGConfig?.Value ?? 0.74f, fogTintColorBConfig?.Value ?? 0.75f, 0f); __instance.mpb.SetFloat("_DistanceVisibilityOffset", distanceVisibilityOffsetConfig?.Value ?? 30f); __instance.mpb.SetVector("_FogtintColor", val); __instance.rend.SetPropertyBlock(__instance.mpb); } } } internal static ManualLogSource? Log; internal static ConfigEntry? distanceVisibilityOffsetConfig; internal static ConfigEntry? fogTintColorRConfig; internal static ConfigEntry? fogTintColorGConfig; internal static ConfigEntry? fogTintColorBConfig; private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Expected O, but got Unknown Harmony val = new Harmony("FogTweaks"); val.PatchAll(); Log = ((BaseUnityPlugin)this).Logger; ManualLogSource? log = Log; if (log != null) { log.LogInfo((object)"Plugin FogTweaks is loaded!"); } distanceVisibilityOffsetConfig = ((BaseUnityPlugin)this).Config.Bind("Test", "DistanceVisibilityOffset", 30f, "Controls the _DistanceVisibilityOffset material property for fog spheres. Default: 30"); fogTintColorRConfig = ((BaseUnityPlugin)this).Config.Bind("Test", "FogTintColorR", 0.72f, new ConfigDescription("Red component of _FogtintColor material property. Default: 0.72", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 1f), Array.Empty())); fogTintColorGConfig = ((BaseUnityPlugin)this).Config.Bind("Test", "FogTintColorG", 0.74f, new ConfigDescription("Green component of _FogtintColor material property. Default: 0.74", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 1f), Array.Empty())); fogTintColorBConfig = ((BaseUnityPlugin)this).Config.Bind("Test", "FogTintColorB", 0.75f, new ConfigDescription("Blue component of _FogtintColor material property. Default: 0.75", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 1f), Array.Empty())); } } namespace BepInEx { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class BepInAutoPluginAttribute : Attribute { public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace BepInEx.Preloader.Core.Patching { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class PatcherAutoPluginAttribute : Attribute { public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }