Decompiled source of VerdantFallsReshaded v1.0.3

VerdantReshade.dll

Decompiled 2 months ago
using System;
using System.Collections.Generic;
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 Rewired.ComponentControls.Effects;
using RoR2;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Rendering.PostProcessing;
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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("VerdantReshade")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("VerdantReshade")]
[assembly: AssemblyTitle("VerdantReshade")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: UnverifiableCode]
namespace VerdantReshade;

internal class Hook
{
	internal static void Hooks()
	{
		SceneManager.sceneLoaded += SceneManager_sceneLoaded;
	}

	private static void SceneManager_sceneLoaded(Scene scene, LoadSceneMode sceneMode)
	{
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Expected O, but got Unknown
		//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_010e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0113: Unknown result type (might be due to invalid IL or missing references)
		//IL_0172: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_0196: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
		if (((Scene)(ref scene)).name == "lakes")
		{
			GameObject[] rootGameObjects = ((Scene)(ref scene)).GetRootGameObjects();
			GameObject val = rootGameObjects[2];
			Transform child = val.transform.GetChild(0);
			if (MainPlugin.enableParticles.Value)
			{
				GameObject val2 = Object.Instantiate<GameObject>(Prefabs.particles, child);
				val2.transform.localPosition = new Vector3(10f, 150f, 0f);
			}
			if (MainPlugin.enableLights.Value)
			{
				GameObject val3 = new GameObject("FlowerLight", new Type[1] { typeof(Light) });
				val3.transform.parent = child;
				val3.transform.localPosition = new Vector3(0f, 450f, 0f);
				Light component = val3.GetComponent<Light>();
				component.range = 1000f;
				component.intensity = 0.4f;
				component.color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)243, (byte)213, byte.MaxValue));
			}
			if (MainPlugin.disableBackground.Value)
			{
				((Component)val.transform.GetChild(10)).gameObject.SetActive(false);
			}
			if (MainPlugin.enableParticles.Value)
			{
				Object.Instantiate<GameObject>(Prefabs.particles, new Vector3(80f, 80f, -110f), Quaternion.identity, child).transform.localScale = new Vector3(-6f, 6f, 6f);
				Object.Instantiate<GameObject>(Prefabs.particles, new Vector3(-80f, 80f, -110f), Quaternion.identity, child).transform.localScale = new Vector3(8f, 8f, 8f);
			}
			GameObject val4 = rootGameObjects[15];
			PostProcessVolume componentInChildren = val4.GetComponentInChildren<PostProcessVolume>();
			componentInChildren.profile = Prefabs.profile;
			componentInChildren.sharedProfile = Prefabs.profile;
			componentInChildren.priority = 1f;
			Object.Destroy((Object)(object)((Component)componentInChildren).GetComponent<SetAmbientLight>());
			if (MainPlugin.enableClouds.Value)
			{
				GameObject gameObject = ((Component)val4.transform.GetChild(4)).gameObject;
				RotateAroundAxis val5 = gameObject.AddComponent<RotateAroundAxis>();
				val5.speed = (Speed)1;
				val5.slowRotationSpeed = 1f;
				val5.rotateAroundAxis = (RotationAxis)1;
				((Component)componentInChildren).gameObject.SetActive(false);
				((Component)componentInChildren).gameObject.SetActive(true);
			}
		}
	}
}
[BepInPlugin("com.Dragonyck.VerdantReshade", "VerdantReshade", "1.0.3")]
public class MainPlugin : BaseUnityPlugin
{
	public const string MODUID = "com.Dragonyck.VerdantReshade";

	public const string MODNAME = "VerdantReshade";

	public const string VERSION = "1.0.3";

	internal static ConfigEntry<bool> disableBackground;

	internal static ConfigEntry<bool> enableLights;

	internal static ConfigEntry<bool> enableClouds;

	internal static ConfigEntry<bool> enableParticles;

	private void Awake()
	{
		disableBackground = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Disable Background Terrain", true, "Disables background planes.");
		enableLights = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enable Big Flower Subtle Light", true, "Enables lights around the beeg flower.");
		enableClouds = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enable Cloud Improvements", true, "Increased Opacity and move slowly.");
		enableParticles = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enable Flower Particles", true, "The little fairies flying around it.");
		Prefabs.CreatePrefabs();
		Hook.Hooks();
	}
}
internal class Prefabs
{
	internal static PostProcessProfile profile;

	internal static GameObject particles;

