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 MapCoordinatesDisplay v0.4.1
MapCoordinateDisplay.dll
Decompiled 5 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using TMPro; using UnityEngine; [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.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+909284c6412e0596c03cb71e2ed44875ed6b17e1")] [assembly: AssemblyVersion("1.0.0.0")] namespace MapCoordinateDisplay; [BepInPlugin("aedenthorn.MapCoordinateDisplay", "Map Coordinate Display", "0.4.1")] public class BepInExPlugin : BaseUnityPlugin { [HarmonyPatch(typeof(Terminal), "InputText")] public static class InputText_Patch { public static bool Prefix(Terminal __instance) { if (!modEnabled.Value) { return true; } string text = ((TMP_InputField)__instance.m_input).text; if (text.ToLower().Equals(typeof(BepInExPlugin).Namespace.ToLower() + " reset")) { ((BaseUnityPlugin)context).Config.Reload(); ((BaseUnityPlugin)context).Config.Save(); Traverse.Create((object)__instance).Method("AddString", new object[1] { text }).GetValue(); Traverse.Create((object)__instance).Method("AddString", new object[1] { ((BaseUnityPlugin)context).Info.Metadata.Name + " config reloaded" }).GetValue(); return false; } return true; } } public static BepInExPlugin context; public Harmony harmony; public static ConfigEntry<bool> modEnabled; public static ConfigEntry<bool> isDebug; public static ConfigEntry<int> nexusID; public static ConfigEntry<bool> showPlayerCoordinates; public static ConfigEntry<bool> showCursorCoordinates; public static ConfigEntry<bool> showCursorCoordinatesFirst; public static ConfigEntry<int> coordFontSize; public static ConfigEntry<bool> coordsUseShadow; public static ConfigEntry<float> clockShadowOffset; public static ConfigEntry<Vector2> coordPosition; public static ConfigEntry<string> titleString; public static ConfigEntry<string> cursorString; public static ConfigEntry<string> playerString; public static ConfigEntry<string> fontName; public static ConfigEntry<Color> playerCoordFontColor; public static ConfigEntry<Color> cursorCoordFontColor; public static ConfigEntry<Color> windowBackgroundColor; public static ConfigEntry<TextAnchor> alignment; public Rect windowRect; public int windowId = 5318008; public Rect coordRect; public Rect doubleSize; public Rect secondRect; public GUIStyle cursorStyle; public GUIStyle playerStyle; public GUIStyle windowStyle; public static string playerPos = ""; public static string cursorPos = ""; public string lastFontName; public Font currentFont; public static void Dbgl(string str = "", bool pref = true) { if (isDebug.Value) { Debug.Log((object)((pref ? (typeof(BepInExPlugin).Namespace + " ") : "") + str)); } } public void Awake() { //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Expected O, but got Unknown context = this; modEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enabled", true, "Enable this mod"); nexusID = ((BaseUnityPlugin)this).Config.Bind<int>("General", "NexusID", 907, "Nexus mod ID for updates"); isDebug = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "IsDebug", false, "Enable debug log"); showPlayerCoordinates = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ShowPlayerCoordinates", true, "Show player coordinates."); showCursorCoordinates = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ShowCursorCoordinates", true, "Show cursor coordinates."); showCursorCoordinatesFirst = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ShowCursorCoordinatesFirst", true, "Show cursor coordinates above player coordinates."); titleString = ((BaseUnityPlugin)this).Config.Bind<string>("Display", "TitleString", "Map Coordinates", "Title string"); cursorString = ((BaseUnityPlugin)this).Config.Bind<string>("Display", "CursorString", "Cursor {0}", "Cursor coordinates text. {0} is replaced by the coordinates."); playerString = ((BaseUnityPlugin)this).Config.Bind<string>("Display", "PlayerString", "Player {0}", "Player coordinates text. {0} is replaced by the coordinates."); coordPosition = ((BaseUnityPlugin)this).Config.Bind<Vector2>("Display", "CoordPosition", new Vector2((float)Screen.width / 2f, 0f), "Coordinates text current screen position (draggable)"); coordFontSize = ((BaseUnityPlugin)this).Config.Bind<int>("Display", "CoordFontSize", 20, "Coordinate font size"); playerCoordFontColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Display", "PlayerCoordFontColor", Color.white, "Player coordinate font color"); cursorCoordFontColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Display", "CursorCoordFontColor", Color.white, "Cursor coordinate font color"); windowBackgroundColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Display", "windowBackgroundColor", Color.clear, "Window background color"); fontName = ((BaseUnityPlugin)this).Config.Bind<string>("Display", "FontName", "AveriaSerifLibre-Bold", "Font name"); alignment = ((BaseUnityPlugin)this).Config.Bind<TextAnchor>("Display", "TextAlignment", (TextAnchor)1, "Text alignment"); coordPosition.SettingChanged += CoordPosition_SettingChanged; windowRect = new Rect(coordPosition.Value, new Vector2(1000f, 100f)); harmony = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID); harmony.PatchAll(); } public void CoordPosition_SettingChanged(object sender, EventArgs e) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) windowRect = new Rect(coordPosition.Value, new Vector2(1000f, 100f)); } public void OnDestroy() { Dbgl("Destroying plugin"); Harmony obj = harmony; if (obj != null) { obj.UnpatchAll((string)null); } } public static Font GetFont(string fontName, int fontSize) { Font[] array = Resources.FindObjectsOfTypeAll<Font>(); Font[] array2 = array; foreach (Font val in array2) { if (((Object)val).name == fontName) { return val; } } return Font.CreateDynamicFontFromOSFont(fontName, fontSize); } public void OnGUI() { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Expected O, but got Unknown //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0432: Unknown result type (might be due to invalid IL or missing references) if (!modEnabled.Value || !Object.op_Implicit((Object)(object)Player.m_localPlayer) || ((!Object.op_Implicit((Object)(object)Hud.instance) || !Traverse.Create((object)Hud.instance).Method("IsVisible", Array.Empty<object>()).GetValue<bool>()) && !Minimap.IsOpen())) { return; } cursorStyle = new GUIStyle { richText = true, fontSize = coordFontSize.Value, alignment = alignment.Value }; cursorStyle.normal.textColor = cursorCoordFontColor.Value; playerStyle = new GUIStyle { richText = true, fontSize = coordFontSize.Value, alignment = alignment.Value }; playerStyle.normal.textColor = playerCoordFontColor.Value; windowStyle = GUI.skin.window; if (lastFontName != fontName.Value) { lastFontName = fontName.Value; Dbgl("new font " + fontName.Value); Font font = GetFont(fontName.Value, 20); if ((Object)(object)font == (Object)null) { Dbgl("new font not found"); } else { currentFont = font; } } if ((Object)(object)currentFont != (Object)null) { GUIStyle obj = cursorStyle; object obj2; if (obj == null) { obj2 = null; } else { Font font2 = obj.font; obj2 = ((font2 != null) ? ((Object)font2).name : null); } if ((string?)obj2 != ((Object)currentFont).name) { Dbgl("setting font " + ((Object)currentFont).name); cursorStyle.font = currentFont; playerStyle.font = currentFont; windowStyle.font = currentFont; } } playerPos = (showPlayerCoordinates.Value ? string.Format(playerString.Value, (object)new Vector3(((Component)Player.m_localPlayer).transform.position.x, ((Component)Player.m_localPlayer).transform.position.z, ((Component)Player.m_localPlayer).transform.position.y)) : ""); if (Minimap.IsOpen() && showCursorCoordinates.Value) { Vector3 value = Traverse.Create((object)Minimap.instance).Method("ScreenToWorldPoint", new object[1] { Input.mousePosition }).GetValue<Vector3>(); cursorPos = string.Format(cursorString.Value, (object)new Vector2(value.x, value.z)); } else { cursorPos = ""; } if (playerPos.Length + cursorPos.Length != 0) { GUI.backgroundColor = windowBackgroundColor.Value; windowRect = GUILayout.Window(windowId, new Rect(((Rect)(ref windowRect)).position, ((Rect)(ref coordRect)).position + ((playerPos.Length > 0 && cursorPos.Length > 0) ? ((Rect)(ref doubleSize)).size : ((Rect)(ref coordRect)).size)), new WindowFunction(WindowBuilder), titleString.Value, windowStyle, Array.Empty<GUILayoutOption>()); if (!Input.GetKey((KeyCode)323) && (((Rect)(ref windowRect)).x != coordPosition.Value.x || ((Rect)(ref windowRect)).y != coordPosition.Value.y)) { coordPosition.Value = new Vector2(((Rect)(ref windowRect)).x, ((Rect)(ref windowRect)).y); } } } public void WindowBuilder(int id) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) if (cursorPos.Length > playerPos.Length) { coordRect = GUILayoutUtility.GetRect(new GUIContent(cursorPos), cursorStyle); } else { coordRect = GUILayoutUtility.GetRect(new GUIContent(playerPos), playerStyle); } doubleSize = new Rect(((Rect)(ref coordRect)).position, new Vector2(((Rect)(ref coordRect)).width, ((Rect)(ref coordRect)).height * 2f)); secondRect = new Rect(((Rect)(ref coordRect)).position + new Vector2(0f, ((Rect)(ref coordRect)).height), ((Rect)(ref coordRect)).size); if (cursorPos.Length > 0 && playerPos.Length > 0) { GUI.DragWindow(doubleSize); if (showCursorCoordinatesFirst.Value) { GUI.Label(coordRect, cursorPos, cursorStyle); GUI.Label(secondRect, playerPos, playerStyle); } else { GUI.Label(coordRect, playerPos, playerStyle); GUI.Label(secondRect, cursorPos, cursorStyle); } } else { GUI.DragWindow(coordRect); if (cursorPos.Length > 0) { GUI.Label(coordRect, cursorPos, cursorStyle); } else if (playerPos.Length > 0) { GUI.Label(coordRect, playerPos, playerStyle); } } } }