public static Recipe AddNewRecipe(string name, string itemId, RecipeConfig recipeConfig) { var recipe = CreateRecipe(name, itemId, recipeConfig); if (recipe == null) { Debug.LogError($"[PrefabCreator] Failed to create recipe ({name})"); return(null); } return(AddNewRecipe(recipe)); }
public static Recipe AddNewRecipe(string name, string itemId, RecipeConfig recipeConfig) { var recipe = CreateRecipe(name, itemId, recipeConfig); return(AddNewRecipe(recipe)); }
public static Recipe CreateRecipe(string name, string itemId, RecipeConfig recipeConfig) { var newRecipe = ScriptableObject.CreateInstance <Recipe>(); newRecipe.name = name; newRecipe.m_amount = recipeConfig.amount; newRecipe.m_minStationLevel = recipeConfig.minStationLevel; newRecipe.m_item = ObjectDB.instance.GetItemPrefab(itemId).GetComponent <ItemDrop>(); newRecipe.m_enabled = recipeConfig.enabled; if (!string.IsNullOrEmpty(recipeConfig.craftingStation)) { var craftingStationExists = CraftingStations.ContainsKey(recipeConfig.craftingStation); if (!craftingStationExists) { Debug.LogWarning($"[PrefabCreator] Could not find crafting station ({itemId}): {recipeConfig.craftingStation}"); var stationList = string.Join(", ", CraftingStations.Keys); Debug.Log($"[PrefabCreator] Available Stations: {stationList}"); } else { newRecipe.m_craftingStation = CraftingStations[recipeConfig.craftingStation]; } } if (!string.IsNullOrEmpty(recipeConfig.repairStation)) { var repairStationExists = CraftingStations.ContainsKey(recipeConfig.repairStation); if (!repairStationExists) { Debug.LogWarning($"[PrefabCreator] Could not find repair station ({itemId}): {recipeConfig.repairStation}"); var stationList = string.Join(", ", CraftingStations.Keys); Debug.Log($"[PrefabCreator] Available Stations: {stationList}"); } else { newRecipe.m_repairStation = CraftingStations[recipeConfig.repairStation]; } } var reqs = new List <Piece.Requirement>(); foreach (var requirement in recipeConfig.resources) { var reqPrefab = ObjectDB.instance.GetItemPrefab(requirement.item); if (reqPrefab == null) { Debug.LogError($"[PrefabCreator] Could not load requirement item ({itemId}): {requirement.item}"); continue; } reqs.Add(new Piece.Requirement() { m_amount = requirement.amount, m_resItem = reqPrefab.GetComponent <ItemDrop>() }); } newRecipe.m_resources = reqs.ToArray(); return(newRecipe); }