	internal static T Load<T>(string path)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		return Addressables.LoadAssetAsync<T>((object)path).WaitForCompletion();
	}

	internal static void CreatePrefabs()
	{
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Expected O, but got Unknown
		//IL_008b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0246: Expected O, but got Unknown
		//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02af: Expected O, but got Unknown
		//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0335: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		PostProcessProfile val = Load<PostProcessProfile>("RoR2/DLC2/lakes/ppSceneTL.asset");
		profile = Object.Instantiate<PostProcessProfile>(Load<PostProcessProfile>("RoR2/Base/title/PostProcessing/ppLocalMagmaWorm.asset"));
		((Object)profile).name = "ppScenePrettyLakes";
		List<PostProcessEffectSettings> settings = profile.settings;
		Bloom val2 = (Bloom)settings[0];
		((ParameterOverride<float>)(object)val2.intensity).value = 1.5f;
		((ParameterOverride)val2.threshold).overrideState = true;
		((ParameterOverride<float>)(object)val2.threshold).value = 0.2f;
		((ParameterOverride<Color>)(object)val2.color).value = Color32.op_Implicit(new Color32((byte)199, (byte)191, (byte)125, byte.MaxValue));
		ColorGrading val3 = (ColorGrading)settings[1];
		((ParameterOverride)val3.temperature).overrideState = false;
		((ParameterOverride)val3.colorFilter).overrideState = true;
		((ParameterOverride<Color>)(object)val3.colorFilter).value = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)171, (byte)204, byte.MaxValue));
		((ParameterOverride)val3.saturation).overrideState = true;
		((ParameterOverride<float>)(object)val3.saturation).value = 5f;
		((ParameterOverride)val3.contrast).overrideState = true;
		((ParameterOverride<float>)(object)val3.contrast).value = 10f;
		RampFog val4 = ScriptableObject.CreateInstance<RampFog>();
		((PostProcessEffectSettings)val4).active = true;
		((ParameterOverride)((PostProcessEffectSettings)val4).enabled).overrideState = true;
		((ParameterOverride<bool>)(object)((PostProcessEffectSettings)val4).enabled).value = true;
		((ParameterOverride)val4.fogPower).overrideState = false;
		((ParameterOverride)val4.fogZero).overrideState = false;
		((ParameterOverride)val4.fogHeightStart).overrideState = false;
		((ParameterOverride)val4.fogHeightEnd).overrideState = false;
		((ParameterOverride)val4.fogHeightIntensity).overrideState = false;
		((ParameterOverride)val4.fogColorStart).overrideState = false;
		((ParameterOverride)val4.skyboxStrength).overrideState = false;
		((ParameterOverride<Color>)(object)val4.fogColorMid).value = Color32.op_Implicit(new Color32((byte)87, (byte)30, (byte)74, (byte)105));
		((ParameterOverride<Color>)(object)val4.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)61, (byte)28, (byte)53, (byte)234));
		((ParameterOverride<float>)(object)val4.fogIntensity).value = 0.3f;
		if (MainPlugin.enableClouds.Value)
		{
			Load<Material>("RoR2/DLC2/lakes/Assets/matTLCloud.mat").SetFloat("_AlphaBoost", 0.228f);
		}
		Load<Material>("RoR2/DLC2/lakes/Assets/matTLTerrainCliff.mat").SetFloat("_RedChannelSpecularStrength", 0.1f);
		GameObject val5 = new GameObject("dontDestroyOnLoad");
		val5.SetActive(false);
		Object.DontDestroyOnLoad((Object)(object)val5);
		if (MainPlugin.enableParticles.Value)
		{
			particles = Object.Instantiate<GameObject>(((Component)Load<GameObject>("RoR2/Base/Teleporters/Teleporter1.prefab").GetComponentInChildren<ParticleSystem>()).gameObject, val5.transform);
			ParticleSystemRenderer component = particles.GetComponent<ParticleSystemRenderer>();
			((Renderer)component).material = new Material(((Renderer)component).material);
			((Renderer)component).material.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)193, (byte)69, (byte)166, (byte)190)));
			((Renderer)component).material.SetTexture("_MainTex", (Texture)(object)Load<Texture2D>("RoR2/Base/Common/VFX/texOmniHitspark2Mask.png"));
			((Renderer)component).material.SetTexture("_RemapTex", (Texture)(object)Load<Texture2D>("RoR2/Base/Common/ColorRamps/texRampAreaIndicator.png"));
			((Renderer)component).material.DisableKeyword("VERTEXCOLOR");
			ParticleSystem component2 = particles.GetComponent<ParticleSystem>();
			MainModule main = component2.main;
			((MainModule)(ref main)).startSizeMultiplier = 0.1f;
		}
	}
}