Decompiled source of ThinnerMist v1.0.0

plugins\TeflonTed.ThinnerMist.dll

Decompiled 19 hours ago
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 HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: IgnoresAccessChecksTo("assembly_guiutils")]
[assembly: IgnoresAccessChecksTo("assembly_utils")]
[assembly: IgnoresAccessChecksTo("assembly_valheim")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyCompany("TeflonTed.ThinnerMist")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("Teflon Ted's Thinner Mist — lighter Mistlands mist, slightly more visibility")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+aa3557958a7656958068f9c07e5ebb364e91eab7")]
[assembly: AssemblyProduct("TeflonTed.ThinnerMist")]
[assembly: AssemblyTitle("TeflonTed.ThinnerMist")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[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;
		}
	}
}
namespace TeflonTed.ThinnerMist
{
	[BepInPlugin("com.teflonted.valheim.thinnermist", "Teflon Ted's Thinner Mist", "1.0.0")]
	public class Plugin : BaseUnityPlugin
	{
		public const string PluginGuid = "com.teflonted.valheim.thinnermist";

		public const string PluginName = "Teflon Ted's Thinner Mist";

		public const string PluginVersion = "1.0.0";

		private void Awake()
		{
			Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "com.teflonted.valheim.thinnermist");
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Teflon Ted's Thinner Mist 1.0.0 loaded");
		}
	}
	[HarmonyPatch(typeof(ParticleMist), "Update")]
	internal static class ParticleMist_Update_Patch
	{
		private const float EmissionScale = 0.4f;

		private const float MinDistanceScale = 1.35f;

		private const float FogR = 0.45f;

		private const float FogG = 0.45f;

		private const float FogB = 0.5f;

		private const float FogAlpha = 0.25f;

		private const float ParticleSize = 5f;

		private static bool _stored;

		private static bool _psInitialized;

		private static int _localEmission;

		private static int _localEmissionPerUnit;

		private static float _emissionMax;

		private static float _emissionPerUnit;

		private static float _distantEmissionMax;

		private static float _distantThickness;

		private static float _minDistance;

		private static void Prefix(ParticleMist __instance)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Invalid comparison between Unknown and I4
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)__instance == (Object)null || (int)__instance.m_biome != 512)
			{
				return;
			}
			if (!_stored)
			{
				_localEmission = __instance.m_localEmission;
				_localEmissionPerUnit = __instance.m_localEmissionPerUnit;
				_emissionMax = __instance.m_emissionMax;
				_emissionPerUnit = __instance.m_emissionPerUnit;
				_distantEmissionMax = __instance.m_distantEmissionMax;
				_distantThickness = __instance.m_distantThickness;
				_minDistance = __instance.m_minDistance;
				_stored = true;
			}
			__instance.m_localEmission = Mathf.RoundToInt((float)_localEmission * 0.4f);
			__instance.m_localEmissionPerUnit = Mathf.RoundToInt((float)_localEmissionPerUnit * 0.4f);
			__instance.m_emissionMax = _emissionMax * 0.4f;
			__instance.m_emissionPerUnit = _emissionPerUnit * 0.4f;
			__instance.m_distantEmissionMax = _distantEmissionMax * 0.4f;
			__instance.m_distantThickness = _distantThickness * 0.4f;
			__instance.m_minDistance = _minDistance * 1.35f;
			if (!((Object)(object)__instance.m_ps == (Object)null))
			{
				if (!_psInitialized)
				{
					MainModule main = __instance.m_ps.main;
					((MainModule)(ref main)).maxParticles = 2000;
					((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(4f);
					((MainModule)(ref main)).simulationSpeed = 0.75f;
					_psInitialized = true;
				}
				MainModule main2 = __instance.m_ps.main;
				((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(new Color(0.45f, 0.45f, 0.5f, 0.25f));
				((MainModule)(ref main2)).startSize = MinMaxCurve.op_Implicit(5f);
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}