Exemplo n.º 1
0
        public static IReadOnlyCollection <Item> GetDIYItems(IReadOnlyList <string> split, string lang)
        {
            if (split.Count > 1 && split[0].Length < 3)
            {
                var langIndex = GameLanguage.GetLanguageIndex(split[0]);
                lang  = GameLanguage.Language2Char(langIndex);
                split = split.Skip(1).ToArray();
            }

            var result = new Item[split.Count];

            for (int i = 0; i < result.Length; i++)
            {
                var text = split[i].Trim();
                var item = ItemUtil.GetItem(text, lang);
                if (!InvertedRecipeDictionary.TryGetValue(item.ItemId, out var diy))
                {
                    throw new Exception($"DIY recipe appears to be invalid ({text}).");
                }

                result[i] = new Item(Item.DIYRecipe)
                {
                    Count = diy
                };
            }
            return(result);
        }
Exemplo n.º 2
0
        public static IReadOnlyCollection <Item> GetItems(IReadOnlyList <string> split, IConfigItem config, bool placeFloor, string lang)
        {
            if (split.Count > 1 && split[0].Length < 3)
            {
                var langIndex = GameLanguage.GetLanguageIndex(split[0]);
                lang  = GameLanguage.Language2Char(langIndex);
                split = split.Skip(1).ToArray();
            }

            var strings = GameInfo.Strings.itemlistdisplay;
            var result  = new Item[split.Count];

            for (int i = 0; i < result.Length; i++)
            {
                var text = split[i].Trim();
                var item = CreateItem(text, i, config, placeFloor, lang);

                if (item.ItemId >= strings.Length)
                {
                    throw new Exception($"Item requested is out of expected range ({item.ItemId:X4} > {strings.Length:X4}).");
                }
                if (string.IsNullOrWhiteSpace(strings[item.ItemId]))
                {
                    throw new Exception($"Item requested does not have a valid name ({item.ItemId:X4}).");
                }

                result[i] = item;
            }
            return(result);
        }
Exemplo n.º 3
0
        public static void SetLanguage2Char(int index)
        {
            var lang = GameLanguage.Language2Char(index);

            CurrentLanguage = lang;
            Strings         = GetStrings(lang);
        }
Exemplo n.º 4
0
        public static GameStrings GetStrings(int index)
        {
            if (Languages.Length > index)
            {
                if (Languages[index] != null)
                {
                    return(Languages[index]);
                }
            }

            return(new GameStrings(GameLanguage.Language2Char(index)));
        }
Exemplo n.º 5
0
 public static GameStrings GetStrings(int index)
 {
     return(Languages[index] ??= new GameStrings(GameLanguage.Language2Char(index)));
 }