using System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using UnityEngine; using UnityEngine.PostProcessing; using UnityEngine.SceneManagement; using UnityStandardAssets.ImageEffects; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyInformationalVersion("1.0.0+bcf1d307d66620aa503f13cb80b965ad80ed91a2")] [assembly: AssemblyVersion("1.3.1.0")] namespace GraphicsConfigPlus; [HarmonyPatch] public class HiddenSettings { public static void OnReload() { ApplyShadowSettings(); ApplyQualityOverrides(); ApplyVSync(); ApplyMaxFps(); } [HarmonyPatch(typeof(GraphicsSettingsManager), "ApplyQualitySettings")] [HarmonyPostfix] private static void ApplyQualitySettings_Postfix() { ApplyShadowSettings(); ApplyQualityOverrides(); } [HarmonyPatch(typeof(GraphicsSettingsManager), "ApplyGraphicsSettingsToCurrentSession")] [HarmonyPostfix] private static void ApplyGraphicsSettingsToCurrentSession_Postfix() { ApplyShadowSettings(); ApplyQualityOverrides(); ApplyVSync(); } [HarmonyPatch(typeof(GraphicsSettingsManager), "ApplyStartupSettings")] [HarmonyPostfix] private static void GraphicsSettingsManager_ApplyStartupSettings() { ApplyVSync(); } [HarmonyPatch(typeof(Settings), "ApplyStartupSettings")] [HarmonyPostfix] private static void Settings_ApplyStartupSettings() { ApplyVSync(); } [HarmonyPatch(typeof(Game), "Start")] [HarmonyPostfix] private static void Game_Start() { ApplyMaxFps(); } private static void ApplyShadowSettings() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----Shadow settings----"); Debug.Log((object)$"shadowResolution: {QualitySettings.shadowResolution} to {(object)(ShadowResolution)Main.shadowResolution.Value}"); Debug.Log((object)$"shadowCascades: {QualitySettings.shadowCascades} to {Main.shadowCascades.Value}"); Debug.Log((object)$"shadowDistance: {QualitySettings.shadowDistance} to {Main.shadowDistance.Value}"); Debug.Log((object)$"shadows: {QualitySettings.shadows} to {(object)(ShadowQuality)Main.shadows.Value}"); } QualitySettings.shadowCascades = Main.shadowCascades.Value; QualitySettings.shadowDistance = Main.shadowDistance.Value; QualitySettings.shadows = (ShadowQuality)Main.shadows.Value; QualitySettings.shadowResolution = (ShadowResolution)Main.shadowResolution.Value; } private static void ApplyQualityOverrides() { //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_0123: Unknown result type (might be due to invalid IL or missing references) if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----General settings----"); Debug.Log((object)$"AnisotropicFiltering: {QualitySettings.anisotropicFiltering} to {(object)(AnisotropicFiltering)Main.anisotropicFiltering.Value}"); Debug.Log((object)$"MasterTextureLimit/globalTextureMipmapLimit: {QualitySettings.globalTextureMipmapLimit} to {Main.masterTextureLimit.Value}"); if ((int)SystemInfo.graphicsDeviceType != 21) { Debug.Log((object)$"MaxQueuedFrames: {QualitySettings.maxQueuedFrames} to {Main.maxQueuedFrames.Value}"); } else { Debug.Log((object)"Vulkan detected, not applying MaxQueuedFrames setting"); } Debug.Log((object)$"ParticleRaycastBudget: {QualitySettings.particleRaycastBudget} to {Main.particleRaycastBudget.Value}"); Debug.Log((object)$"PixelLightCount: {QualitySettings.pixelLightCount} to {Main.pixelLightCount.Value}"); Debug.Log((object)$"RealtimeReflectionProbes: {QualitySettings.realtimeReflectionProbes} to {Main.realtimeReflectionProbes.Value}"); Debug.Log((object)$"SkinWeights: {QualitySettings.skinWeights} to {(object)(SkinWeights)Main.skinWeights.Value}"); Debug.Log((object)$"SoftParticles: {QualitySettings.softParticles} to {Main.softParticles.Value}"); Debug.Log((object)$"SoftVegetation: {QualitySettings.softVegetation} to {Main.softVegetation.Value}"); Debug.Log((object)$"LodBias: {QualitySettings.lodBias} to {Main.lodBias.Value}"); } QualitySettings.anisotropicFiltering = (AnisotropicFiltering)Main.anisotropicFiltering.Value; QualitySettings.lodBias = Main.lodBias.Value; QualitySettings.globalTextureMipmapLimit = Main.masterTextureLimit.Value; if ((int)SystemInfo.graphicsDeviceType != 21) { QualitySettings.maxQueuedFrames = Main.maxQueuedFrames.Value; } QualitySettings.particleRaycastBudget = Main.particleRaycastBudget.Value; QualitySettings.pixelLightCount = Main.pixelLightCount.Value; QualitySettings.realtimeReflectionProbes = Main.realtimeReflectionProbes.Value; QualitySettings.skinWeights = (SkinWeights)Main.skinWeights.Value; QualitySettings.softParticles = Main.softParticles.Value; QualitySettings.softVegetation = Main.softVegetation.Value; } private static void ApplyVSync() { if (Main.printValues.Value) { Debug.Log((object)$"[GraphicsConfigPlus] vSyncCount: {QualitySettings.vSyncCount} to {Main.vSyncCount.Value}"); } QualitySettings.vSyncCount = Main.vSyncCount.Value; } private static void ApplyMaxFps() { if (Main.printValues.Value) { Debug.Log((object)$"[GraphicsConfigPlus] MaxFPS: {Application.targetFrameRate} to {Main.maxFps.Value}"); } Application.targetFrameRate = Main.maxFps.Value; } } [BepInPlugin("cjayride.GraphicsConfigPlus", "GraphicsConfigPlus", "1.3.1")] public class Main : BaseUnityPlugin { internal readonly Harmony harmony = new Harmony("cjayride.GraphicsConfigPlus"); public readonly int nexusID = 351; public static ConfigEntry modEnabled { get; private set; } public static ConfigEntry printValues { get; private set; } public static ConfigEntry anisotropicFiltering { get; private set; } public static ConfigEntry masterTextureLimit { get; private set; } public static ConfigEntry maxQueuedFrames { get; private set; } public static ConfigEntry particleRaycastBudget { get; private set; } public static ConfigEntry pixelLightCount { get; private set; } public static ConfigEntry realtimeReflectionProbes { get; private set; } public static ConfigEntry skinWeights { get; private set; } public static ConfigEntry softParticles { get; private set; } public static ConfigEntry softVegetation { get; private set; } public static ConfigEntry lodBias { get; private set; } public static ConfigEntry shadowResolution { get; private set; } public static ConfigEntry shadowCascades { get; private set; } public static ConfigEntry shadowDistance { get; private set; } public static ConfigEntry shadows { get; private set; } public static ConfigEntry disablePostProcessing { get; private set; } public static ConfigEntry lensDirtIntensity { get; private set; } public static ConfigEntry sunShaftsIntensity { get; private set; } public static ConfigEntry sunShaftsResolution { get; private set; } public static ConfigEntry sunShaftsScreenBlendMode { get; private set; } public static ConfigEntry sunShaftsMaxRadius { get; private set; } public static ConfigEntry sunShaftsBlurRadius { get; private set; } public static ConfigEntry sunShaftsRadialBlurIterations { get; private set; } public static ConfigEntry bloomAntiFlicker { get; private set; } public static ConfigEntry bloomRadious { get; private set; } public static ConfigEntry bloomSoftKnee { get; private set; } public static ConfigEntry bloomIntensity { get; private set; } public static ConfigEntry gammaCorrection { get; private set; } public static ConfigEntry SSAOintensity { get; private set; } public static ConfigEntry SSAOhighPrecision { get; private set; } public static ConfigEntry SSAOambientOnly { get; private set; } public static ConfigEntry SSAOdownSampling { get; private set; } public static ConfigEntry SSAOfarDistance { get; private set; } public static ConfigEntry SSAOsampleCount { get; private set; } public static ConfigEntry MBframeBlending { get; private set; } public static ConfigEntry MBsampleCount { get; private set; } public static ConfigEntry MBshutterAngle { get; private set; } public static ConfigEntry AAmethod { get; private set; } public static ConfigEntry CAintensity { get; private set; } public static ConfigEntry maxFps { get; private set; } public static ConfigEntry vSyncCount { get; private set; } public static ConfigEntry reloadKey { get; private set; } public static ConfigEntry fog { get; private set; } public static ConfigEntry fogColor { get; private set; } public static ConfigEntry fogDensity { get; private set; } public static ConfigEntry fogStartDistance { get; private set; } public static ConfigEntry fogEndDistance { get; private set; } public static ConfigEntry fogMode { get; private set; } private void Awake() { LoadValues(); if (modEnabled.Value) { harmony.PatchAll(typeof(HiddenSettings)); harmony.PatchAll(typeof(PostProcessing)); ((BaseUnityPlugin)this).Config.ConfigReloaded += OnReloaded; } } private void Update() { if (modEnabled.Value && Input.GetKeyDown(reloadKey.Value)) { Debug.Log((object)"[GraphicsConfigPlus] Reloading config"); ((BaseUnityPlugin)this).Config.Reload(); } } private void OnReloaded(object sender, EventArgs e) { HiddenSettings.OnReload(); PostProcessing.OnReload(); } private void LoadValues() { //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) modEnabled = ((BaseUnityPlugin)this).Config.Bind("General", "Enabled", true, "Enable this mod"); ((BaseUnityPlugin)this).Config.Bind("General", "NexusID", nexusID, "Nexus mod ID for updates"); printValues = ((BaseUnityPlugin)this).Config.Bind("General", "PrintDefaultValues", false, "Whether to print the game's graphics configuration before the mod loads."); reloadKey = ((BaseUnityPlugin)this).Config.Bind("General", "ReloadKey", "home", "Key used to reload mod config file."); anisotropicFiltering = ((BaseUnityPlugin)this).Config.Bind("General", "AnisotropicFiltering", 2, "Set Anisotropic Filtering. 0 - Disabled, 1 - Enabled, 2 - Forced"); masterTextureLimit = ((BaseUnityPlugin)this).Config.Bind("General", "MasterTextureLimit", 0, "A texture size limit applied to all textures. 1 will halve texture size, 2 will quarter it, and so on. 0 disables this setting."); maxQueuedFrames = ((BaseUnityPlugin)this).Config.Bind("General", "MaxQueuedFrames", 2, "Increasing it can smooth the fps a little, but can introduce input lag. Ignored when using Vulkan"); particleRaycastBudget = ((BaseUnityPlugin)this).Config.Bind("General", "ParticleRaycastBudget", 4096, "Budget for how many ray casts can be performed per frame for approximate collision testing."); pixelLightCount = ((BaseUnityPlugin)this).Config.Bind("General", "PixelLightCount", 8, "The maximum number of pixel lights that should affect any object."); realtimeReflectionProbes = ((BaseUnityPlugin)this).Config.Bind("General", "RealtimeReflectionProbes", true, "Enables realtime reflection probes. If disabled, there will be no reflections in the game."); skinWeights = ((BaseUnityPlugin)this).Config.Bind("General", "SkinWeights", 2, "The maximum number of bone weights that can affect a vertex, for all skinned meshes in the project. 0 - One bone, 1 - Two bones, 2 - Four bones, 3 - Unlimited"); softParticles = ((BaseUnityPlugin)this).Config.Bind("General", "SoftParticles", true, "Whether soft blending should be used for particles"); softVegetation = ((BaseUnityPlugin)this).Config.Bind("General", "SoftVegetation", true, "If enabled, vegetation will have smoothed edges; if disabled all plants will have hard edges but are rendered roughly twice as fast."); lodBias = ((BaseUnityPlugin)this).Config.Bind("General", "LodBias", 5f, "Global multiplier for the LOD's switching distance. A larger value leads to a longer view distance before a lower resolution LOD is picked."); vSyncCount = ((BaseUnityPlugin)this).Config.Bind("General", "vSyncCount", 0, "Set if vSync should be used. 0 is disabled and 1 is enabled. You also can use 2, 3 or 4 to enable vSync but cut the max FPS."); maxFps = ((BaseUnityPlugin)this).Config.Bind("General", "MaxFPS", -1, "Set the target fps. Use -1 to set the FPS based on screen refresh rate. This setting only works if vSyncCount is 0."); shadowResolution = ((BaseUnityPlugin)this).Config.Bind("Shadows", "ShadowResolution", 2, "0 - Low, 1 - Medium, 2 - High, 3 - VeryHigh"); shadowCascades = ((BaseUnityPlugin)this).Config.Bind("Shadows", "ShadowCascades", 4, "Number of cascades to use for directional light shadows."); shadowDistance = ((BaseUnityPlugin)this).Config.Bind("Shadows", "ShadowDistance", 150f, "Shadow drawing distance."); shadows = ((BaseUnityPlugin)this).Config.Bind("Shadows", "Shadows", 1, "Shadow quality: 0 - Disabled, 1 - Only hard shadows, 2 - All"); disablePostProcessing = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "DisablePostProcessing", false, "Disable all post-processing effects. (Includes SSAO and antialiasing)"); fog = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "Fog", true, ""); sunShaftsResolution = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "SunShaftsResolution", 1, "Changes SunShafts resolution. 0 - Low, 1 - Normal, 2 - High"); sunShaftsScreenBlendMode = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "SunShaftsScreenBlendMode", 0, "Changes SunShafts blending method. 0 - Screen, 1 - Add (fastest)"); bloomAntiFlicker = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "BloomAntiFlicker", true, "Reduces flashing noise with an additional filter"); SSAOdownSampling = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "AOdownSampling", false, "Reduces the effect quality to gain some performance"); SSAOfarDistance = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "AOfarDistance", 150f, "How far the effect is applied in the screen"); SSAOsampleCount = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "AOsampleCount", 10, "Lowest = 3, Low = 6, Medium = 10, High = 16"); SSAOhighPrecision = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "AOhighPrecision", false, "Increase effect quality at cost of performance"); AAmethod = ((BaseUnityPlugin)this).Config.Bind("PostProcessing", "AA_Method", 1, "Fxaa - 0, Taa - 1"); bloomIntensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "BloomIntensity", 0.3f, "Strength of the Bloom filter"); bloomRadious = ((BaseUnityPlugin)this).Config.Bind("Flavor", "BloomRadious", 5f, "Changes extent of bloom veiling effects"); lensDirtIntensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "LensDirtIntensity", 10.4f, "Amount of bloom lens dirtiness"); sunShaftsIntensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "SunShaftsIntensity", 1f, "The brightness of the sun shafts"); gammaCorrection = ((BaseUnityPlugin)this).Config.Bind("Flavor", "GammaCorrection", new Color(1f, 1f, 1f, 0f), "Hexadecimal color to apply over screen. Format RRGGBBAA, with AA being the intensity."); SSAOintensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "AOintensity", 1f, "Adjust the degree of darkness Ambient Occlusion produces."); SSAOambientOnly = ((BaseUnityPlugin)this).Config.Bind("Flavor", "AOambientOnly", false, "Make the Ambient Occlusion effect only affect ambient lighting."); CAintensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "ChromaticAberrationIntensity", 0.15f, "Strength of chromatic aberrations"); fogColor = ((BaseUnityPlugin)this).Config.Bind("Flavor", "FogColor", new Color(0.487f, 0.57f, 0.669f, 1f), "The color of the fog."); fogDensity = ((BaseUnityPlugin)this).Config.Bind("Flavor", "FogDensity", 0.1f, "The density of the exponential fog."); fogStartDistance = ((BaseUnityPlugin)this).Config.Bind("Flavor", "FogStartDistance", 300f, "The starting distance of linear fog."); fogEndDistance = ((BaseUnityPlugin)this).Config.Bind("Flavor", "FogEndDistance", 900f, "The ending distance of linear fog."); fogMode = ((BaseUnityPlugin)this).Config.Bind("Flavor", "FogMode", 2, "1 - Linear, 2 - Exponential, 3 - ExponentialSquared"); sunShaftsMaxRadius = ((BaseUnityPlugin)this).Config.Bind("Advanced", "SunShaftsMaxRadius", 0.4f, "How far the sun shafts go"); sunShaftsBlurRadius = ((BaseUnityPlugin)this).Config.Bind("Advanced", "SunShaftsBlurRadius", 3f, "The radius over which pixel colours are combined during blurring."); sunShaftsRadialBlurIterations = ((BaseUnityPlugin)this).Config.Bind("Advanced", "SunShaftsRadialBlurIterations", 3, "Increase to get smoother blurring at performance cost or decrease to get a fast and sharper effect"); bloomSoftKnee = ((BaseUnityPlugin)this).Config.Bind("Advanced", "BloomSoftKnee", 0.7f, "Makes transition between under/over-threshold gradual (0 = hard threshold, 1 = soft threshold)"); MBframeBlending = ((BaseUnityPlugin)this).Config.Bind("Advanced", "MotionBlurFrameBlending", 0f, ""); MBsampleCount = ((BaseUnityPlugin)this).Config.Bind("Advanced", "MotionBlurSampleCount", 10, "Set the value for the amount of sample points. Less is faster, more is smoother"); MBshutterAngle = ((BaseUnityPlugin)this).Config.Bind("Advanced", "MotionBlurShutterAngle", 150f, "Set the angle of the rotary shutter. Larger values give longer exposure and a stronger blur effect."); } } [HarmonyPatch] public static class PostProcessing { private static PostProcessingBehaviour postProcessingBehaviour; private static CameraEffects cameraEffects; public static void OnReload() { SetBloom(); SetSunShafts(cameraEffects); SetSSAO(); SetMotionBlur(); SetAntiAliasing(); SetCA(); PostApplySettings(); } [HarmonyPatch(typeof(CameraEffects), "Awake")] [HarmonyPrefix] private static void Awake(CameraEffects __instance, PostProcessingBehaviour ___m_postProcessing) { cameraEffects = __instance; postProcessingBehaviour = ___m_postProcessing ?? ((Component)__instance).GetComponent(); } [HarmonyPatch(typeof(CameraEffects), "ApplySettings")] [HarmonyPostfix] private static void PostApplySettings() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.colorGrading != null) { Settings settings = postProcessingBehaviour.profile.colorGrading.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----Misc----"); Debug.Log((object)$"GammaCorrection: {settings.colorWheels.linear.gamma} to {Main.gammaCorrection.Value}"); } settings.colorWheels.linear.gamma = Main.gammaCorrection.Value; postProcessingBehaviour.profile.colorGrading.settings = settings; ApplyFogSettings(); ((Behaviour)postProcessingBehaviour).enabled = !Main.disablePostProcessing.Value; } } private static void ApplyFogSettings() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)postProcessingBehaviour == (Object)null || (Object)(object)postProcessingBehaviour.profile == (Object)null) { return; } Scene activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name == "start")) { if (Main.printValues.Value) { Debug.Log((object)$"FogColor: {RenderSettings.fogColor} to {Main.fogColor.Value}"); Debug.Log((object)$"FogDensity: {RenderSettings.fogDensity} to {Main.fogDensity.Value}"); Debug.Log((object)$"FogStartDistance: {RenderSettings.fogStartDistance} to {Main.fogStartDistance.Value}"); Debug.Log((object)$"FogEndDistance: {RenderSettings.fogEndDistance} to {Main.fogEndDistance.Value}"); Debug.Log((object)$"FogMode: {RenderSettings.fogMode} to {(object)(FogMode)Main.fogMode.Value}"); Debug.Log((object)$"Fog: {((PostProcessingModel)postProcessingBehaviour.profile.fog).enabled} to {Main.fog.Value}"); } RenderSettings.fogColor = Main.fogColor.Value; RenderSettings.fogDensity = Main.fogDensity.Value; RenderSettings.fogStartDistance = Main.fogStartDistance.Value; RenderSettings.fogEndDistance = Main.fogEndDistance.Value; RenderSettings.fogMode = (FogMode)Main.fogMode.Value; ((PostProcessingModel)postProcessingBehaviour.profile.fog).enabled = Main.fog.Value; } } [HarmonyPatch(typeof(CameraEffects), "SetSunShafts", new Type[] { typeof(bool) })] [HarmonyPrefix] private static void SetSunShafts(CameraEffects __instance) { //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance != (Object)null) { cameraEffects = __instance; } if ((Object)(object)cameraEffects == (Object)null) { return; } SunShafts component = ((Component)cameraEffects).GetComponent(); if (!((Object)(object)component == (Object)null)) { if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----SunShafts settings----"); Debug.Log((object)$"SunShaftsResolution: {component.resolution} to {(object)(SunShaftsResolution)Main.sunShaftsResolution.Value}"); Debug.Log((object)$"SunShaftsScreenBlendMode: {component.screenBlendMode} to {(object)(ShaftsScreenBlendMode)Main.sunShaftsScreenBlendMode.Value}"); Debug.Log((object)$"SunShaftsMaxRadius: {component.maxRadius} to {Main.sunShaftsMaxRadius.Value}"); Debug.Log((object)$"SunShaftsBlurRadius: {component.sunShaftBlurRadius} to {Main.sunShaftsBlurRadius.Value}"); Debug.Log((object)$"SunShaftsBlurIterations: {component.radialBlurIterations} to {Main.sunShaftsRadialBlurIterations.Value}"); Debug.Log((object)$"SunShaftsIntensity: {component.sunShaftIntensity} to {Main.sunShaftsIntensity.Value}"); } component.resolution = (SunShaftsResolution)Main.sunShaftsResolution.Value; component.screenBlendMode = (ShaftsScreenBlendMode)Main.sunShaftsScreenBlendMode.Value; component.maxRadius = Main.sunShaftsMaxRadius.Value; component.sunShaftBlurRadius = Main.sunShaftsBlurRadius.Value; component.radialBlurIterations = Main.sunShaftsRadialBlurIterations.Value; component.sunShaftIntensity = Main.sunShaftsIntensity.Value; } } [HarmonyPatch(typeof(CameraEffects), "SetBloom", new Type[] { typeof(bool) })] [HarmonyPrefix] private static void SetBloom() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.bloom != null) { Settings settings = postProcessingBehaviour.profile.bloom.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----Bloom settings----"); Debug.Log((object)$"BloomIntensity: {settings.bloom.intensity} to {Main.bloomIntensity.Value}"); Debug.Log((object)$"BloomAntiFlicker: {settings.bloom.antiFlicker} to {Main.bloomAntiFlicker.Value}"); Debug.Log((object)$"BloomRadious: {settings.bloom.radius} to {Main.bloomRadious.Value}"); Debug.Log((object)$"BloomSoftKnee: {settings.bloom.softKnee} to {Main.bloomSoftKnee.Value}"); Debug.Log((object)$"LensDirtIntensity: {settings.lensDirt.intensity} to {Main.lensDirtIntensity.Value}"); } settings.bloom.intensity = Main.bloomIntensity.Value; settings.bloom.antiFlicker = Main.bloomAntiFlicker.Value; settings.bloom.radius = Main.bloomRadious.Value; settings.bloom.softKnee = Main.bloomSoftKnee.Value; settings.lensDirt.intensity = Main.lensDirtIntensity.Value; postProcessingBehaviour.profile.bloom.settings = settings; } } [HarmonyPatch(typeof(CameraEffects), "SetSSAO", new Type[] { typeof(int) })] [HarmonyPostfix] private static void SetSSAO() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.ambientOcclusion != null) { Settings settings = postProcessingBehaviour.profile.ambientOcclusion.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----Ambient Occlusion settings----"); Debug.Log((object)$"SSAOintensity: {settings.intensity} to {Main.SSAOintensity.Value}"); Debug.Log((object)$"SSAOhighPrecision: {settings.highPrecision} to {Main.SSAOhighPrecision.Value}"); Debug.Log((object)$"SSAOambientOnly: {settings.ambientOnly} to {Main.SSAOambientOnly.Value}"); Debug.Log((object)$"SSAOdownSampling: {settings.downsampling} to {Main.SSAOdownSampling.Value}"); Debug.Log((object)$"SSAOfarDistance: {settings.farDistance} to {Main.SSAOfarDistance.Value}"); Debug.Log((object)$"SSAOsampleCount: {settings.sampleCount} to {(object)(SampleCount)Main.SSAOsampleCount.Value}"); } settings.intensity = Main.SSAOintensity.Value; settings.highPrecision = Main.SSAOhighPrecision.Value; settings.ambientOnly = Main.SSAOambientOnly.Value; settings.downsampling = Main.SSAOdownSampling.Value; settings.farDistance = Main.SSAOfarDistance.Value; settings.sampleCount = (SampleCount)Main.SSAOsampleCount.Value; postProcessingBehaviour.profile.ambientOcclusion.settings = settings; } } [HarmonyPatch(typeof(CameraEffects), "SetMotionBlur", new Type[] { typeof(bool) })] [HarmonyPostfix] private static void SetMotionBlur() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.motionBlur != null) { Settings settings = postProcessingBehaviour.profile.motionBlur.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----MotionBlur settings----"); Debug.Log((object)$"FrameBlending: {settings.frameBlending} to {Main.MBframeBlending.Value}"); Debug.Log((object)$"SampleCount: {settings.sampleCount} to {Main.MBsampleCount.Value}"); Debug.Log((object)$"ShutterAngle: {settings.shutterAngle} to {Main.MBshutterAngle.Value}"); } settings.frameBlending = Main.MBframeBlending.Value; settings.sampleCount = Main.MBsampleCount.Value; settings.shutterAngle = Main.MBshutterAngle.Value; postProcessingBehaviour.profile.motionBlur.settings = settings; } } [HarmonyPatch(typeof(CameraEffects), "SetAntiAliasing", new Type[] { typeof(bool) })] [HarmonyPostfix] private static void SetAntiAliasing() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.antialiasing != null) { Settings settings = postProcessingBehaviour.profile.antialiasing.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----AntiAliasing settings----"); Debug.Log((object)$"Method: {settings.method} to {(object)(Method)Main.AAmethod.Value}"); } settings.method = (Method)Main.AAmethod.Value; postProcessingBehaviour.profile.antialiasing.settings = settings; } } [HarmonyPatch(typeof(CameraEffects), "SetCA", new Type[] { typeof(bool) })] [HarmonyPostfix] private static void SetCA() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)postProcessingBehaviour == (Object)null) && !((Object)(object)postProcessingBehaviour.profile == (Object)null) && postProcessingBehaviour.profile.chromaticAberration != null) { Settings settings = postProcessingBehaviour.profile.chromaticAberration.settings; if (Main.printValues.Value) { Debug.Log((object)"[GraphicsConfigPlus] ----ChromaticAberration settings----"); Debug.Log((object)$"Intensity: {settings.intensity} to {Main.CAintensity.Value}"); } settings.intensity = Main.CAintensity.Value; postProcessingBehaviour.profile.chromaticAberration.settings = settings; } } }