Add quick interactions locally

This commit is contained in:
2025-03-31 04:02:39 +02:00
parent 5bb7a207f2
commit b7d4531ec8
134 changed files with 15494 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Barotrauma;
using HarmonyLib;
using Microsoft.Xna.Framework;
using System.IO;
namespace QICrabUI
{
public partial class CUI
{
/// <summary>
/// $"‖color:{color}‖{msg}‖end‖"
/// </summary>
/// <param name="msg"></param>
/// <param name="color"></param>
/// <returns></returns>
public static string WrapInColor(object msg, string color)
{
return $"‖color:{color}‖{msg}‖end‖";
}
//HACK too lazy to make good name
/// <summary>
/// Serializes the array
/// </summary>
/// <param name="array"></param>
/// <returns></returns>
public static string ArrayToString(IEnumerable<object> array)
{
return $"[{String.Join(", ", array.Select(o => o.ToString()))}]";
}
/// <summary>
/// Prints a message to console
/// </summary>
/// <param name="msg"></param>
/// <param name="color"></param>
public static void Log(object msg, Color? color = null, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0)
{
color ??= Color.Cyan;
// var fi = new FileInfo(source);
// LuaCsLogger.LogMessage($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", color * 0.6f, color * 0.6f);
LuaCsLogger.LogMessage($"{msg ?? "null"}", color * 0.8f, color);
}
public static void Warning(object msg, Color? color = null, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0)
{
color ??= Color.Yellow;
// var fi = new FileInfo(source);
// LuaCsLogger.LogMessage($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", color * 0.6f, color * 0.6f);
LuaCsLogger.LogMessage($"{msg ?? "null"}", color * 0.8f, color);
}
/// <summary>
/// xd
/// </summary>
/// <param name="source"> This should be injected by compiler, don't set </param>
/// <returns></returns>
public static string GetCallerFolderPath([CallerFilePath] string source = "") => Path.GetDirectoryName(source);
/// <summary>
/// Prints debug message with source path
/// Works only if debug is true
/// </summary>
/// <param name="msg"></param>
public static void Info(object msg, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0)
{
if (Debug == true)
{
var fi = new FileInfo(source);
Log($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", Color.Yellow * 0.5f);
Log(msg, Color.Yellow);
}
}
}
}