Пример #1
0
        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);
            }
        }
Пример #2
0
 internal CardNameCacheKey(ChaFile chaFile) : this(chaFile.GetOriginalFullName())
 {
 }