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;
}
}
}