protected virtual IEnumerable <KeyValuePair <string, string> > GetNamesToRegister(ChaFile chaFile) { var handled = HashSetPool <string> .Get(); var controller = chaFile.GetTranslationHelperController(); try { foreach (var nameEntry in chaFile.EnumerateNames()) { var name = nameEntry.Value; if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); if (controller == null) { continue; } var origName = controller.OriginalNames[nameEntry.Key]; if (origName.IsNullOrEmpty() || origName == name || handled.Contains(origName)) { continue; } handled.Add(origName); yield return(new KeyValuePair <string, string>(origName, origName)); } var fullname = chaFile.GetFullName(); foreach (var name in new[] { fullname, chaFile.GetOriginalFullName(), chaFile.GetFormattedOriginalName() }) { if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); } } finally { HashSetPool <string> .Release(handled); } }
internal CardNameCacheKey(ChaFile chaFile) : this(chaFile.GetOriginalFullName()) { }