Beispiel #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();
            }
        }