Exemplo n.º 1
0
        protected override IEnumerable <KeyValuePair <string, AssetDumpColumnInfo> > GetLists()
        {
            foreach (var list in base.GetLists())
            {
                yield return(list);
            }

            if (!TextDump.IsReadyForFinalDump())
            {
                yield break;
            }
            yield return(new KeyValuePair <string, AssetDumpColumnInfo>("actor/animal", ItemLookupAndAssetCols));

            foreach (var animal in new[] { "cat", "chicken" })
            {
                foreach (var state in new[] { "wild", "pet" })
                {
                    yield return(new KeyValuePair <string, AssetDumpColumnInfo>($"actor/animal/action/{animal}/{state}",
                                                                                StdExcelAssetCols));
                }
            }

            yield return(new KeyValuePair <string, AssetDumpColumnInfo>("actor/gameitem/recipe/recycling", ItemLookup));

            foreach (var mapdir in new[] { "eventpoint", "popupinfo", "mapinfo" })
            {
                yield return(new KeyValuePair <string, AssetDumpColumnInfo>($"map/{mapdir}", StdExcelAssetCols));
            }
        }
Exemplo n.º 2
0
        protected override IEnumerable <TranslationGenerator> GetLocalizationGenerators()
        {
            foreach (var generator in base.GetLocalizationGenerators())
            {
                yield return(generator);
            }

            var readyToDump = TextDump.IsReadyForFinalDump();

            if (!readyToDump)
            {
                yield break;
            }
            foreach (var dir in new[]
                     { "scene/common", "housing/base", "h/scene", "prefabs/tutorial_ui", "scene/map", "title/scene" })
            {
                yield return(() => GetBindLocalizers(dir));
            }

            yield return(GetStaticLocalizers);

            yield return(GetPopupLocalizers);

            yield return(GetHousingItemLocalizers);

            yield return(GetItemLocalizers);

            yield return(MakeManagerResourceLocalizers);

            yield return(WrapTranslationCollector("Fallback/PersonalityLines", FallbackPersonalityLinesLocalizer));



            yield return(MakeCharacterCategoryLocalizers);

            yield return(WrapTranslationCollector("GameInfoTables/AgentLifeStyle", AgentLifeStyleLocalizer));

            yield return(GetRecipeLocalizers);

            yield return(WrapTranslationCollector("Manager/Resources/DateActionName", DateActionNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/MapName", MapNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/ActionName", ActionNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/SickName", SickNameLocalizer));

            yield return(() => new[]
                         { MapLabelPostProcessor(new StringTranslationDumper("Manager/Resources/BaseName", BaseNameLocalizer)) });

            yield return(WrapTranslationCollector("Manager/Resources/MiniMapIconName", MiniMapIconNameLocalizer));

            yield return(GetHAnimationLocalizers);

            // add this one an extra time at the end
            yield return(() => GetBindLocalizers("scene/map"));
        }
        protected IEnumerable <ITranslationDumper> GetScenarioTextMergers()
        {
            if (!TextDump.IsReadyForFinalDump())
            {
                yield break;
            }
            var needle = CombinePaths("", "abdata", "adv", "scenario", "");
            var paths  = TextDump.GetTranslationPaths().Where(k => k.Contains(needle)).ToList();

            paths.Sort();
            paths.Reverse();
            var personalityCheckChars = "01234567890-".ToCharArray();

            var mappings = new Dictionary <string, Dictionary <string, string> >();
            var fileMaps = new Dictionary <string, List <string> >();

            foreach (var path in paths)
            {
                var parts            = path.Split(PathSplitter).ToList();
                var personalityIndex = parts.IndexOf("scenario") + 1;
                if (personalityIndex == 0)
                {
                    continue;
                }
                var personality       = parts[personalityIndex];
                var isPersonalityFile = personality.Length > 1 && personality.StartsWith("c") &&
                                        personalityCheckChars.Contains(personality[1]);
                if (!isPersonalityFile)
                {
                    continue;
                }

                if (!mappings.TryGetValue(personality, out var personalityMap))
                {
                    mappings[personality] =
                        personalityMap    = new Dictionary <string, string>(new TrimmedStringComparer());
                }

                if (!fileMaps.TryGetValue(personality, out var personalityFiles))
                {
                    fileMaps[personality] = personalityFiles = new List <string>();
                }

                personalityFiles.Add(path);

                foreach (var entry in TextDump.GetTranslationsForPath(path)
                         .Where(entry => !entry.Value.IsNullOrEmpty()))
                {
                    AddLocalizationToResults(personalityMap, entry);
                }
            }

            foreach (var translationDumper in BuildTranslationMergers(fileMaps, mappings))
            {
                yield return(translationDumper);
            }
        }
        protected override IEnumerable <KeyValuePair <string, AssetDumpColumnInfo> > GetLists()
        {
            foreach (var list in base.GetLists())
            {
                yield return(list);
            }

            if (TextDump.IsReadyForFinalDump())
            {
                yield return(new KeyValuePair <string, AssetDumpColumnInfo>("title", TitleAssetCols));
            }
        }
Exemplo n.º 5
0
        protected override IEnumerable <KeyValuePair <string, string> > HandleChaListData(TextAsset asset,
                                                                                          AssetDumpColumnInfo assetDumpColumnInfo)
        {
            if (!TextDump.IsReadyForFinalDump())
            {
                foreach (var result in base.HandleChaListData(asset, assetDumpColumnInfo))
                {
                    yield return(result);
                }
            }
            else
            {
                // now try and redump/populate
                if (!TextDump.IsReadyForFinalDump())
                {
                    yield break;
                }
                var categoryName = asset.name.Substring(0, asset.name.LastIndexOf("_", StringComparison.Ordinal));
                var category     = (ChaListDefine.CategoryNo)Enum.Parse(typeof(ChaListDefine.CategoryNo), categoryName);
                var catInfo      = Singleton <Character> .Instance.chaListCtrl.GetCategoryInfo(category);

                var lookupDict = new Dictionary <string, string>();

                foreach (var value in catInfo.Select(c => c.Value))
                {
                    if (!value.Name.IsNullOrEmpty())
                    {
                        lookupDict[$"{value.Kind}_{value.Id}"] = value.Name;
                    }
                }

                var chaListData = MessagePackSerializer.Deserialize <ChaListData>(asset.bytes);

                foreach (var entry in chaListData.dictList.Values)
                {
                    foreach (var id in chaListData.dictList.Keys)
                    {
                        var key = chaListData.GetInfo(id, "Name");
                        if (string.IsNullOrEmpty(key))
                        {
                            continue;
                        }
                        if (!lookupDict.TryGetValue($"{chaListData.GetInfo(id, "Kind")}_{id}", out var val))
                        {
                            val = string.Empty;
                        }

                        yield return(new KeyValuePair <string, string>(key, val));
                    }
                }
            }
        }
        protected IEnumerable <ITranslationDumper> GetCommunicationTextMergers()
        {
            if (!TextDump.IsReadyForFinalDump())
            {
                yield break;
            }
            var needle = CombinePaths("", "abdata", "communication", "");
            var paths  = TextDump.GetTranslationPaths().Where(k => k.Contains(needle)).ToList();

            paths.Sort();
            paths.Reverse();

            var splitter = new HashSet <char> {
                Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar
            }.ToArray();

            var mappings = new Dictionary <string, Dictionary <string, string> >();
            var fileMaps = new Dictionary <string, List <string> >();

            foreach (var path in paths)
            {
                var parent = Path.GetFileName(Path.GetDirectoryName(path));
                if (parent is null)
                {
                    continue;
                }
                if (!mappings.TryGetValue(parent, out var personalityMap))
                {
                    mappings[parent] = personalityMap = new Dictionary <string, string>(new TrimmedStringComparer());
                }

                if (!fileMaps.TryGetValue(parent, out var personalityFiles))
                {
                    fileMaps[parent] = personalityFiles = new List <string>();
                }

                personalityFiles.Add(path);

                foreach (var entry in TextDump.GetTranslationsForPath(path)
                         .Where(entry => !entry.Value.IsNullOrEmpty()))
                {
                    AddLocalizationToResults(personalityMap, entry);
                }
            }

            foreach (var translationDumper in BuildTranslationMergers(fileMaps, mappings))
            {
                yield return(translationDumper);
            }
        }
        protected virtual IEnumerable <TranslationGenerator> GetLocalizationGenerators()
        {
            yield return(GetHookedTextLocalizationGenerators);

            yield return(GetAutoLocalizerDumpers);

            yield return(GetStaticLocalizers);

            yield return(WrapTranslationCollector("Personalities", PersonalityLocalizer));

#if LOCALIZE
            yield return(GetOtherDataLocalizers);
#endif
            if (TextDump.IsReadyForFinalDump())
            {
                yield return(GetInstanceLocalizers);
            }
        }
Exemplo n.º 8
0
        protected override IEnumerable <TranslationGenerator> GetLocalizationGenerators()
        {
            foreach (var generator in base.GetLocalizationGenerators())
            {
                yield return(generator);
            }
            var readyToDump = TextDump.IsReadyForFinalDump();

            yield return(LocalizationMappingLocalizers);

            yield return(WrapTranslationCollector("Tutorials/TutorialTitles", TutorialTitleLocalizer));

            yield return(GetTutorialPrefabLocalizers);


            // this crashes, and doesn't find anything not covered already
            //foreach (var entry in GetUILocalizers(Singleton<Manager.Resources>.Instance.DefinePack, nameof(Singleton<Manager.Resources>.Instance.DefinePack)))
            //{
            //    yield return entry;
            //}
        }
Exemplo n.º 9
0
        protected override IEnumerable <TranslationGenerator> GetLocalizationGenerators()
        {
            foreach (var generator in base.GetLocalizationGenerators())
            {
                yield return(generator);
            }

            var readyToDump = TextDump.IsReadyForFinalDump();

            foreach (var dir in new[]
                     { "scene/common", "housing/base", "h/scene", "prefabs/tutorial_ui", "scene/map", "title/scene" })
            {
                yield return(() => GetBindLocalizers(dir));
            }

            // this crashes, and doesn't find anything not covered already
            //foreach (var entry in GetUILocalizers(Singleton<Manager.Resources>.Instance.DefinePack, nameof(Singleton<Manager.Resources>.Instance.DefinePack)))
            //{
            //    yield return entry;
            //}

            yield return(LocalizationMappingLocalizers);

            yield return(WrapTranslationCollector("Tutorials/TutorialTitles", TutorialTitleLocalizer));

            yield return(GetTutorialPrefabLocalizers);

            yield return(GetStaticLocalizers);

            yield return(GetPopupLocalizers);

            yield return(GetHousingItemLocalizers);

            yield return(GetItemLocalizers);

            yield return(MakeManagerResourceLocalizers);

            yield return(WrapTranslationCollector("Fallback/PersonalityLines", FallbackPersonalityLinesLocalizer));

            if (!readyToDump)
            {
                yield break;
            }

            yield return(MakeCharacterCategoryLocalizers);

            yield return(WrapTranslationCollector("GameInfoTables/AgentLifeStyle", AgentLifeStyleLocalizer));

            yield return(GetRecipeLocalizers);

            yield return(WrapTranslationCollector("Manager/Resources/DateActionName", DateActionNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/MapName", MapNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/ActionName", ActionNameLocalizer));

            yield return(WrapTranslationCollector("Manager/Resources/SickName", SickNameLocalizer));

            yield return(() => new[]
                         { MapLabelPostProcessor(new StringTranslationDumper("Manager/Resources/BaseName", BaseNameLocalizer)) });

            yield return(WrapTranslationCollector("Manager/Resources/MiniMapIconName", MiniMapIconNameLocalizer));

            yield return(GetHAnimationLocalizers);

            // add this one an extra time at the end
            yield return(() => GetBindLocalizers("scene/map"));
        }