private void WriteAppFile(string outputFileName, IEnumerable <CustomisationLocalised> localisedData, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames) { List <AppGameItemLang> appBlock = new List <AppGameItemLang>(); List <AppGameItemBase> appBlockBaseItems = new List <AppGameItemBase>(); foreach (CustomisationLocalised blockLocalised in localisedData) { foreach (CustomisationItemLocalised blockLoc in blockLocalised.Items) { if (GuidExclusion.All.Any(a => a.Equals(blockLoc.ItemId.Replace("_male", string.Empty).Replace("_female", string.Empty)))) { continue; } CustomisationItemLocalised relocalised = (language.LanguageType == LanguageType.English) ? blockLoc : blockLoc.ReLocaliseItem(itemNames); AppGameItem full = AppFileBlockMapper.ToAppFile(relocalised, blockLocalised.Category); if (!_appImagesRepo.FileExists("items", full.AppId)) { continue; } appBlock.Add(full.ToLang()); string image = GetItemImage(full.AppId); appBlockBaseItems.Add(full.ToBase(image)); } } _appFileSysRepo.WriteBackToJsonFile(appBlockBaseItems, outputFileName); _appFileSysRepo.WriteBackToJsonFile(appBlock, GetJsonLang(language.LanguageAppFolder, outputFileName)); }
private void WriteAppFile(string outputFileName, IEnumerable <GameItemLocalised> localisedData, Dictionary <string, List <ILocalised> > lookup, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames) { List <AppGameItemLang> appBlock = new List <AppGameItemLang>(); List <AppGameItemBase> appBlockBaseItems = new List <AppGameItemBase>(); foreach (GameItemLocalised blockLocalised in localisedData) { if (GuidExclusion.All.Any(a => a.Equals(blockLocalised.ItemId))) { continue; } GameItemLocalised relocalised = (language.LanguageType == LanguageType.English) ? blockLocalised : blockLocalised.ReLocalise(itemNames); GameItemFeatures defaultFeatures = new GameItemFeatures { Uuid = blockLocalised.ItemId, Features = null }; GameItemFeatures gameItemFeatures = FeaturesList.Features.FirstOrDefault(u => u.Uuid.Equals(blockLocalised.ItemId, StringComparison.InvariantCultureIgnoreCase)) ?? defaultFeatures; Upgrade gameItemUpgrades = UpgradeList.Upgrades.FirstOrDefault(u => u.Uuid.Equals(blockLocalised.ItemId, StringComparison.InvariantCultureIgnoreCase)); if (gameItemUpgrades != null && lookup.ContainsKey(gameItemUpgrades.TargetUuid)) { List <ILocalised> list = lookup[gameItemUpgrades.TargetUuid]; if (list != null && list.Count > 0) { if (list[0] is GameItemLocalised) { gameItemUpgrades.TargetId = list[0].AppId; } else { gameItemUpgrades = null; } } } AppGameItem full = AppFileBlockMapper.ToAppFile(relocalised, gameItemFeatures.Features, gameItemUpgrades); appBlock.Add(full.ToLang()); string image = GetItemImage(full.AppId); appBlockBaseItems.Add(full.ToBase(image)); } _appFileSysRepo.WriteBackToJsonFile(appBlockBaseItems, outputFileName); _appFileSysRepo.WriteBackToJsonFile(appBlock, GetJsonLang(language.LanguageAppFolder, outputFileName)); }
public static AppGameItem ToAppFile(CustomisationItemLocalised localisedData, string category) { AppGameItem recipe = new AppGameItem { AppId = localisedData.AppId, Flammable = false, PhysicsMaterial = "", Title = localisedData.Name, Description = category, Color = string.Empty, Ratings = null, Box = null, CustomisationSource = localisedData.Tier, }; return(recipe); }
public static AppGameItem ToAppFile(GameItemLocalised localisedData, List <Feature> features, Upgrade upgrades) { AppGameItem recipe = new AppGameItem { AppId = localisedData.AppId, Flammable = localisedData.Flammable, PhysicsMaterial = localisedData.PhysicsMaterial, Title = localisedData.Name, Color = localisedData.Color, Ratings = localisedData.Ratings, Box = localisedData.Box, Cylinder = localisedData.Cylinder, Features = features, Upgrade = upgrades, Edible = localisedData.Edible, }; return(recipe); }