Add quick interactions locally
This commit is contained in:
52
Quick Interactions/CSharp/Shared/Mod Stuff/Logger.cs
Normal file
52
Quick Interactions/CSharp/Shared/Mod Stuff/Logger.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
using Barotrauma;
|
||||
using HarmonyLib;
|
||||
using Microsoft.Xna.Framework;
|
||||
using QIDependencyInjection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace QuickInteractions
|
||||
{
|
||||
// I think is is unnecessary
|
||||
// All this stuff is inherently static, why is it injected instance?
|
||||
// And debugger probably also should be static
|
||||
// Lets say i was just testing dependency injection system
|
||||
[Singleton]
|
||||
public class Logger
|
||||
{
|
||||
[QIDependencyInjection.Dependency] public Debugger Debugger { get; set; }
|
||||
public Color BaseColor { get; set; } = Color.Cyan;
|
||||
|
||||
public string WrapInColor(object msg, string color) => $"‖color:{color}‖{msg}‖end‖";
|
||||
public string GetCallerFolderPath([CallerFilePath] string source = "") => Path.GetDirectoryName(source);
|
||||
public void Log(object msg, Color? color = null)
|
||||
{
|
||||
color ??= BaseColor;
|
||||
LuaCsLogger.LogMessage($"{msg ?? "null"}", color * 0.8f, color);
|
||||
}
|
||||
|
||||
public void Warning(object msg) => Log(msg, Color.Yellow);
|
||||
|
||||
public void Info(object msg, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0)
|
||||
{
|
||||
if (Debugger?.Debug == true) Log(msg);
|
||||
}
|
||||
|
||||
public void Error(object msg, [CallerFilePath] string source = "", [CallerLineNumber] int lineNumber = 0)
|
||||
{
|
||||
if (Debugger?.Debug == true)
|
||||
{
|
||||
var fi = new FileInfo(source);
|
||||
|
||||
Log($"{fi.Directory.Name}/{fi.Name}:{lineNumber}", Color.Orange * 0.5f);
|
||||
Log(msg, Color.Orange);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user