Esempio n. 1
0
        internal static void AddRecipe(IAddedRecipe addedRecipe)
        {
            Assert.IsTrue(addedRecipe.ItemID <= TechType.Databox, "This API in intended only for use with standard, non-modded TechTypes.");

            HandleAddedRecipe(addedRecipe);

            HandleCraftTreeAddition(addedRecipe);

            HandleUnlocks(addedRecipe);
        }
Esempio n. 2
0
        private static void HandleCraftTreeAddition(IAddedRecipe addedRecipe)
        {
            var craftPath = new CraftingPath(addedRecipe.Path);

            string[] steps = craftPath.Path.Split(CraftingNode.Splitter);

            if (steps.Length <= 1)
            {
                CraftTreeHandler.AddCraftingNode(craftPath.Scheme, addedRecipe.ItemID);
            }
            else
            {
                CraftTreeHandler.AddCraftingNode(craftPath.Scheme, addedRecipe.ItemID, steps);
            }
        }
Esempio n. 3
0
        private static void HandleAddedRecipe(IAddedRecipe modifiedRecipe)
        {
            var replacement = new TechData
            {
                craftAmount = modifiedRecipe.AmountCrafted ?? 1
            };

            foreach (EmIngredient ingredient in modifiedRecipe.Ingredients)
            {
                replacement.Ingredients.Add(new Ingredient(ingredient.ItemID, ingredient.Required));
            }

            foreach (TechType linkedItem in modifiedRecipe.LinkedItems)
            {
                replacement.LinkedItems.Add(linkedItem);
            }

            CraftDataHandler.SetTechData(modifiedRecipe.ItemID, replacement);
        }