From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XUtliPoolLib/XStringFormatHelper.cs | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs (limited to 'Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs') diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs new file mode 100644 index 00000000..b6672b79 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace XUtliPoolLib +{ + public class XStringFormatHelper + { + public static readonly char EscapedSeparator = '\u001f'; + + public static readonly char[] Separator = new char[] + { + XStringFormatHelper.EscapedSeparator + }; + + private static readonly char _cSeparator = '|'; + + private static readonly char _cLeftBracket = '['; + + private static readonly char _EscapedLeftBracket = '\u0002'; + + private static readonly char _cRightBracket = ']'; + + private static readonly char _EscapedRightBracket = '\u0003'; + + private static readonly string _strSeparator = "|" + XStringFormatHelper._cSeparator.ToString(); + + private static readonly string _strLeftBracket = "|" + XStringFormatHelper._cLeftBracket.ToString(); + + private static readonly string _strRightBracket = "|" + XStringFormatHelper._cRightBracket.ToString(); + + private static readonly string _strEscapedSeparator = XStringFormatHelper.EscapedSeparator.ToString() ?? ""; + + private static readonly string _strEscapedLeftBracket = XStringFormatHelper._EscapedLeftBracket.ToString() ?? ""; + + private static readonly string _strEscapedRightBracket = XStringFormatHelper._EscapedRightBracket.ToString() ?? ""; + + private static StringBuilder _SB = new StringBuilder(); + + public static string FormatImage(string atlas, string sprite) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("im=").Append(atlas).Append(XStringFormatHelper.EscapedSeparator).Append(sprite).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatAnimation(string atlas, string sprite, int frameRate) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("an=").Append(atlas).Append(XStringFormatHelper.EscapedSeparator).Append(sprite).Append(XStringFormatHelper.EscapedSeparator).Append(frameRate.ToString()).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatGuild(string name, ulong uid) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("gd=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatDragonGuild(string name, string dragonguildname) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("dg=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(dragonguildname).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatTeam(string name, int teamid, uint expid) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("tm=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(teamid).Append(XStringFormatHelper.EscapedSeparator).Append(expid).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatItem(string name, string itemquality, ulong uid) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("it=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(itemquality).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatName(string name, ulong uid, string color = "00ffff") + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("nm=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(color).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatPk(string name, ulong uid) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("pk=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatSpeactate(string name, int liveid, int type) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("sp=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(liveid).Append(XStringFormatHelper.EscapedSeparator).Append(type).Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + public static string FormatUI(string name, ulong uid, List paramList = null) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("ui=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid); + bool flag = paramList != null; + if (flag) + { + for (int i = 0; i < paramList.Count; i++) + { + XStringFormatHelper._SB.Append(XStringFormatHelper.EscapedSeparator).Append(paramList[i]); + } + } + XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedRightBracket); + return XStringFormatHelper._SB.ToString(); + } + + private static void _ResetSB() + { + XStringFormatHelper._SB.Remove(0, XStringFormatHelper._SB.Length); + } + + public static string Escape(string s) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(s); + XStringFormatHelper._Escape(); + return XStringFormatHelper._SB.ToString(); + } + + private static void _Escape() + { + XStringFormatHelper._SB.Replace(XStringFormatHelper._strSeparator, XStringFormatHelper._strEscapedSeparator); + XStringFormatHelper._SB.Replace(XStringFormatHelper._strLeftBracket, XStringFormatHelper._strEscapedLeftBracket); + XStringFormatHelper._SB.Replace(XStringFormatHelper._strRightBracket, XStringFormatHelper._strEscapedRightBracket); + } + + public static string UnEscape(string s) + { + XStringFormatHelper._ResetSB(); + XStringFormatHelper._SB.Append(s); + XStringFormatHelper._UnEscape(); + return XStringFormatHelper._SB.ToString(); + } + + private static void _UnEscape() + { + XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedSeparator, XStringFormatHelper._strSeparator); + XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedLeftBracket, XStringFormatHelper._strLeftBracket); + XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedRightBracket, XStringFormatHelper._strRightBracket); + } + } +} -- cgit v1.1-26-g67d0