示例#1
0
        private void WriteAppFile(string outputFileName, IEnumerable <RecipeLocalised> localisedData, Dictionary <string, List <ILocalised> > lookup, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames)
        {
            List <AppRecipeLang> appRecipe          = new List <AppRecipeLang>();
            List <AppRecipeBase> appRecipeBaseItems = new List <AppRecipeBase>();

            foreach (RecipeLocalised recipeLocalised in localisedData)
            {
                if (GuidExclusion.All.Any(a => a.Equals(recipeLocalised.ItemId)))
                {
                    continue;
                }

                RecipeLocalised relocalised = (language.LanguageType == LanguageType.English)
                    ? recipeLocalised
                    : recipeLocalised.ReLocalise(itemNames);

                AppRecipe full = AppFileReciperMapper.ToAppFile(relocalised, lookup);
                appRecipe.Add(full.ToLang());

                string image = GetItemImage(full.AppId);
                appRecipeBaseItems.Add(full.ToBase(image));
            }

            _appFileSysRepo.WriteBackToJsonFile(appRecipeBaseItems, outputFileName);
            _appFileSysRepo.WriteBackToJsonFile(appRecipe, GetJsonLang(language.LanguageAppFolder, outputFileName));
        }
        private List <NotFoundItem> GenerateRecipeIntermediate(string filename, Dictionary <string, InventoryDescription> itemNames, string prefix, string outputFilename, Dictionary <string, List <ILocalised> > lookup, List <NotFoundItem> notFounds)
        {
            List <Recipe> jsonContent = _survivalCraftingFileSysRepo.LoadListJsonFile <Recipe>(filename);

            int currentOtherIndex        = notFounds.Count;
            int prefixCount              = currentOtherIndex + 1;
            List <NotFoundItem> notFound = new List <NotFoundItem>();

            List <RecipeLocalised> fileData = new List <RecipeLocalised>();

            for (int recipeIndex = 0; recipeIndex < jsonContent.Count; recipeIndex++)
            {
                Recipe          recipe    = jsonContent[recipeIndex];
                RecipeLocalised localised = recipe.Localise(prefix, recipeIndex, itemNames);

                if (!lookup.ContainsKey(localised.ItemId))
                {
                    bool nfContains = notFounds.Any(nf =>
                                                    nf.ItemId.Equals(localised.ItemId, StringComparison.InvariantCultureIgnoreCase));
                    if (!nfContains)
                    {
                        notFound.Add(new NotFoundItem
                        {
                            AppId  = $"{Prefix.Other}{prefixCount}",
                            ItemId = recipe.ItemId,
                        });
                        prefixCount++;
                    }
                }
                fileData.Add(localised);
            }

            _outputFileSysRepo.WriteBackToJsonFile(fileData, outputFilename);
            return(notFound);
        }