using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; // Stores long or frequently repeated strings in a dictionary. // Strings can then be retrieved using a short key string. public class StringTable { Dictionary stringTable = new Dictionary(); public void ClearStringTable() { stringTable.Clear(); } // Retrieves a string from the table public string GetString(string key) { if (stringTable.ContainsKey(key)) { return stringTable[key]; } return ""; } // Adds or updates a string in the table public void SetString(string key, string value) { stringTable[key] = value; } // Replace keys in the input string with the string table entry // Example format: "This {string_key} string" public string SubstituteStrings(string text) { string subbedText = text; // Instantiate the regular expression object. Regex r = new Regex("{.*?}"); // Match the regular expression pattern against a text string. var results = r.Matches(text); foreach (Match match in results) { string stringKey = match.Value.Substring(1, match.Value.Length - 2); string stringValue = GetString(stringKey); subbedText = subbedText.Replace(match.Value, stringValue); } return subbedText; } // Chops a string at the first new line character // Useful for link / button strings that must fit on a single line public string FormatLinkText(string text) { string trimmed; if (text.Contains("\n")) { trimmed = text.Substring(0, text.IndexOf("\n")); } else { trimmed = text; } return trimmed; } }