summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs
blob: b6672b79c77f05e34dcf53a3bbadd32e4b5b396f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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<ulong> 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);
		}
	}
}