示例#1
0
        private void SelectRecipe(Recipe recipe)
        {
            if (recipe != null && selectedRecipe != recipe)
            {
                selectedRecipe = recipe;

                UpdateRecipeText();

                ingredients.Clear();

                foreach (Item requiredItem in selectedRecipe.requiredItem)
                {
                    Item item = requiredItem.Clone();
                    ingredients.Add(item);

                    RecipeGroup recipeGroup = RecipeGroup.recipeGroups[RecipeGroupID.Wood];
                    if (selectedRecipe.anyWood && recipeGroup.ContainsItem(item.type))
                    {
                        item.SetNameOverride(recipeGroup.GetText());
                        continue;
                    }

                    recipeGroup = RecipeGroup.recipeGroups[RecipeGroupID.Sand];
                    if (selectedRecipe.anySand && recipeGroup.ContainsItem(item.type))
                    {
                        item.SetNameOverride(recipeGroup.GetText());
                        continue;
                    }

                    recipeGroup = RecipeGroup.recipeGroups[RecipeGroupID.IronBar];
                    if (selectedRecipe.anyIronBar && recipeGroup.ContainsItem(item.type))
                    {
                        item.SetNameOverride(recipeGroup.GetText());
                        continue;
                    }

                    recipeGroup = RecipeGroup.recipeGroups[RecipeGroupID.Fragment];
                    if (selectedRecipe.anyFragment && recipeGroup.ContainsItem(item.type))
                    {
                        item.SetNameOverride(recipeGroup.GetText());
                        continue;
                    }

                    recipeGroup = RecipeGroup.recipeGroups[RecipeGroupID.PressurePlate];
                    if (selectedRecipe.anyPressurePlate && recipeGroup.ContainsItem(item.type))
                    {
                        item.SetNameOverride(recipeGroup.GetText());
                        continue;
                    }

                    if (selectedRecipe.ProcessGroupsForText(item.type, out string nameOverride))
                    {
                        item.SetNameOverride(nameOverride);
                    }
                }

                RefreshStorageItems();
            }
        }
示例#2
0
            public override string ToString()
            {
                int count = listOfItems.Sum(x => x.Item2);

                return($"{ItemHoverFixTagHandler.GenerateTag(recipeGroup.ValidItems[recipeGroup.IconicItemIndex], count, recipeGroup.GetText(), false)} ({string.Concat(listOfItems.Select(x => ItemHoverFixTagHandler.GenerateTag(x.Item1, x.Item2, null, true)))})");
                // return $"Haves: {string.Join(", ", listOfItems.Select(x => $"{Lang.GetItemNameValue(x.Item1)} ({x.Item2})"))}";
            }
 static CraftGroup<ItemDef, ItemRef> ItemGroupFromVanilla(RecipeGroup g)
 {
     return new CraftGroup<ItemDef, ItemRef>(
         g.ValidItems.Select(t => new ItemRef(t)), g.GetText(), new ItemRef(g.IconicItemIndex));
 }
示例#4
0
 static CraftGroup <ItemDef, ItemRef> ItemGroupFromVanilla(RecipeGroup g)
 {
     return(new CraftGroup <ItemDef, ItemRef>(
                g.ValidItems.Select(t => new ItemRef(t)), g.GetText(), new ItemRef(g.IconicItemIndex)));
 }