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