#define CUIDEBUG // #define SHOWPERF using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Diagnostics; using System.Runtime.CompilerServices; using System.IO; using Barotrauma; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Graphics; namespace QICrabUI { public static class CUIDebug { public static bool PrintKeys; #if !CUIDEBUG [Conditional("DONT")] #endif public static void Log(object msg, Color? cl = null) { if (!CUI.Debug) return; cl ??= Color.Yellow; LuaCsLogger.LogMessage($"{msg ?? "null"}", cl * 0.8f, cl); } #if !CUIDEBUG [Conditional("DONT")] #endif public static void Info(object msg, Color? cl = null, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0) { if (!CUI.Debug) return; cl ??= Color.Cyan; var fi = new FileInfo(source); CUI.Log($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", cl * 0.5f); CUI.Log(msg, cl); } #if !CUIDEBUG [Conditional("DONT")] #endif public static void Error(object msg, Color? cl = null, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0) { if (!CUI.Debug) return; cl ??= Color.Orange; var fi = new FileInfo(source); CUI.Log($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", cl * 0.5f); CUI.Log(msg, cl); } #if !CUIDEBUG [Conditional("DONT")] #endif public static void Capture(CUIComponent host, CUIComponent target, string method, string sprop, string tprop, string value) { if (target == null || target.IgnoreDebug || !target.Debug) return; //CUI.Log($"{host} {target} {method} {sprop} {tprop} {value}"); CUIDebugWindow.Main?.Capture(new CUIDebugEvent(host, target, method, sprop, tprop, value)); } #if !CUIDEBUG [Conditional("DONT")] #endif public static void Flush() => CUIDebugWindow.Main?.Flush(); // public static int CUIShowperfCategory = 1000; // #if (!SHOWPERF || !CUIDEBUG) // [Conditional("DONT")] // #endif // public static void CaptureTicks(double ticks, string name, int hash) => ShowPerfExtensions.Plugin.CaptureTicks(ticks, CUIShowperfCategory, name, hash); // #if (!SHOWPERF || !CUIDEBUG) // [Conditional("DONT")] // #endif // public static void CaptureTicks(double ticks, string name) => ShowPerfExtensions.Plugin.CaptureTicks(ticks, CUIShowperfCategory, name); // #if (!SHOWPERF || !CUIDEBUG) // [Conditional("DONT")] // #endif // public static void EnsureCategory() => ShowPerfExtensions.Plugin.EnsureCategory(CUIShowperfCategory); } }