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 BepInEx.Configuration;
using BepInEx.Unity.Mono;
using Eremite;
using QFSW.QC;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")]
[assembly: AssemblyCompany("ConsoleUnlocker")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ConsoleUnlocker")]
[assembly: AssemblyTitle("ConsoleUnlocker")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace ConsoleUnlocker;
[BepInPlugin("com.Skrip.ConsoleUnlocker", "ConsoleUnlocker", "1.0.0.0")]
internal class Loader : BaseUnityPlugin
{
public const string ModName = "ConsoleUnlocker";
public const string Author = "Skrip";
public const string GUID = "com.Skrip.ConsoleUnlocker";
public const string Version = "1.0.0.0";
private static Loader _instance;
private ConfigEntry<KeyCode> toggleConsoleKey;
private GameObject ourObject;
private static QuantumConsole quantumConsole;
private static bool isConsoleOpen;
public static Loader Instance
{
get
{
if ((Object)(object)_instance == (Object)null)
{
_instance = new Loader();
}
return _instance;
}
private set
{
_instance = value;
}
}
public static bool IsConsoleOpen
{
get
{
return isConsoleOpen;
}
set
{
isConsoleOpen = value;
}
}
public static QuantumConsole QuantumConsole
{
get
{
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Expected O, but got Unknown
if ((Object)(object)quantumConsole == (Object)null)
{
quantumConsole = Object.FindObjectOfType<QuantumConsole>();
if ((Object)(object)quantumConsole == (Object)null)
{
if ((Object)(object)Instance.ourObject == (Object)null)
{
Instance.ourObject = new GameObject("QuantumConsoleObject");
}
quantumConsole = Instance.ourObject.AddComponent<QuantumConsole>();
}
quantumConsole.LogToConsole("Console unlocked by Skrip @ Nexus Mods", true);
}
return quantumConsole;
}
set
{
quantumConsole = value;
}
}
private void Awake()
{
toggleConsoleKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Hotkeys", "ToggleConsole", (KeyCode)282, "Key to toggle the console window.");
}
private void Update()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
if (InputHelper.GetKeyDown(toggleConsoleKey.Value))
{
ToggleConsole();
}
if (IsConsoleOpen && !GameMB.IsGameActive)
{
ToggleConsole();
}
if (IsConsoleOpen && !GameMB.TimeScaleService.IsPaused())
{
GameMB.TimeScaleService.Pause(false);
}
if (IsConsoleOpen)
{
QuantumConsole.FocusConsoleInput();
}
}
public static void ToggleConsole()
{
if (!GameMB.IsGameActive && !IsConsoleOpen)
{
Console.WriteLine("Must be in game to toggle console!");
}
else if ((Object)(object)QuantumConsole == (Object)null)
{
Console.WriteLine("Unable to toggle the console!");
}
else if ((Object)(object)QuantumConsole != (Object)null)
{
((Behaviour)QuantumConsole).enabled = !IsConsoleOpen;
((Behaviour)((Component)QuantumConsole).GetComponent<Canvas>()).enabled = !IsConsoleOpen;
QuantumConsole.Toggle();
QuantumConsole.FocusConsoleInput();
IsConsoleOpen = !IsConsoleOpen;
if (IsConsoleOpen)
{
GameMB.TimeScaleService.Pause(false);
MB.InputService.LockInput((object)QuantumConsole);
}
else
{
GameMB.TimeScaleService.Unpause(false);
MB.InputService.ReleaseInput((object)QuantumConsole);
}
}
}
}