Decompiled source of UniversalPause v1.0.0

RoR2UniversalPause.dll

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

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("RoR2UniversalPause")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("RoR2UniversalPause")]
[assembly: AssemblyTitle("RoR2UniversalPause")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace RoR2UniversalPause;

[BepInPlugin("com.custom.universalitempause", "Universal Item Picker Pause", "1.0.0")]
public class UniversalItemPause : BaseUnityPlugin
{
	private bool isPausedByMe;

	private int cursorHiddenFrames;

	private const int BUFFER_MAX = 3;

	public void Awake()
	{
		RoR2Application.onUpdate += delegate
		{
			if (RoR2Application.isInSinglePlayer && (Object)(object)Run.instance != (Object)null)
			{
				if (Cursor.visible)
				{
					if (!isPausedByMe)
					{
						Time.timeScale = 0f;
						isPausedByMe = true;
					}
					cursorHiddenFrames = 0;
				}
				else if (isPausedByMe)
				{
					cursorHiddenFrames++;
					if (cursorHiddenFrames >= 3)
					{
						Time.timeScale = 1f;
						isPausedByMe = false;
						cursorHiddenFrames = 0;
					}
				}
			}
		};
	}
}