HighDef.dll

Decompiled 2 months ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;

[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: AssemblyVersion("0.0.0.0")]
namespace LCHD;

[BepInPlugin("ChubbzCrew.LCHD", "Lethal Company High Definition", "1.1.5")]
[BepInProcess("Lethal Company.exe")]
public class Initializer : BaseUnityPlugin
{
	public void OnDestroy()
	{
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Expected O, but got Unknown
		GameObject val = new GameObject("RemoverObject");
		Object.DontDestroyOnLoad((Object)(object)val);
		val.AddComponent<Remover>();
	}
}
public class Remover : MonoBehaviour
{
	private bool jobDone = false;

	private bool alreadyWarned = false;

	public HUDManager hud;

	private void Start()
	{
		Object.DontDestroyOnLoad((Object)(object)this);
	}

	private void Update()
	{
		if ((Object)(object)Object.FindObjectOfType<HUDManager>() != (Object)null)
		{
			DisableEffects();
		}
		else
		{
			jobDone = false;
		}
	}

	private void DisableEffects()
	{
		if (!jobDone)
		{
			DisableRenderTextures();
			jobDone = true;
		}
	}

	private void DisablePostProcesses()
	{
		Debug.Log((object)"Attempting to disable custom pass...");
		CustomPassVolume val = Object.FindObjectOfType<CustomPassVolume>();
		if ((Object)(object)val != (Object)null)
		{
			Debug.Log((object)"Outline volume located");
			((Behaviour)val).enabled = false;
			Debug.Log((object)"Custom pass disabled");
			Transform parent = ((Component)val).transform.parent;
			if (!((Object)(object)parent != (Object)null))
			{
				return;
			}
			Transform child = parent.GetChild(2);
			if ((Object)(object)child != (Object)null)
			{
				MeshRenderer componentInChildren = ((Component)child).GetComponentInChildren<MeshRenderer>();
				if ((Object)(object)componentInChildren != (Object)null)
				{
					Object.Destroy((Object)(object)componentInChildren);
					Debug.Log((object)"Visor renderer destroyed");
				}
				MeshFilter componentInChildren2 = ((Component)child).GetComponentInChildren<MeshFilter>();
				if ((Object)(object)componentInChildren2 != (Object)null)
				{
					Object.Destroy((Object)(object)componentInChildren2);
					Debug.Log((object)"Visor filter destroyed");
				}
			}
		}
		else if (!alreadyWarned)
		{
			Debug.Log((object)"Unable to find outline volume");
			alreadyWarned = true;
		}
	}

	private void DisableRenderTextures()
	{
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		Debug.Log((object)"Attempting to disable render textures...");
		hud = GameObject.Find("PlayersManager / HUDManager").GetComponent<HUDManager>();
		hud.playerScreenTexture = null;
		Camera[] array = Object.FindObjectsOfType<Camera>();
		GameObject val = GameObject.Find("TopLeftCorner");
		Camera[] array2 = array;
		foreach (Camera val2 in array2)
		{
			if ((((Object)((Component)val2).gameObject).name == "MainCamera" || ((Object)((Component)val2).gameObject).name == "SpectateCamera") && (Object)(object)val2.targetTexture != (Object)null)
			{
				val2.targetTexture = null;
				Debug.Log((object)("Disabled render texture for camera: " + ((Object)((Component)val2).gameObject).name));
			}
			if (((Object)((Component)val2).gameObject).name == "UICamera")
			{
				((Component)val2).gameObject.SetActive(false);
				Canvas component = ((Component)((Component)val2).transform.parent.GetChild(1)).gameObject.GetComponent<Canvas>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.renderMode = (RenderMode)0;
				}
			}
		}
		Transform[] componentsInChildren = val.GetComponentsInChildren<Transform>();
		foreach (Transform val3 in componentsInChildren)
		{
			val3.rotation = Quaternion.identity;
		}
		((Component)GameObject.Find("PlayerScreen").transform.parent.parent).gameObject.SetActive(false);
	}

	public void OnDestroy()
	{
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Expected O, but got Unknown
		GameObject val = new GameObject("RemoverObject");
		Object.DontDestroyOnLoad((Object)(object)val);
		val.AddComponent<Remover>();
	}
}