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); }
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); } }
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); }