static void InitializeLookups() { if (aliasLookup == null) { aliasLookup = new Dictionary <string, LocationKey>(); List <LocationAliases> allAliases = GameSettings.GetSettingsOfType <LocationAliases>(); for (int i = 0; i < allAliases.Count; i++) { LocationAliases collection = allAliases[i]; for (int j = 0; j < collection.aliases.Length; j++) { string alias = collection.aliases[j].alias; if (!string.IsNullOrEmpty(alias)) { if (aliasLookup.ContainsKey(alias)) { Debug.LogError("Multiple Location Aliases: '" + alias + "', using first defined [Scene/Location]: " + aliasLookup[alias].scene + "/" + aliasLookup[alias].name); } else { aliasLookup.Add(alias, collection.aliases[j].key); } } } } } }
public static List <string> GetAliasList() { // during editor, just search by for loop if (!Application.isPlaying) { List <string> r = new List <string>(); List <LocationAliases> allAliases = GameSettings.GetSettingsOfType <LocationAliases>(); for (int i = 0; i < allAliases.Count; i++) { LocationAliases collection = allAliases[i]; for (int j = 0; j < collection.aliases.Length; j++) { string alias = collection.aliases[j].alias; if (!string.IsNullOrEmpty(alias)) { if (!r.Contains(alias)) { r.Add(alias); } } } } return(r); } else { InitializeLookups(); return(aliasLookup.Keys.ToList()); } }
public static LocationKey GetLocationKey(string name) { if (string.IsNullOrEmpty(name)) { return(null); } // during editor, just search by for loop if (!Application.isPlaying) { List <LocationAliases> allAliases = GameSettings.GetSettingsOfType <LocationAliases>(); for (int i = 0; i < allAliases.Count; i++) { LocationAliases collection = allAliases[i]; for (int j = 0; j < collection.aliases.Length; j++) { string cAlias = collection.aliases[j].alias; if (!string.IsNullOrEmpty(cAlias)) { if (cAlias == name) { return(collection.aliases[j].key); } } } } } else { InitializeLookups(); if (aliasLookup.TryGetValue(name, out LocationKey key)) { return(key); } } Debug.LogError("Couldnt find Location Alias: " + name); return(null); }