diff --git a/data-util.lua b/data-util.lua index 84b7785..1dc5fef 100644 --- a/data-util.lua +++ b/data-util.lua @@ -54,6 +54,19 @@ function util.contains(table, sought) return false end +-- Set/override a technology's prerequisites +function util.set_prerequisite(technology_name, prerequisites) + local technology = data.raw.technology[technology_name] + if technology then + technology.prerequisites = {} + for i, prerequisite in pairs(prerequisites) do + if data.raw.technology[prerequisite] then + table.insert(technology.prerequisites, prerequisite) + end + end + end +end + -- Add a prerequisite to a given technology function util.add_prerequisite(technology_name, prerequisite) local technology = data.raw.technology[technology_name] @@ -444,14 +457,19 @@ function util.replace_product(recipe_name, old, new) end function replace_product(recipe, old, new) - if recipe ~= nil and recipe.results ~= nil then + if recipe then + if recipe.main_product == old then + recipe.main_product = new + end if recipe.result == old then - recipe.results = new + recipe.result = new return end - for i, result in pairs(recipe.results) do - if result.name == old then result.name = new end - if result[1] == old then result[1] = new end + if recipe.results then + for i, result in pairs(recipe.results) do + if result.name == old then result.name = new end + if result[1] == old then result[1] = new end + end end end end @@ -541,10 +559,10 @@ end -- Set recipe icons function util.set_item_icons(item_name, icons) - if data.raw.recipe[item_name] then - data.raw.recipe[item_name].icons = icons - data.raw.recipe[item_name].icon = nil - data.raw.recipe[item_name].icon_size = nil + if data.raw.item[item_name] then + data.raw.item[item_name].icons = icons + data.raw.item[item_name].icon = nil + data.raw.item[item_name].icon_size = nil end end