Ejemplo n.º 1
0
        public static GameItemLocalised Localise(this GameItem gameItem, string prefix, int index, Dictionary <string, InventoryDescription> itemNames)
        {
            GameItemLocalised blockLocalised = new GameItemLocalised
            {
                AppId           = $"{prefix}{(index + 1)}",
                ItemId          = gameItem.Uuid,
                GameName        = gameItem.Name,
                Color           = gameItem.Color,
                Flammable       = gameItem.Flammable,
                Name            = itemNames.GetTitle(gameItem.Uuid),
                Description     = itemNames.GetDescription(gameItem.Uuid),
                PhysicsMaterial = gameItem.PhysicsMaterial,
                Ratings         = gameItem.Ratings,
                Box             = gameItem.Box,
                Cylinder        = gameItem.Cylinder,
                StackSize       = gameItem.StackSize,
                Edible          = gameItem.Edible,
            };

            List <int> boxSizes  = GetSizesFromBox(blockLocalised.Box);
            List <int> hullSizes = GetSizesFromBox(gameItem.Hull);

            if (hullSizes.Count > boxSizes.Count)
            {
                blockLocalised.Box = gameItem.Hull;
            }

            return(blockLocalised);
        }
Ejemplo n.º 2
0
        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 GameItemLocalised Localise(this Blocks block, string prefix, int index, Dictionary <string, InventoryDescription> itemNames)
        {
            GameItemLocalised blockLocalised = new GameItemLocalised
            {
                AppId           = $"{prefix}{(index + 1)}",
                GameName        = block.Name,
                ItemId          = block.Uuid,
                Color           = block.Color,
                Flammable       = block.Flammable,
                Name            = itemNames.GetTitle(block.Uuid),
                PhysicsMaterial = block.PhysicsMaterial,
                Ratings         = block.Ratings,
                Box             = null,
                Cylinder        = null,
            };

            return(blockLocalised);
        }
Ejemplo n.º 4
0
        public static GameItemLocalised ReLocalise(this GameItemLocalised gameItem, Dictionary <string, InventoryDescription> itemNames)
        {
            string locName = itemNames.GetTitle(gameItem.ItemId);

            if (!string.IsNullOrEmpty(locName))
            {
                gameItem.Name = locName;
            }

            string locDescription = itemNames.GetDescription(gameItem.ItemId);

            if (!string.IsNullOrEmpty(locDescription))
            {
                gameItem.Description = locDescription;
            }

            return(gameItem);
        }
Ejemplo n.º 5
0
        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);
        }
        public void GenerateGameItemIntermediate(string filename, string prefix, string outputFilename, Dictionary <string, InventoryDescription> itemNames)
        {
            GameItemlist legacyGameItemList = _legacyShapeSetsFileSysRepo.LoadJsonFile <GameItemlist>(filename);
            GameItemlist gameItemList       = _shapeSetsFileSysRepo.LoadJsonFile <GameItemlist>(filename);

            Dictionary <string, GameItem> distinctItems = new Dictionary <string, GameItem>();

            foreach (GameItem gameItem in gameItemList?.GameItemList ?? new List <GameItem>())
            {
                if (!distinctItems.ContainsKey(gameItem.Uuid))
                {
                    distinctItems.Add(gameItem.Uuid, gameItem);
                }
            }
            foreach (GameItem legacyGameItem in legacyGameItemList?.GameItemList ?? new List <GameItem>())
            {
                if (!distinctItems.ContainsKey(legacyGameItem.Uuid))
                {
                    distinctItems.Add(legacyGameItem.Uuid, legacyGameItem);
                }
            }

            List <GameItem>          all      = distinctItems.Values.ToList();
            List <GameItemLocalised> fileData = new List <GameItemLocalised>();

            for (int gameItemIndex = 0; gameItemIndex < all.Count; gameItemIndex++)
            {
                GameItemLocalised locItem = all[gameItemIndex].Localise(prefix, gameItemIndex, itemNames);
                if (locItem.Name.Contains("obj_"))
                {
                    continue;
                }
                fileData.Add(locItem);
            }

            if (fileData.Count < 1)
            {
                var k = 1 + 1;
            }

            _outputFileSysRepo.WriteBackToJsonFile(fileData, outputFilename);
        }
        public void GenerateCrateRequirementFiles(List <GameItemLocalised> localisedGameItems)
        {
            List <AppRecipe> recipes = new List <AppRecipe>();

            foreach (PackingStationItem packingStationItem in PackingStationLuaFile.AllItems)
            {
                GameItemLocalised outputAppItem = localisedGameItems.FirstOrDefault(g => g.ItemId.Equals(packingStationItem.CrateGuid));
                if (outputAppItem == null)
                {
                    continue;
                }

                string            ingredientGameId  = PackingStationLuaFile.NameToGuidDictionary[packingStationItem.projectileName];
                GameItemLocalised ingredientAppItem = localisedGameItems.FirstOrDefault(g => g.ItemId.Equals(ingredientGameId));
                if (ingredientAppItem == null)
                {
                    continue;
                }

                recipes.Add(new AppRecipe
                {
                    AppId  = $"packing{recipes.Count + 1}",
                    Output = new AppIngredient
                    {
                        AppId    = outputAppItem.AppId,
                        Quantity = 1
                    },
                    Inputs = new List <AppIngredient>
                    {
                        new AppIngredient
                        {
                            AppId    = ingredientAppItem.AppId,
                            Quantity = packingStationItem.fullAmount
                        }
                    }
                });
            }

            _appDataSysRepo.WriteBackToJsonFile(recipes.OrderBy(aa => aa.AppId), AppDataFile.PackingStation);
        }