From 11db9727a42e71c87eff2ea24d8ced3650fb1944 Mon Sep 17 00:00:00 2001 From: slxdy Date: Mon, 10 Jun 2024 23:57:31 +0200 Subject: [PATCH] Removed references to System.Drawing from ModHandler --- TweaksLauncher.Game/Il2CppHandler.cs | 2 +- TweaksLauncher.Game/Logger.cs | 11 +- TweaksLauncher.Game/MonoHandler.cs | 6 +- .../Il2Cpp/Il2CppEnumeratorWrapper.cs | 3 +- TweaksLauncher.ModHandler/LoadedMod.cs | 6 +- TweaksLauncher.ModHandler/LogColor.cs | 431 ++++++++++++++++++ TweaksLauncher.ModHandler/ModHandler.cs | 43 +- TweaksLauncher.ModHandler/ModLogger.cs | 5 +- 8 files changed, 470 insertions(+), 37 deletions(-) create mode 100644 TweaksLauncher.ModHandler/LogColor.cs diff --git a/TweaksLauncher.Game/Il2CppHandler.cs b/TweaksLauncher.Game/Il2CppHandler.cs index 474e8e0..f64d6de 100644 --- a/TweaksLauncher.Game/Il2CppHandler.cs +++ b/TweaksLauncher.Game/Il2CppHandler.cs @@ -42,7 +42,7 @@ private static void LoadModHandler() modHandler.GetType("TweaksLauncher.ModHandler", true)! .InvokeMember("Start", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Static, null, null, - [Program.baseDir, Program.gameName, Program.gamePath, new Action(Logger.Log)]); + [Program.baseDir, Program.gameName, Program.gamePath, new Action(Logger.Log)]); } private static nint OnIl2CppInit(nint domainName) diff --git a/TweaksLauncher.Game/Logger.cs b/TweaksLauncher.Game/Logger.cs index caf0cf0..e106471 100644 --- a/TweaksLauncher.Game/Logger.cs +++ b/TweaksLauncher.Game/Logger.cs @@ -21,6 +21,11 @@ static Logger() } } + public static void Log(string? message, byte baseColorR, byte baseColorG, byte baseColorB, string? moduleName, byte moduleColorR, byte moduleColorG, byte moduleColorB) + { + Log(message, Color.FromArgb(baseColorR, baseColorG, baseColorB), moduleName, Color.FromArgb(moduleColorR, moduleColorG, moduleColorB)); + } + public static void Log(string? message, Color baseColor = default, string? moduleName = null, Color moduleColor = default) { if (message == null && moduleName == null) @@ -54,7 +59,7 @@ public static void Log(string? message, Color baseColor = default, string? modul if (message != string.Empty) { - if (baseColor.A == 0) + if (baseColor.R == 0 && baseColor.G == 0 && baseColor.B == 0) baseColor = Color.LightCyan; message = message.Pastel(baseColor); @@ -63,7 +68,7 @@ public static void Log(string? message, Color baseColor = default, string? modul var consoleLog = $"[{time.Pastel(Color.DarkGray)}]"; if (moduleName != null) { - if (moduleColor.A == 0) + if (moduleColor.R == 0 && moduleColor.G == 0 && moduleColor.B == 0) moduleColor = Color.Magenta; consoleLog += $"[{moduleName.Pastel(moduleColor)}]"; @@ -87,4 +92,4 @@ private static void OnProcessLog(object sender, DataReceivedEventArgs e) Log(e.Data, moduleName: (sender as Process)?.ProcessName); } -} +} \ No newline at end of file diff --git a/TweaksLauncher.Game/MonoHandler.cs b/TweaksLauncher.Game/MonoHandler.cs index 669c476..3911c87 100644 --- a/TweaksLauncher.Game/MonoHandler.cs +++ b/TweaksLauncher.Game/MonoHandler.cs @@ -61,9 +61,9 @@ private static void LoadModHandler(nint domain) Mono.mono_runtime_invoke(startMethod, 0, args, null); } - private static void LogImpl(nint monoMessage, int baseColor, nint monoModuleName, int moduleColor) + private static void LogImpl(nint monoMessage, byte baseColorR, byte baseColorG, byte baseColorB, nint monoModuleName, byte moduleColorR, byte moduleColorG, byte moduleColorB) { - Logger.Log(monoMessage == 0 ? null : Mono.mono_string_to_utf16(monoMessage), Color.FromArgb(baseColor), monoModuleName == 0 ? null : Mono.mono_string_to_utf16(monoModuleName), Color.FromArgb(moduleColor)); + Logger.Log(monoMessage == 0 ? null : Mono.mono_string_to_utf16(monoMessage), baseColorR, baseColorG, baseColorB, monoModuleName == 0 ? null : Mono.mono_string_to_utf16(monoModuleName), moduleColorR, moduleColorG, moduleColorB); } private static nint OnDomainInit(nint domainName, nint a) @@ -80,5 +80,5 @@ private static nint OnDomainInit(nint domainName, nint a) } internal delegate nint MonoJitInitSig(nint domainName, nint a); - private delegate void LogImplSig(nint monoMessage, int baseColor, nint monoModuleName, int moduleColor); + private delegate void LogImplSig(nint monoMessage, byte baseColorR, byte baseColorG, byte baseColorB, nint monoModuleName, byte moduleColorR, byte moduleColorG, byte moduleColorB); } diff --git a/TweaksLauncher.ModHandler/Il2Cpp/Il2CppEnumeratorWrapper.cs b/TweaksLauncher.ModHandler/Il2Cpp/Il2CppEnumeratorWrapper.cs index 21889dc..f049791 100644 --- a/TweaksLauncher.ModHandler/Il2Cpp/Il2CppEnumeratorWrapper.cs +++ b/TweaksLauncher.ModHandler/Il2Cpp/Il2CppEnumeratorWrapper.cs @@ -4,7 +4,6 @@ using Il2CppInterop.Runtime.Injection; using System; using System.Collections; -using System.Drawing; namespace TweaksLauncher.Il2Cpp; @@ -45,7 +44,7 @@ public bool MoveNext() } catch (Exception e) { - ModHandler.Log(e.ToString(), Color.Red); + ModHandler.Log(e.ToString(), LogColor.Red); return false; } diff --git a/TweaksLauncher.ModHandler/LoadedMod.cs b/TweaksLauncher.ModHandler/LoadedMod.cs index 8456851..a8eb07d 100644 --- a/TweaksLauncher.ModHandler/LoadedMod.cs +++ b/TweaksLauncher.ModHandler/LoadedMod.cs @@ -69,12 +69,12 @@ public void Init() } catch (MissingMethodException) { - ModHandler.Log($"Mod interface doesn't implement an 'Initialize' method: '{iMod.InterfaceType.FullName}'", System.Drawing.Color.Red); + ModHandler.Log($"Mod interface doesn't implement an 'Initialize' method: '{iMod.InterfaceType.FullName}'", LogColor.Red); } catch (Exception ex) { - ModHandler.Log($"Mod interface failed to initialize: '{iMod.InterfaceType.FullName}'", System.Drawing.Color.Red); - ModHandler.Log(ex.ToString(), System.Drawing.Color.Red); + ModHandler.Log($"Mod interface failed to initialize: '{iMod.InterfaceType.FullName}'", LogColor.Red); + ModHandler.Log(ex.ToString(), LogColor.Red); } } } diff --git a/TweaksLauncher.ModHandler/LogColor.cs b/TweaksLauncher.ModHandler/LogColor.cs new file mode 100644 index 0000000..fb8590c --- /dev/null +++ b/TweaksLauncher.ModHandler/LogColor.cs @@ -0,0 +1,431 @@ +namespace TweaksLauncher; + +public struct LogColor(byte red, byte green, byte blue) +{ + public byte R { get; set; } = red; + public byte G { get; set; } = green; + public byte B { get; set; } = blue; + + /// #66CDAA + public static LogColor MediumAquamarine => new(0x66, 0xCD, 0xAA); + + /// #0000CD + public static LogColor MediumBlue => new(0x00, 0x00, 0xCD); + + /// #BA55D3 + public static LogColor MediumOrchid => new(0xBA, 0x55, 0xD3); + + /// #9370DB + public static LogColor MediumPurple => new(0x93, 0x70, 0xDB); + + /// #3CB371 + public static LogColor MediumSeaGreen => new(0x3C, 0xB3, 0x71); + + /// #7B68EE + public static LogColor MediumSlateBlue => new(0x7B, 0x68, 0xEE); + + /// #00FA9A + public static LogColor MediumSpringGreen => new(0x00, 0xFA, 0x9A); + + /// #48D1CC + public static LogColor MediumTurquoise => new(0x48, 0xD1, 0xCC); + + /// #C71585 + public static LogColor MediumVioletRed => new(0xC7, 0x15, 0x85); + + /// #191970 + public static LogColor MidnightBlue => new(0x19, 0x19, 0x70); + + /// #F5FFFA + public static LogColor MintCream => new(0xF5, 0xFF, 0xFA); + + /// #FFE4E1 + public static LogColor MistyRose => new(0xFF, 0xE4, 0xE1); + + /// #FFE4B5 + public static LogColor Moccasin => new(0xFF, 0xE4, 0xB5); + + /// #FFDEAD + public static LogColor NavajoWhite => new(0xFF, 0xDE, 0xAD); + + /// #000080 + public static LogColor Navy => new(0x00, 0x00, 0x80); + + /// #FDF5E6 + public static LogColor OldLace => new(0xFD, 0xF5, 0xE6); + + /// #808000 + public static LogColor Olive => new(0x80, 0x80, 0x00); + + /// #800000 + public static LogColor Maroon => new(0x80, 0x00, 0x00); + + /// #6B8E23 + public static LogColor OliveDrab => new(0x6B, 0x8E, 0x23); + + /// #FF00FF + public static LogColor Magenta => new(0xFF, 0x00, 0xFF); + + /// #32CD32 + public static LogColor LimeGreen => new(0x32, 0xCD, 0x32); + + /// #FFF0F5 + public static LogColor LavenderBlush => new(0xFF, 0xF0, 0xF5); + + /// #7CFC00 + public static LogColor LawnGreen => new(0x7C, 0xFC, 0x00); + + /// #FFFACD + public static LogColor LemonChiffon => new(0xFF, 0xFA, 0xCD); + + /// #ADD8E6 + public static LogColor LightBlue => new(0xAD, 0xD8, 0xE6); + + /// #F08080 + public static LogColor LightCoral => new(0xF0, 0x80, 0x80); + + /// #E0FFFF + public static LogColor LightCyan => new(0xE0, 0xFF, 0xFF); + + /// #FAFAD2 + public static LogColor LightGoldenrodYellow => new(0xFA, 0xFA, 0xD2); + + /// #D3D3D3 + public static LogColor LightGray => new(0xD3, 0xD3, 0xD3); + + /// #90EE90 + public static LogColor LightGreen => new(0x90, 0xEE, 0x90); + + /// #FFB6C1 + public static LogColor LightPink => new(0xFF, 0xB6, 0xC1); + + /// #FFA07A + public static LogColor LightSalmon => new(0xFF, 0xA0, 0x7A); + + /// #20B2AA + public static LogColor LightSeaGreen => new(0x20, 0xB2, 0xAA); + + /// #87CEFA + public static LogColor LightSkyBlue => new(0x87, 0xCE, 0xFA); + + /// #778899 + public static LogColor LightSlateGray => new(0x77, 0x88, 0x99); + + /// #B0C4DE + public static LogColor LightSteelBlue => new(0xB0, 0xC4, 0xDE); + + /// #FFFFE0 + public static LogColor LightYellow => new(0xFF, 0xFF, 0xE0); + + /// #00FF00 + public static LogColor Lime => new(0x00, 0xFF, 0x00); + + /// #FAF0E6 + public static LogColor Linen => new(0xFA, 0xF0, 0xE6); + + /// #FFFF00 + public static LogColor Yellow => new(0xFF, 0xFF, 0x00); + + /// #FFA500 + public static LogColor Orange => new(0xFF, 0xA5, 0x00); + + /// #DA70D6 + public static LogColor Orchid => new(0xDA, 0x70, 0xD6); + + /// #C0C0C0 + public static LogColor Silver => new(0xC0, 0xC0, 0xC0); + + /// #87CEEB + public static LogColor SkyBlue => new(0x87, 0xCE, 0xEB); + + /// #6A5ACD + public static LogColor SlateBlue => new(0x6A, 0x5A, 0xCD); + + /// #708090 + public static LogColor SlateGray => new(0x70, 0x80, 0x90); + + /// #FFFAFA + public static LogColor Snow => new(0xFF, 0xFA, 0xFA); + + /// #00FF7F + public static LogColor SpringGreen => new(0x00, 0xFF, 0x7F); + + /// #4682B4 + public static LogColor SteelBlue => new(0x46, 0x82, 0xB4); + + /// #D2B48C + public static LogColor Tan => new(0xD2, 0xB4, 0x8C); + + /// #008080 + public static LogColor Teal => new(0x00, 0x80, 0x80); + + /// #D8BFD8 + public static LogColor Thistle => new(0xD8, 0xBF, 0xD8); + + /// #FF6347 + public static LogColor Tomato => new(0xFF, 0x63, 0x47); + + /// #40E0D0 + public static LogColor Turquoise => new(0x40, 0xE0, 0xD0); + + /// #EE82EE + public static LogColor Violet => new(0xEE, 0x82, 0xEE); + + /// #F5DEB3 + public static LogColor Wheat => new(0xF5, 0xDE, 0xB3); + + /// #FFFFFF + public static LogColor White => new(0xFF, 0xFF, 0xFF); + + /// #F5F5F5 + public static LogColor WhiteSmoke => new(0xF5, 0xF5, 0xF5); + + /// #A0522D + public static LogColor Sienna => new(0xA0, 0x52, 0x2D); + + /// #FF4500 + public static LogColor OrangeRed => new(0xFF, 0x45, 0x00); + + /// #FFF5EE + public static LogColor SeaShell => new(0xFF, 0xF5, 0xEE); + + /// #F4A460 + public static LogColor SandyBrown => new(0xF4, 0xA4, 0x60); + + /// #EEE8AA + public static LogColor PaleGoldenrod => new(0xEE, 0xE8, 0xAA); + + /// #98FB98 + public static LogColor PaleGreen => new(0x98, 0xFB, 0x98); + + /// #AFEEEE + public static LogColor PaleTurquoise => new(0xAF, 0xEE, 0xEE); + + /// #DB7093 + public static LogColor PaleVioletRed => new(0xDB, 0x70, 0x93); + + /// #FFEFD5 + public static LogColor PapayaWhip => new(0xFF, 0xEF, 0xD5); + + /// #FFDAB9 + public static LogColor PeachPuff => new(0xFF, 0xDA, 0xB9); + + /// #CD853F + public static LogColor Peru => new(0xCD, 0x85, 0x3F); + + /// #FFC0CB + public static LogColor Pink => new(0xFF, 0xC0, 0xCB); + + /// #DDA0DD + public static LogColor Plum => new(0xDD, 0xA0, 0xDD); + + /// #B0E0E6 + public static LogColor PowderBlue => new(0xB0, 0xE0, 0xE6); + + /// #800080 + public static LogColor Purple => new(0x80, 0x00, 0x80); + + /// #663399 + public static LogColor RebeccaPurple => new(0x66, 0x33, 0x99); + + /// #FF0000 + public static LogColor Red => new(0xFF, 0x00, 0x00); + + /// #BC8F8F + public static LogColor RosyBrown => new(0xBC, 0x8F, 0x8F); + + /// #4169E1 + public static LogColor RoyalBlue => new(0x41, 0x69, 0xE1); + + /// #8B4513 + public static LogColor SaddleBrown => new(0x8B, 0x45, 0x13); + + /// #FA8072 + public static LogColor Salmon => new(0xFA, 0x80, 0x72); + + /// #2E8B57 + public static LogColor SeaGreen => new(0x2E, 0x8B, 0x57); + + /// #F0E68C + public static LogColor Khaki => new(0xF0, 0xE6, 0x8C); + + /// #E6E6FA + public static LogColor Lavender => new(0xE6, 0xE6, 0xFA); + + /// #00FFFF + public static LogColor Cyan => new(0x00, 0xFF, 0xFF); + + /// #8B008B + public static LogColor DarkMagenta => new(0x8B, 0x00, 0x8B); + + /// #BDB76B + public static LogColor DarkKhaki => new(0xBD, 0xB7, 0x6B); + + /// #006400 + public static LogColor DarkGreen => new(0x00, 0x64, 0x00); + + /// #A9A9A9 + public static LogColor DarkGray => new(0xA9, 0xA9, 0xA9); + + /// #B8860B + public static LogColor DarkGoldenrod => new(0xB8, 0x86, 0x0B); + + /// #008B8B + public static LogColor DarkCyan => new(0x00, 0x8B, 0x8B); + + /// #00008B + public static LogColor DarkBlue => new(0x00, 0x00, 0x8B); + + /// #FFFFF0 + public static LogColor Ivory => new(0xFF, 0xFF, 0xF0); + + /// #DC143C + public static LogColor Crimson => new(0xDC, 0x14, 0x3C); + + /// #FFF8DC + public static LogColor Cornsilk => new(0xFF, 0xF8, 0xDC); + + /// #6495ED + public static LogColor CornflowerBlue => new(0x64, 0x95, 0xED); + + /// #FF7F50 + public static LogColor Coral => new(0xFF, 0x7F, 0x50); + + /// #D2691E + public static LogColor Chocolate => new(0xD2, 0x69, 0x1E); + + /// #556B2F + public static LogColor DarkOliveGreen => new(0x55, 0x6B, 0x2F); + + /// #7FFF00 + public static LogColor Chartreuse => new(0x7F, 0xFF, 0x00); + + /// #DEB887 + public static LogColor BurlyWood => new(0xDE, 0xB8, 0x87); + + /// #A52A2A + public static LogColor Brown => new(0xA5, 0x2A, 0x2A); + + /// #8A2BE2 + public static LogColor BlueViolet => new(0x8A, 0x2B, 0xE2); + + /// #0000FF + public static LogColor Blue => new(0x00, 0x00, 0xFF); + + /// #FFEBCD + public static LogColor BlanchedAlmond => new(0xFF, 0xEB, 0xCD); + + /// #000000 + public static LogColor Black => new(0x00, 0x00, 0x00); + + /// #FFE4C4 + public static LogColor Bisque => new(0xFF, 0xE4, 0xC4); + + /// #F5F5DC + public static LogColor Beige => new(0xF5, 0xF5, 0xDC); + + /// #F0FFFF + public static LogColor Azure => new(0xF0, 0xFF, 0xFF); + + /// #7FFFD4 + public static LogColor Aquamarine => new(0x7F, 0xFF, 0xD4); + + /// #00FFFF + public static LogColor Aqua => new(0x00, 0xFF, 0xFF); + + /// #FAEBD7 + public static LogColor AntiqueWhite => new(0xFA, 0xEB, 0xD7); + + /// #F0F8FF + public static LogColor AliceBlue => new(0xF0, 0xF8, 0xFF); + + /// #5F9EA0 + public static LogColor CadetBlue => new(0x5F, 0x9E, 0xA0); + + /// #FF8C00 + public static LogColor DarkOrange => new(0xFF, 0x8C, 0x00); + + /// #9ACD32 + public static LogColor YellowGreen => new(0x9A, 0xCD, 0x32); + + /// #8B0000 + public static LogColor DarkRed => new(0x8B, 0x00, 0x00); + + /// #4B0082 + public static LogColor Indigo => new(0x4B, 0x00, 0x82); + + /// #CD5C5C + public static LogColor IndianRed => new(0xCD, 0x5C, 0x5C); + + /// #9932CC + public static LogColor DarkOrchid => new(0x99, 0x32, 0xCC); + + /// #F0FFF0 + public static LogColor Honeydew => new(0xF0, 0xFF, 0xF0); + + /// #ADFF2F + public static LogColor GreenYellow => new(0xAD, 0xFF, 0x2F); + + /// #008000 + public static LogColor Green => new(0x00, 0x80, 0x00); + + /// #808080 + public static LogColor Gray => new(0x80, 0x80, 0x80); + + /// #DAA520 + public static LogColor Goldenrod => new(0xDA, 0xA5, 0x20); + + /// #FFD700 + public static LogColor Gold => new(0xFF, 0xD7, 0x00); + + /// #F8F8FF + public static LogColor GhostWhite => new(0xF8, 0xF8, 0xFF); + + /// #DCDCDC + public static LogColor Gainsboro => new(0xDC, 0xDC, 0xDC); + + /// #FF00FF + public static LogColor Fuchsia => new(0xFF, 0x00, 0xFF); + + /// #228B22 + public static LogColor ForestGreen => new(0x22, 0x8B, 0x22); + + /// #FF69B4 + public static LogColor HotPink => new(0xFF, 0x69, 0xB4); + + /// #B22222 + public static LogColor Firebrick => new(0xB2, 0x22, 0x22); + + /// #FFFAF0 + public static LogColor FloralWhite => new(0xFF, 0xFA, 0xF0); + + /// #1E90FF + public static LogColor DodgerBlue => new(0x1E, 0x90, 0xFF); + + /// #696969 + public static LogColor DimGray => new(0x69, 0x69, 0x69); + + /// #00BFFF + public static LogColor DeepSkyBlue => new(0x00, 0xBF, 0xFF); + + /// #FF1493 + public static LogColor DeepPink => new(0xFF, 0x14, 0x93); + + /// #9400D3 + public static LogColor DarkViolet => new(0x94, 0x00, 0xD3); + + /// #00CED1 + public static LogColor DarkTurquoise => new(0x00, 0xCE, 0xD1); + + /// #2F4F4F + public static LogColor DarkSlateGray => new(0x2F, 0x4F, 0x4F); + + /// #483D8B + public static LogColor DarkSlateBlue => new(0x48, 0x3D, 0x8B); + + /// #8FBC8B + public static LogColor DarkSeaGreen => new(0x8F, 0xBC, 0x8B); + + /// #E9967A + public static LogColor DarkSalmon => new(0xE9, 0x96, 0x7A); +} diff --git a/TweaksLauncher.ModHandler/ModHandler.cs b/TweaksLauncher.ModHandler/ModHandler.cs index e7c95cb..e9594ce 100644 --- a/TweaksLauncher.ModHandler/ModHandler.cs +++ b/TweaksLauncher.ModHandler/ModHandler.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using System.Drawing; using System.IO; using System.Reflection; using UnityEngine.SceneManagement; @@ -24,7 +23,7 @@ namespace TweaksLauncher; public unsafe static class ModHandler { #if !MONO - private static Action logFunc = null!; + private static Action logFunc = null!; #endif private static bool initSceneLoaded; @@ -47,7 +46,7 @@ public unsafe static class ModHandler internal static void Start(string baseDir, string gameName, string gameDir #if !MONO - , Action logFunc + , Action logFunc #endif ) { @@ -65,7 +64,7 @@ internal static void Start(string baseDir, string gameName, string gameDir } catch { - Log($"Could not find the Unity version.", Color.Red); + Log($"Could not find the Unity version.", LogColor.Red); return; } @@ -108,18 +107,18 @@ private static void WatchSceneChange() harmony.Patch(typeof(SceneManager).GetMethod("Internal_ActiveSceneChanged", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public), prefix: new(OnInternalActiveSceneChanged)); } - internal static void Log(string? message, Color baseColor = default, string? moduleName = null, Color moduleColor = default) + internal static void Log(string? message, LogColor baseColor = default, string? moduleName = null, LogColor moduleColor = default) { #if MONO - LogInternal(message, baseColor.ToArgb(), moduleName, moduleColor.ToArgb()); + LogInternal(message, baseColor.R, baseColor.G, baseColor.B, moduleName, moduleColor.R, moduleColor.G, moduleColor.B); #else - logFunc(message, baseColor, moduleName, moduleColor); + logFunc(message, baseColor.R, baseColor.G, baseColor.B, moduleName, moduleColor.R, moduleColor.G, moduleColor.B); #endif } #if MONO [MethodImpl(MethodImplOptions.InternalCall)] - private static extern void LogInternal(string? message, int baseColor, string? moduleName, int moduleColor); + private static extern void LogInternal(string? message, byte baseColorR, byte baseColorG, byte baseColorB, string? moduleName, byte moduleColorR, byte moduleColorG, byte moduleColorB); #endif private static void OnInternalActiveSceneChanged() @@ -186,7 +185,7 @@ private static void LoadModsFromPath(string modsDir) { if (!File.Exists(path)) { - Log($"Could not find mod at: {path}", Color.Red); + Log($"Could not find mod at: {path}", LogColor.Red); return null; } @@ -194,8 +193,8 @@ private static void LoadModsFromPath(string modsDir) if (loadedMods.Exists(x => path.Equals(x.ModPath, StringComparison.OrdinalIgnoreCase))) { - Log($"Could not load mod from: {path}", Color.Red); - Log($"This mod is already loaded.", Color.Red); + Log($"Could not load mod from: {path}", LogColor.Red); + Log($"This mod is already loaded.", LogColor.Red); return null; } @@ -207,15 +206,15 @@ private static void LoadModsFromPath(string modsDir) name = modAssembly.GetName().Name; if (name == null) { - Log($"Could not load mod from: {path}", Color.Red); - Log($"Mod's assembly does not have a name.", Color.Red); + Log($"Could not load mod from: {path}", LogColor.Red); + Log($"Mod's assembly does not have a name.", LogColor.Red); return null; } } catch { - Log($"Could not load mod from: {path}", Color.Red); - Log($"Invalid .net assembly.", Color.Red); + Log($"Could not load mod from: {path}", LogColor.Red); + Log($"Invalid .net assembly.", LogColor.Red); return null; } @@ -227,8 +226,8 @@ private static void LoadModsFromPath(string modsDir) } catch { - Log($"Could not load mod from: {path}", Color.Red); - Log($"Something went wrong while reading the assembly. The assembly might be targetting the wrong .net runtime version.", Color.Red); + Log($"Could not load mod from: {path}", LogColor.Red); + Log($"Something went wrong while reading the assembly. The assembly might be targetting the wrong .net runtime version.", LogColor.Red); return null; } @@ -244,15 +243,15 @@ private static void LoadModsFromPath(string modsDir) if (modInterfaces.Count == 0) { - Log($"Could not load mod from: {path}", Color.Red); - Log($"Mod does not implement any IMod interfaces.", Color.Red); + Log($"Could not load mod from: {path}", LogColor.Red); + Log($"Mod does not implement any IMod interfaces.", LogColor.Red); return null; } var mod = new LoadedMod(name, path, modAssembly, modInterfaces.AsReadOnly()); loadedMods.Add(mod); - Log($"Mod loaded: {mod}", Color.LightGreen); + Log($"Mod loaded: {mod}", LogColor.LightGreen); if (modsInited) mod.Init(); @@ -260,12 +259,12 @@ private static void LoadModsFromPath(string modsDir) return mod; } - internal static void HandleLog(object? message, Color baseColor, Assembly modAssembly) + internal static void HandleLog(object? message, LogColor baseColor, Assembly modAssembly) { var mod = loadedMods.Find(x => x.ModAssembly == modAssembly); if (mod == null) return; - Log(message?.ToString(), baseColor, mod.Name, Color.LightGreen); + Log(message?.ToString(), baseColor, mod.Name, LogColor.LightGreen); } } diff --git a/TweaksLauncher.ModHandler/ModLogger.cs b/TweaksLauncher.ModHandler/ModLogger.cs index 9449538..b8b037e 100644 --- a/TweaksLauncher.ModHandler/ModLogger.cs +++ b/TweaksLauncher.ModHandler/ModLogger.cs @@ -1,5 +1,4 @@ -using System.Drawing; -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; namespace TweaksLauncher; @@ -15,7 +14,7 @@ public static class ModLogger /// The message to print. If the message is an object, will be used. /// Color of the message. [MethodImpl(MethodImplOptions.NoInlining)] - public static void Log(object? message, Color baseColor = default) + public static void Log(object? message, LogColor baseColor = default) { var modAssembly = Assembly.GetCallingAssembly();