Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_BIKIStringBuilder.c
Go to the documentation of this file.
2{
3 protected string m_sContent;
4
5 //------------------------------------------------------------------------------------------------
8 void AddLine(string line)
9 {
10 m_sContent += line + "\n";
11 }
12
13 //------------------------------------------------------------------------------------------------
17 void AddKeyValueLine(string key, string value = string.Empty)
18 {
19 key.Trim();
20 if (!key)
21 return;
22
23 value.Trim();
24 if (value)
25 m_sContent += string.Format("|%1= %2\n", key, value);
26 else
27 m_sContent += string.Format("|%1=\n", key, value);
28 }
29
30 //------------------------------------------------------------------------------------------------
34 void AddTitle(int titleLevel, string text)
35 {
36 if (titleLevel < 1)
37 titleLevel = 1;
38
39 if (titleLevel > 6)
40 titleLevel = 6;
41
42 if (m_sContent)
43 {
44 if (m_sContent.Length() < 2 || m_sContent.Substring(m_sContent.Length() - 2, 2) != "\n\n")
45 {
46 if (titleLevel < 3)
47 m_sContent += "\n\n";
48 else
49 if (titleLevel == 3)
50 m_sContent += "\n";
51 }
52 }
53
54 switch (titleLevel)
55 {
56 case 1: m_sContent += "= " + text + " =\n\n"; break;
57 case 2: m_sContent += "== " + text + " ==\n\n"; break;
58 case 3: m_sContent += "=== " + text + " ===\n\n"; break;
59 case 4: m_sContent += "==== " + text + " ====\n"; break;
60 case 5: m_sContent += "===== " + text + " =====\n"; break;
61 case 6: m_sContent += "====== " + text + " ======\n"; break;
62 }
63 }
64
65 //------------------------------------------------------------------------------------------------
69 // void BeginTable(string classes = "wikitable", string style = string.Empty)
70 void BeginTable(string classes = "wikitable", string style = string.Empty)
71 {
72 m_sContent += "{|"; // }
73 if (classes)
74 m_sContent += " class=\"" + classes + "\"";
75
76 if (style)
77 m_sContent += " style=\"" + style + "\"";
78
79 m_sContent += "\n";
80 }
81
82 //------------------------------------------------------------------------------------------------
85 void AddTableHeadersLine(notnull array<string> titles)
86 {
87 foreach (string title : titles)
88 {
89 if (!title) // IsEmpty()
90 m_sContent += "!\n";
91 else
92 m_sContent += "! " + title + "\n";
93 }
94 }
95
96 //------------------------------------------------------------------------------------------------
101 void AddTableHeadersLine(string title1, string title2 = string.Empty, string title3 = string.Empty, string title4 = string.Empty, string title5 = string.Empty)
102 {
103 array<string> titles = { title1, title2, title3, title4, title5 };
104 foreach (string title : titles)
105 {
106 if (!title)
107 return;
108
109 m_sContent += "! " + title + "\n";
110 }
111 }
112
113 //------------------------------------------------------------------------------------------------
118 void AddTableHeader(string title, string classes = string.Empty, string style = string.Empty)
119 {
120 if (!classes && !style)
121 {
122 m_sContent += "! " + title + "\n";
123 return;
124 }
125
126 m_sContent += "!";
127 if (classes)
128 m_sContent += " class=\"" + classes + "\"";
129
130 if (style)
131 m_sContent += " style=\"" + style + "\"";
132
133 m_sContent += " | " + title + "\n";
134 }
135
136 //------------------------------------------------------------------------------------------------
142 void AddTableDataCellsLine(notnull array<string> data)
143 {
144 m_sContent += "|-\n";
145 foreach (string datum : data)
146 {
147 m_sContent += "| " + datum + "\n";
148 }
149 }
150
151 //------------------------------------------------------------------------------------------------
161 void AddTableDataCellsLine(string data1, string data2 = string.Empty, string data3 = string.Empty, string data4 = string.Empty, string data5 = string.Empty)
162 {
163 m_sContent += "|-\n";
164 array<string> data = { data1, data2, data3, data4, data5 };
165 foreach (string datum : data)
166 {
167 if (!datum)
168 return;
169
170 m_sContent += "| " + datum + "\n";
171 }
172 }
173
174 //------------------------------------------------------------------------------------------------
179 void AddTableDataCell(string datum, string classes = string.Empty, string style = string.Empty)
180 {
181 if (!classes && !style)
182 {
183 m_sContent += "| " + datum + "\n";
184 return;
185 }
186
187 m_sContent += "|";
188 if (classes)
189 m_sContent += " class=\"" + classes + "\"";
190
191 if (style)
192 m_sContent += " style=\"" + style + "\"";
193
194 if (datum)
195 m_sContent += " | " + datum + "\n";
196 else
197 m_sContent += " |\n";
198 }
199
200 //------------------------------------------------------------------------------------------------
206 void AddHeaderAndDataCellsLine(string title, notnull array<string> data)
207 {
208 m_sContent += "|-\n" +
209 "! " + title + "\n";
210
211 foreach (string datum : data)
212 {
213 m_sContent += "| " + datum + "\n";
214 }
215 }
216
217 //------------------------------------------------------------------------------------------------
220 void EndTable()
221 {
222 // {
223 m_sContent += "|}\n";
224 }
225
226 //------------------------------------------------------------------------------------------------
233 void AddCategory(string catLv1 = string.Empty, string catLv2 = string.Empty, string catLv3 = string.Empty, string catLv4 = string.Empty, string catLv5 = string.Empty)
234 {
235 if (!catLv1)
236 m_sContent += "{{GameCategory|armaR}}\n";
237 else if (!catLv2)
238 m_sContent += "{{GameCategory|armaR|" + catLv1 + "}}\n";
239 else if (!catLv3)
240 m_sContent += "{{GameCategory|armaR|" + catLv1 + "|" + catLv2 + "}}\n";
241 else if (!catLv4)
242 m_sContent += "{{GameCategory|armaR|" + catLv1 + "|" + catLv2 + "|" + catLv3 + "}}\n";
243 else if (!catLv5)
244 m_sContent += "{{GameCategory|armaR|" + catLv1 + "|" + catLv2 + "|" + catLv3 + "|" + catLv4 + "}}\n";
245 else
246 m_sContent += "{{GameCategory|armaR|" + catLv1 + "|" + catLv2 + "|" + catLv3 + "|" + catLv4 + "|" + catLv5 + "}}\n";
247 }
248
249 //------------------------------------------------------------------------------------------------
251 string GetContent()
252 {
253 return m_sContent;
254 }
255
256 //------------------------------------------------------------------------------------------------
259 {
260 return Escape(m_sContent);
261 }
262
263 //------------------------------------------------------------------------------------------------
265 void Clear()
266 {
267 m_sContent = string.Empty;
268 }
269
270 //
271 // Static Methods
272 //
273
274 //------------------------------------------------------------------------------------------------
278 static string Escape(string input)
279 {
280 input.Replace("|", "{{!}}");
281 input.Replace("=", "{{=}}");
282 return input;
283 }
284
285 // formatting
286
287 //------------------------------------------------------------------------------------------------
291 static string FormatMass(float massInKg)
292 {
293 if (massInKg <= 0)
294 return "-";
295
296 if (massInKg < 1)
297 return string.Format("%1&nbsp;g", Math.Round(massInKg * 1000));
298
299 if (massInKg < 1000)
300 return string.Format("%1&nbsp;kg", massInKg.ToString(-1, 2));
301
302 return string.Format("%1&nbsp;T", massInKg.ToString(-1, 2));
303 }
304
305 //------------------------------------------------------------------------------------------------
309 static string FormatSpeedMPS(float metrePerSecond)
310 {
311 if (metrePerSecond <= 0)
312 return "-";
313
314 if (metrePerSecond < 1)
315 return string.Format("%1&nbsp;m/s", SCR_FormatHelper.FloatToDecString(metrePerSecond, 3));
316
317 if (metrePerSecond < 10000)
318 return string.Format("%1&nbsp;m/s", metrePerSecond.ToString(-1, 1));
319
320 return string.Format("%1&nbsp;km/s", (metrePerSecond * 0.001).ToString(-1, 2));
321 }
322
323 //------------------------------------------------------------------------------------------------
327 static string FormatSpeedKMH(float metrePerSecond)
328 {
329 if (metrePerSecond <= 0)
330 return "-";
331
332 metrePerSecond *= Physics.MS2KMH;
333 if (metrePerSecond < 1)
334 return string.Format("%1&nbsp;km/h", SCR_FormatHelper.FloatToDecString(metrePerSecond, 2));
335
336 if (metrePerSecond < 1000)
337 return string.Format("%1&nbsp;km/h", metrePerSecond.ToString(-1, 2));
338
339 return string.Format("%1&nbsp;km/h", Math.Round(metrePerSecond));
340 }
341
342// //------------------------------------------------------------------------------------------------
343// //!
344// //! \param[in] metrePerSecond
345// //! \return
346// static string FormatSpeed(float metrePerSecond)
347// {
348// // TODO
349// // TODO + Mach 1 etc
350// }
351
352 // editor links
353
354 //------------------------------------------------------------------------------------------------
358 {
359 if (!resourceName)
360 return string.Empty;
361
362 return "{{Link|enfusion:/" + "/ResourceManager/~ArmaReforger:" + resourceName.GetPath() + "}}";
363 }
364
365 //------------------------------------------------------------------------------------------------
368 static string GetScriptEditorLink(string scriptFilePath)
369 {
370 if (!scriptFilePath.EndsWith(".c"))
371 return string.Empty;
372
373 return "{{Link|enfusion:/" + "/ScriptEditor/" + scriptFilePath + "}}";
374 }
375
376 //------------------------------------------------------------------------------------------------
380 {
381 if (!resourceName)
382 return string.Empty;
383
384 if (!resourceName.EndsWith(".ent") && !resourceName.EndsWith(".et"))
385 return string.Empty;
386
387 return "{{Link|enfusion:/" + "/WorldEditor/" + resourceName.GetPath() + "}}";
388 }
389
390 //------------------------------------------------------------------------------------------------
391 // constructor
392 void SCR_BIKIStringBuilder(string content = string.Empty)
393 {
395 }
396}
class RestAPIHelper< JsonApiStruct T > content
ResourceName resourceName
Definition SCR_AIGroup.c:66
Get all prefabs that have the spawner data
Definition Math.c:13
void AddKeyValueLine(string key, string value=string.Empty)
static string FormatSpeedMPS(float metrePerSecond)
void AddTableHeader(string title, string classes=string.Empty, string style=string.Empty)
void AddTableDataCellsLine(string data1, string data2=string.Empty, string data3=string.Empty, string data4=string.Empty, string data5=string.Empty)
void AddHeaderAndDataCellsLine(string title, notnull array< string > data)
void AddTableDataCellsLine(notnull array< string > data)
void AddCategory(string catLv1=string.Empty, string catLv2=string.Empty, string catLv3=string.Empty, string catLv4=string.Empty, string catLv5=string.Empty)
void AddTitle(int titleLevel, string text)
static string FormatSpeedKMH(float metrePerSecond)
static string GetWorldEditorLink(ResourceName resourceName)
void Clear()
Empty the String Builder's content.
void AddTableHeadersLine(notnull array< string > titles)
static string FormatMass(float massInKg)
void AddTableDataCell(string datum, string classes=string.Empty, string style=string.Empty)
static string GetScriptEditorLink(string scriptFilePath)
void BeginTable(string classes="wikitable", string style=string.Empty)
static string GetResourceManagerLink(ResourceName resourceName)
static string Escape(string input)
void AddTableHeadersLine(string title1, string title2=string.Empty, string title3=string.Empty, string title4=string.Empty, string title5=string.Empty)
void SCR_BIKIStringBuilder(string content=string.Empty)
proto external string ToString()
Plain C++ pointer, no weak pointers, no memory management.