mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
66 lines
1.3 KiB
Beef
66 lines
1.3 KiB
Beef
using System;
|
|
using System.Text;
|
|
using System.Diagnostics;
|
|
|
|
namespace GlitchLog
|
|
{
|
|
public static class GlitchLog
|
|
{
|
|
private static String _format;
|
|
internal static String _preparedFormat ~ delete _;
|
|
internal static StringView _preMsgFormat;
|
|
internal static StringView _postMsgFormat;
|
|
|
|
public static String Format
|
|
{
|
|
get => _format;
|
|
set
|
|
{
|
|
_format = value;
|
|
|
|
PrepareFormat();
|
|
}
|
|
}
|
|
|
|
static void PrepareFormat()
|
|
{
|
|
delete _preparedFormat;
|
|
|
|
// Length = 0 -> no format -> only print msg
|
|
if(_format.Length == 0)
|
|
{
|
|
_preMsgFormat.Ptr = null;
|
|
_postMsgFormat.Ptr = null;
|
|
}
|
|
|
|
_preparedFormat = new .(_format);
|
|
|
|
// Todo: this is utter garbage
|
|
_preparedFormat.Replace("{l", "{0");
|
|
_preparedFormat.Replace("{t", "{1");
|
|
_preparedFormat.Replace("{n", "{2");
|
|
|
|
int index = _preparedFormat.IndexOf("{m}");
|
|
|
|
// {m} not in format-string -> format is pre msg
|
|
if(index == -1)
|
|
{
|
|
_preMsgFormat = _preparedFormat;
|
|
_postMsgFormat.Ptr = null;
|
|
}
|
|
else
|
|
{
|
|
if(index == 0)
|
|
_preMsgFormat.Ptr = null;
|
|
else
|
|
_preMsgFormat = .(_preparedFormat, 0, index);
|
|
|
|
if(index == _preparedFormat.Length - 3)
|
|
_postMsgFormat.Ptr = null;
|
|
else
|
|
_postMsgFormat = .(_preparedFormat, index + 3, _preparedFormat.Length - index - 3);
|
|
}
|
|
}
|
|
}
|
|
}
|