Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of BetterUI v1.1.0
BetterUI.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using BetterUI.Patches; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("BetterUI")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("BetterUI")] [assembly: AssemblyCopyright("Copyright © LessonLethal 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("de27b4d1-820d-4505-a953-6001420281e4")] [assembly: AssemblyFileVersion("1.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.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; } } } namespace BetterUI { [BepInPlugin("LessonLethal.BetterUI", "BetterUI", "1.1.0")] public class BetterUIBase : BaseUnityPlugin { internal const string Name = "BetterUI"; internal const string GUID = "LessonLethal.BetterUI"; internal const string Version = "1.1.0"; private readonly Harmony harmony = new Harmony("LessonLethal.BetterUI"); private static BetterUIBase Instance; private static ManualLogSource mls; public void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } ConfigCtrl.InitConfig(((BaseUnityPlugin)this).Config); CreateCustomLogger(); Log("BetterUI: v1.1.0 HAS AWAKENED FROM A DEEP SLEEP RAWR!"); if (ConfigCtrl.fpsEnabled.Value) { harmony.PatchAll(typeof(FpsCtrl)); } if (ConfigCtrl.hudEnabled.Value) { harmony.PatchAll(typeof(HudCtrl)); } if (ConfigCtrl.clockEnabled.Value) { harmony.PatchAll(typeof(ClockCtrl)); } if (ConfigCtrl.autoFadeChat.Value) { harmony.PatchAll(typeof(ChatCtrl)); } if (ConfigCtrl.realTimeClock.Value) { harmony.PatchAll(typeof(TimeCtrl)); } } private void OnGUI() { if (ConfigCtrl.fpsEnabled.Value) { FpsCtrl.FpsProcessor(); } } private void Update() { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) if (ConfigCtrl.fpsEnabled.Value) { FpsCtrl.FpsProcessorRelay(); } if (ConfigCtrl.frameRateOverride.Value) { if (Application.targetFrameRate != 500) { Application.targetFrameRate = 500; } if (QualitySettings.vSyncCount != 0) { QualitySettings.vSyncCount = 0; } } if (ConfigCtrl.fpsEnabled.Value) { KeyboardShortcut value = ConfigCtrl.fpsHotkey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { FpsCtrl.state = !FpsCtrl.state; } } if (ConfigCtrl.hudEnabled.Value) { KeyboardShortcut value2 = ConfigCtrl.hudHotkey.Value; if (((KeyboardShortcut)(ref value2)).IsDown()) { HudCtrl.HudToggle(); } } } private void Start() { if (ConfigCtrl.frameRateOverride.Value) { Application.targetFrameRate = 500; QualitySettings.vSyncCount = 0; } } private void CreateCustomLogger() { try { mls = Logger.CreateLogSource("LessonLethal.BetterUI"); } catch { mls = ((BaseUnityPlugin)this).Logger; } } public static void Log(string message) { mls.LogMessage((object)message); } } internal static class ConfigCtrl { internal static ConfigEntry<bool> hudEnabled; internal static ConfigEntry<KeyboardShortcut> hudHotkey; internal static ConfigEntry<bool> fpsEnabled; internal static ConfigEntry<KeyboardShortcut> fpsHotkey; internal static ConfigEntry<int> fpsSize; internal static ConfigEntry<string> fpsColorStr; internal static Color fpsColor; internal static ConfigEntry<bool> clockEnabled; internal static ConfigEntry<KeyboardShortcut> clockHotkey; internal static ConfigEntry<float> clockInsideVis; internal static ConfigEntry<bool> realTimeClock; internal static ConfigEntry<bool> autoFadeChat; internal static ConfigEntry<bool> frameRateOverride; public static void InitConfig(ConfigFile config) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) hudEnabled = config.Bind<bool>("1_HUD", "Enable_HUD", true, "Enable the HUD Hotkey"); hudHotkey = config.Bind<KeyboardShortcut>("1_HUD", "HUD_Hotkey", new KeyboardShortcut((KeyCode)263, Array.Empty<KeyCode>()), "Hotkey to toggle the visibility of the HUD"); fpsEnabled = config.Bind<bool>("2_FPS", "Enable_FPS", true, "Enable the FPS Hotkey"); fpsHotkey = config.Bind<KeyboardShortcut>("2_FPS", "FPS_Hotkey", new KeyboardShortcut((KeyCode)264, Array.Empty<KeyCode>()), "Hotkey to toggle the visibility of the FPS counter (hidden by default)"); fpsSize = config.Bind<int>("2_FPS", "FPS_Font_Size", 13, "Change the FPS font size"); fpsColorStr = config.Bind<string>("2_FPS", "FPS_Font_Color", "#FFFFFF", "Change the FPS font color (HEX Code)"); ColorUtility.TryParseHtmlString(fpsColorStr.Value, ref fpsColor); clockEnabled = config.Bind<bool>("3_Clock", "Enable_Clock", true, "Enable the Clock Hotkey"); clockHotkey = config.Bind<KeyboardShortcut>("3_Clock", "Clock_Hotkey", new KeyboardShortcut((KeyCode)265, Array.Empty<KeyCode>()), "Hotkey to toggle the visibility of the clock when you're inside the ship or a building (hidden by default)"); clockInsideVis = config.Bind<float>("3_Clock", "Clock_Inside_Visibility", 0.3f, "Visibility of the clock when inside the ship or a building"); realTimeClock = config.Bind<bool>("3_Clock", "Real_Time_Clock", false, "Smooth the speed of time on the clock (appearance only)"); autoFadeChat = config.Bind<bool>("4_CHAT", "Auto_Fade_Chat", true, "Hides the chat box when not being used"); frameRateOverride = config.Bind<bool>("5_EXPERIMENTAL", "Frame_Rate_Override", false, "Set target frame rate to 500 and turn off vSync"); } } public static class PluginInfo { public const string GUID = "LessonLethal.BetterUI"; public const string AUTHOR = "LessonLethal"; public const string NAME = "BetterUI"; public const string VERSION = "1.1.0"; } } namespace BetterUI.Patches { [HarmonyPatch(typeof(HUDManager))] internal class ChatCtrl { [HarmonyPatch("AddChatMessage")] [HarmonyPatch("OpenMenu_performed")] [HarmonyPatch("SubmitChat_performed")] [HarmonyPostfix] public static void FadeToNothing(ref HUDManager __instance) { __instance.PingHUDElement(__instance.Chat, 5f, 1f, 0f); } } [HarmonyPatch(typeof(HUDManager))] internal static class ClockCtrl { private static bool state; [HarmonyPrefix] [HarmonyPatch("SetClockVisible")] public static bool PrefixVisible(ref HUDManager __instance) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown KeyboardShortcut value = ConfigCtrl.clockHotkey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { state = !state; } GameNetworkManager instance = GameNetworkManager.Instance; PlayerControllerB val = null; if ((Object)(object)instance != (Object)null) { val = instance.localPlayerController; } if ((Object)val != (Object)null && (val.isInHangarShipRoom || val.isInsideFactory)) { __instance.Clock.targetAlpha = (state ? ConfigCtrl.clockInsideVis.Value : 0f); return false; } return true; } } internal static class FpsCtrl { public static bool state; public static float dTime; public static void FpsProcessor() { Mathf.RoundToInt(1f / dTime); int num = Mathf.RoundToInt(1f / Time.deltaTime); if (state) { DrawFPS("{0}", num); } } public static void FpsProcessorRelay() { dTime += (Time.unscaledDeltaTime - dTime) * 0.1f; } public static void DrawFPS(string format, params object[] args) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown string text = string.Format(format, args); GUIStyle val = new GUIStyle(GUI.skin.label); val.fontSize = ConfigCtrl.fpsSize.Value; val.normal.textColor = ConfigCtrl.fpsColor; val.fontStyle = (FontStyle)0; GUI.Label(new Rect((float)Screen.width - 30f, 5f, 30f, 30f), new GUIContent(text), val); } } internal class HudCtrl { private static bool state; public static void HudToggle() { state = !state; HUDManager.Instance.HideHUD(state); } } [HarmonyPatch(typeof(HUDManager))] internal static class TimeCtrl { private static int lTime = -1; [HarmonyPostfix] [HarmonyPatch(typeof(TimeOfDay))] [HarmonyPatch("MoveTimeOfDay")] public static void PostfixMoveTimeOfDay(ref TimeOfDay __instance, ref float ___changeHUDTimeInterval) { int num = (int)(__instance.normalizedTimeOfDay * (60f * (float)__instance.numberOfHours)); if (num != lTime) { lTime = num; HUDManager.Instance.SetClock(__instance.normalizedTimeOfDay, (float)__instance.numberOfHours, true); ___changeHUDTimeInterval = 0f; } } } }