Decompiled source of ShaderMod v1.3.0

ShaderMod.dll

Decompiled a day ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyCompany("ShaderMod")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ShaderMod")]
[assembly: AssemblyTitle("ShaderMod")]
[assembly: AssemblyVersion("1.0.0.0")]
[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;
		}
	}
}
[BepInPlugin("com.liamgaming.shadermod", "ShaderMod", "1.3.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class ShaderModPlugin : BaseUnityPlugin
{
	private static GameObject filterCanvas;

	private static Image filterImage;

	private ConfigEntry<string> activeFilter;

	private ConfigEntry<KeyCode> cycleFilterKey;

	private readonly string[] filters = new string[7] { "NONE", "VAPORWAVE", "MATRIX", "GOLD", "TOXIC", "SEPIA", "NOIR" };

	private void Awake()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Expected O, but got Unknown
		ModRegistry.Register(new ModEntry
		{
			ModName = "ShaderMod",
			ModType = ((object)this).GetType()
		});
		activeFilter = ((BaseUnityPlugin)this).Config.Bind<string>("General", "Active Filter", "NONE", "Active visual screen filter. Options: NONE, VAPORWAVE, MATRIX, GOLD, TOXIC, SEPIA, NOIR.");
		cycleFilterKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Hotkeys", "Cycle Filter Hotkey", (KeyCode)288, "Hotkey to cycle through screen filters.");
		activeFilter.SettingChanged += delegate
		{
			ApplyFilter();
		};
	}

	private void Start()
	{
		EnsureFilterUI();
		ApplyFilter();
	}

	private void Update()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		if (InputHelper.GetKeyDown(cycleFilterKey.Value))
		{
			CycleFilter();
		}
	}

	private void CycleFilter()
	{
		int num = Array.IndexOf(filters, activeFilter.Value.ToUpper());
		if (num == -1)
		{
			num = 0;
		}
		int num2 = (num + 1) % filters.Length;
		activeFilter.Value = filters[num2];
	}

	private void ApplyFilter()
	{
		//IL_0182: Unknown result type (might be due to invalid IL or missing references)
		//IL_0256: Unknown result type (might be due to invalid IL or missing references)
		//IL_0221: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0288: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b7: 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)
		if ((Object)(object)filterImage == (Object)null)
		{
			EnsureFilterUI();
		}
		if (!((Object)(object)filterImage == (Object)null))
		{
			string text = activeFilter.Value.ToUpper();
			switch (text)
			{
			case "NONE":
				((Graphic)filterImage).color = Color.clear;
				filterCanvas.SetActive(false);
				break;
			case "VAPORWAVE":
				((Graphic)filterImage).color = new Color(0.9f, 0.1f, 0.6f, 0.15f);
				filterCanvas.SetActive(true);
				break;
			case "MATRIX":
				((Graphic)filterImage).color = new Color(0f, 1f, 0.2f, 0.12f);
				filterCanvas.SetActive(true);
				break;
			case "GOLD":
				((Graphic)filterImage).color = new Color(1f, 0.7f, 0f, 0.12f);
				filterCanvas.SetActive(true);
				break;
			case "TOXIC":
				((Graphic)filterImage).color = new Color(0.7f, 1f, 0f, 0.14f);
				filterCanvas.SetActive(true);
				break;
			case "SEPIA":
				((Graphic)filterImage).color = new Color(0.45f, 0.32f, 0.15f, 0.22f);
				filterCanvas.SetActive(true);
				break;
			case "NOIR":
				((Graphic)filterImage).color = new Color(0.02f, 0.02f, 0.04f, 0.45f);
				filterCanvas.SetActive(true);
				break;
			default:
				((Graphic)filterImage).color = Color.clear;
				filterCanvas.SetActive(false);
				break;
			}
			Debug.Log((object)("[ShaderMod] Applied screen filter: " + text));
		}
	}

	private void EnsureFilterUI()
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Expected O, but got Unknown
		//IL_006e: 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_0098: Expected O, but got Unknown
		//IL_00bf: 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_00ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0102: Unknown result type (might be due to invalid IL or missing references)
		if (!((Object)(object)filterCanvas != (Object)null))
		{
			filterCanvas = new GameObject("ShaderFilterCanvas");
			Object.DontDestroyOnLoad((Object)(object)filterCanvas);
			Canvas val = filterCanvas.AddComponent<Canvas>();
			val.renderMode = (RenderMode)0;
			val.sortingOrder = 9998;
			CanvasScaler val2 = filterCanvas.AddComponent<CanvasScaler>();
			val2.uiScaleMode = (ScaleMode)1;
			val2.referenceResolution = new Vector2(1920f, 1080f);
			val2.screenMatchMode = (ScreenMatchMode)0;
			val2.matchWidthOrHeight = 0.5f;
			GameObject val3 = new GameObject("FilterImage");
			val3.transform.SetParent(filterCanvas.transform, false);
			filterImage = val3.AddComponent<Image>();
			((Graphic)filterImage).color = Color.clear;
			((Graphic)filterImage).raycastTarget = false;
			RectTransform component = val3.GetComponent<RectTransform>();
			component.anchorMin = Vector2.zero;
			component.anchorMax = Vector2.one;
			component.sizeDelta = Vector2.zero;
			component.anchoredPosition = Vector2.zero;
		}
	}
}
public static class InputHelper
{
	public static bool GetKeyDown(KeyCode key)
	{
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			if (Keyboard.current != null)
			{
				Key inputSystemKey = GetInputSystemKey(key);
				if ((int)inputSystemKey != 0 && ((ButtonControl)Keyboard.current[inputSystemKey]).wasPressedThisFrame)
				{
					return true;
				}
			}
		}
		catch
		{
		}
		try
		{
			if (Input.GetKeyDown(key))
			{
				return true;
			}
		}
		catch
		{
		}
		return false;
	}

	public static bool GetKey(KeyCode key)
	{
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			if (Keyboard.current != null)
			{
				Key inputSystemKey = GetInputSystemKey(key);
				if ((int)inputSystemKey != 0 && ((ButtonControl)Keyboard.current[inputSystemKey]).isPressed)
				{
					return true;
				}
			}
		}
		catch
		{
		}
		try
		{
			if (Input.GetKey(key))
			{
				return true;
			}
		}
		catch
		{
		}
		return false;
	}

	private static Key GetInputSystemKey(KeyCode key)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_0004: Unknown result type (might be due to invalid IL or missing references)
		//IL_0005: Unknown result type (might be due to invalid IL or missing references)
		//IL_0008: Invalid comparison between Unknown and I4
		//IL_00b9: 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_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Invalid comparison between Unknown and I4
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0065: Expected I4, but got Unknown
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_00af: 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_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: 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_0096: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: 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)
		if ((int)key != 45)
		{
			if ((int)key != 61)
			{
				return (Key)((key - 278) switch
				{
					4 => 94, 
					5 => 95, 
					6 => 96, 
					7 => 97, 
					8 => 98, 
					9 => 99, 
					10 => 100, 
					11 => 101, 
					12 => 102, 
					13 => 103, 
					14 => 104, 
					15 => 105, 
					0 => 68, 
					2 => 67, 
					3 => 66, 
					_ => 0, 
				});
			}
			return (Key)14;
		}
		return (Key)13;
	}
}