diff --git a/changelog.txt b/changelog.txt index d0bc409..951c874 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,3 @@ ---------------------------------------------------------------------------------------------------- Version: 0.10.2 Date: 2021-03-10 Features: diff --git a/data-util.lua b/data-util.lua index 405551a..ce9deb3 100644 --- a/data-util.lua +++ b/data-util.lua @@ -24,6 +24,21 @@ function data_util.get_stack_size(default) return default end +function data_util.steel_to_titanium(name) + data_util.replace_ingredient(name, "steel-plate", "titanium-plate") +end + +function data_util.add_titanium_ingredient(amount, name) + data_util.add_ingredient(name, "titanium-plate", amount) +end + +function data_util.rare_to_titanium(name) + data_util.replace_ingredient(name, "rare-metals", "titanium-plate") +end + +function data_util.add_titanium_prerequisite(name) + data_util.add_prerequisite(name, data_util.titanium_processing) +end -- Remove an element of type t and name from data.raw @@ -36,35 +51,14 @@ function data_util.remove_raw(t, name) end end -function data_util.check_for_ingredient(recipe, name) - if recipe ~= nil and recipe.ingredients ~= nil then - for i, ingredient in pairs(recipe.ingredients) do - if ingredient.name == name then - return true - end - end - end - return false -end - ---- Add a given quantity of titanium plates to a given recipe -function data_util.add_titanium_ingredient(quantity, recipe) - if recipe ~= nil and recipe.ingredients ~= nil then - if data_util.check_for_ingredient(recipe, data_util.titanium_plate) then - return - end - table.insert(recipe.ingredients, {data_util.titanium_plate, quantity}) +-- Add a prerequisite to a given technology +function data_util.add_prerequisite(technology_name, prerequisite) + technology = data.raw.technology[technology_name] + if technology then + table.insert(technology.prerequisites, prerequisite) end end ---- Add titanium processing as a prerequisite to a given technology -function data_util.add_titanium_prerequisite(technology) - if (mods["pyrawores"] or mods["bobplates"] or mods["angelssmelting"]) then - return - end - table.insert(technology.prerequisites, data_util.titanium_processing) -end - --- removes a prerequisite tech function data_util.remove_prerequisite(tech, prereq) if data.raw.technology[tech] then @@ -77,21 +71,37 @@ function data_util.remove_prerequisite(tech, prereq) end end ---- Change all occurances of steel plates to titanium plates in a given recipe -function data_util.steel_to_titanium(recipe) - data_util.replace_ingredient(recipe, "steel-plate", data_util.titanium_plate) +-- Add a given quantity of ingredient to a given recipe +function data_util.add_ingredient(recipe_name, ingredient, quantity) + if data.raw.recipe[recipe_name] then + add_ingredient(data.raw.recipe[recipe_name], ingredient, quantity) + add_ingredient(data.raw.recipe[recipe_name].normal, ingredient, quantity) + add_ingredient(data.raw.recipe[recipe_name].expensive, ingredient, quantity) + end end ---- Change all occurances of rare metals to titanium plates in a given recipe -function data_util.rare_to_titanium(recipe) - data_util.replace_ingredient(recipe, "rare-metals", data_util.titanium_plate) -end - -function data_util.replace_ingredient(recipe, old, new) - if recipe ~= nil and recipe.ingredients ~= nil then - if data_util.check_for_ingredient(recipe, new) then - return +function add_ingredient(recipe, ingredient, quantity) + if recipe ~= nil and recipe.ingredients ~= nil then + for _, existing in ipairs(recipe.ingredients) do + if ingredient == existing.name or ingredient == existing[1] then + return + end end + table.insert(recipe.ingredients, {ingredient, quantity}) + end +end + +-- Replace one ingredien with another in a recipe +function data_util.replace_ingredient(recipe_name, old, new) + if data.raw.recipe[recipe_name] then + replace_ingredient(data.raw.recipe[recipe_name], old, new) + replace_ingredient(data.raw.recipe[recipe_name].normal, old, new) + replace_ingredient(data.raw.recipe[recipe_name].expensive, old, new) + end +end + +function replace_ingredient(recipe, old, new) + if recipe ~= nil and recipe.ingredients ~= nil then for i, ingredient in pairs(recipe.ingredients) do -- For final fixes if ingredient.name == old then ingredient.name = new end @@ -101,4 +111,120 @@ function data_util.replace_ingredient(recipe, old, new) end end +-- Remove an ingredient from a recipe +function data_util.remove_ingredient(recipe_name, old) + if data.raw.recipe[recipe_name] then + remove_ingredient(data.raw.recipe[recipe_name], old) + remove_ingredient(data.raw.recipe[recipe_name].normal, old) + remove_ingredient(data.raw.recipe[recipe_name].expensive, old) + end +end + +function remove_ingredient(recipe, old) + index = -1 + if recipe ~= nil and recipe.ingredients ~= nil then + for i, ingredient in pairs(recipe.ingredients) do + if ingredient.name == old or ingredient[1] == old then + index = i + break + end + end + if index > -1 then + table.remove(recipe.ingredients, index) + end + end +end + + +-- Replace an amount of an ingredient in a recipe. Keep at least 1 of old. +function data_util.replace_some_ingredient(recipe_name, old, old_amount, new, new_amount) + replace_some_ingredient(data.raw.recipe[recipe_name], old, old_amount, new, new_amount) + replace_some_ingredient(data.raw.recipe[recipe_name].normal, old, old_amount, new, new_amount) + replace_some_ingredient(data.raw.recipe[recipe_name].expensive, old, old_amount, new, new_amount) +end + +function replace_some_ingredient(recipe, old, old_amount, new, new_amount) + if recipe ~= nil and recipe.ingredients ~= nil then + for i, ingredient in pairs(recipe.ingredients) do + if ingredient.name == old then + ingredient.amount = math.max(1, ingredient.amount - old_amount) + end + if ingredient[1] == old then + ingredient[2] = math.max(1, ingredient[2] - old_amount) + end + end + add_ingredient(recipe, new, new_amount) + end +end + +-- Add an effect to a given technology +function data_util.add_effect(technology_name, effect) + technology = data.raw.technology[technology_name] + if technology then + table.insert(technology.effects, effect) + end +end + +-- check if a table contains a sought value +function data_util.contains(table, sought) + for i, value in pairs(table) do + if value == sought then + return true + end + end + return false +end + + +-- multiply the cost, energy, and results of a recipe by a multiple +function data_util.multiply_recipe(recipe_name, multiple) + multiply_recipe(data.raw.recipe[recipe_name], multiple) + multiply_recipe(data.raw.recipe[recipe_name].normal, multiple) + multiply_recipe(data.raw.recipe[recipe_name].expensive, multiple) +end + +function multiply_recipe(recipe, multiple) + if recipe then + if recipe.energy_required then + recipe.energy_required = recipe.energy_required * multiple + end + if recipe.result_count then + recipe.result_count = recipe.result_count * multiple + end + if recipe.results then + for i, result in pairs(recipe.results) do + if result.name then + if result.amount then + result.amount = result.amount * multiple + end + if result.amount_min ~= nil then + result.amount_min = result.amount_min * multiple + result.amount_max = result.amount_max * multiple + end + if result.catalyst_amount then + result.catalyst_amount = result.catalyst_amount * multiple + end + end + if result[1] then + result[2] = result[2] * multiple + end + end + end + if not recipe.results and not recipe.result_count then + -- implicit one item result + recipe.result_count = multiple + end + if recipe.ingredients then + for i, ingredient in pairs(recipe.ingredients) do + if ingredient.name then + ingredient.amount = ingredient.amount * multiple + end + if ingredient[1] then + ingredient[2] = ingredient[2] * multiple + end + end + end + end +end + return data_util diff --git a/info.json b/info.json index 7934842..285ff63 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "bztitanium", - "version": "0.10.2", + "version": "0.10.3", "factorio_version": "1.1", "title": "Titanium", "author": "Brevven", diff --git a/titanium-recipe-final-5d.lua b/titanium-recipe-final-5d.lua index 0cbec43..8068a29 100644 --- a/titanium-recipe-final-5d.lua +++ b/titanium-recipe-final-5d.lua @@ -89,56 +89,33 @@ if mods["5dim_core"] then table.insert(data.raw.technology[util.titanium_processing].effects, {type = "unlock-recipe", recipe="titanium-plate-industrial-dust"}) - if mods["5dim_automation"] then - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-07"]) - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-07"].normal) - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-07"].expensive) - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-08"]) - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-08"].normal) - util.steel_to_titanium(data.raw.recipe["5d-assembling-machine-08"].expensive) - util.steel_to_titanium(data.raw.recipe["5d-lab-06"]) - util.steel_to_titanium(data.raw.recipe["5d-lab-06"].normal) - util.steel_to_titanium(data.raw.recipe["5d-lab-06"].expensive) - util.steel_to_titanium(data.raw.recipe["5d-lab-07"]) - util.steel_to_titanium(data.raw.recipe["5d-lab-07"].normal) - util.steel_to_titanium(data.raw.recipe["5d-lab-07"].expensive) + if mods["5dim_automation"] then + for i, name in ipairs( + {"5d-assembling-machine-07","5d-assembling-machine-08","5d-lab-06","5d-lab-07"}) do + util.steel_to_titanium(name) + end + end if mods["5dim_nuclear"] then - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-02"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-02"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-02"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-03"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-03"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-03"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-04"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-04"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-04"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-05"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-05"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-05"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-06"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-06"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-06"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-07"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-07"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-07"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-08"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-08"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-08"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-09"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-09"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-09"].expensive) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-10"]) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-10"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["5d-steam-turbine-10"].expensive) + for i, name in ipairs( + { + "5d-steam-turbine-02", + "5d-steam-turbine-03", + "5d-steam-turbine-04", + "5d-steam-turbine-05", + "5d-steam-turbine-06", + "5d-steam-turbine-07", + "5d-steam-turbine-08", + "5d-steam-turbine-09", + "5d-steam-turbine-10" + }) do + util.add_ingredient(name, "titanium-plate", 20) + end end if mods["5dim_battlefield"] then - util.steel_to_titanium(data.raw.recipe["5d-stone-wall-09"]) - util.steel_to_titanium(data.raw.recipe["5d-stone-wall-09"].normal) - util.steel_to_titanium(data.raw.recipe["5d-stone-wall-09"].expensive) + util.steel_to_titanium(name) end - end diff --git a/titanium-recipe-final-k2.lua b/titanium-recipe-final-k2.lua index 1029d57..e2cf44e 100644 --- a/titanium-recipe-final-k2.lua +++ b/titanium-recipe-final-k2.lua @@ -4,26 +4,22 @@ local util = require("__bztitanium__.data-util"); if mods["Krastorio2"] then -- Titanium modifies flying robot frames, so use them in a reasonable tech card in Krastorio 2 - util.replace_ingredient(data.raw.recipe["advanced-tech-card"], "electric-engine-unit", "flying-robot-frame") + util.replace_ingredient("advanced-tech-card", "electric-engine-unit", "flying-robot-frame") -- Flavor changes - util.rare_to_titanium(data.raw.recipe["kr-electric-mining-drill-mk2"]) - util.rare_to_titanium(data.raw.recipe["kr-advanced-transport-belt"]) - util.rare_to_titanium(data.raw.recipe["kr-advanced-loader"]) + util.rare_to_titanium("kr-electric-mining-drill-mk2") + util.rare_to_titanium("kr-advanced-transport-belt") + util.rare_to_titanium("kr-advanced-loader") if mods["deadlock-beltboxes-loaders"] then - util.rare_to_titanium(data.raw.recipe["kr-advanced-transport-belt-beltbox"]) - util.rare_to_titanium(data.raw.recipe["kr-advanced-transport-belt-loader"]) + util.rare_to_titanium("kr-advanced-transport-belt-beltbox") + util.rare_to_titanium("kr-advanced-transport-belt-loader") end - util.steel_to_titanium(data.raw.recipe["kr-quarry-drill"]) - util.steel_to_titanium(data.raw.recipe["kr-singularity-lab"]) + util.steel_to_titanium("kr-quarry-drill") + util.steel_to_titanium("kr-singularity-lab") - util.steel_to_titanium(data.raw.recipe["stack-inserter"]) - util.steel_to_titanium(data.raw.recipe["stack-inserter"].normal) - util.steel_to_titanium(data.raw.recipe["stack-inserter"].expensive) - util.steel_to_titanium(data.raw.recipe["stack-filter-inserter"]) - util.steel_to_titanium(data.raw.recipe["stack-filter-inserter"].normal) - util.steel_to_titanium(data.raw.recipe["stack-filter-inserter"].expensive) + util.steel_to_titanium("stack-inserter") + util.steel_to_titanium("stack-filter-inserter") - util.add_titanium_ingredient(40, data.raw.recipe["kr-advanced-steam-turbine"]) + util.add_titanium_ingredient(40, "kr-advanced-steam-turbine") end diff --git a/titanium-recipe-final-modmash.lua b/titanium-recipe-final-modmash.lua index 99009ad..8241451 100644 --- a/titanium-recipe-final-modmash.lua +++ b/titanium-recipe-final-modmash.lua @@ -18,18 +18,10 @@ if mods["modmashsplinter"] then end if mods["modmashsplinterlogistics"] then - util.steel_to_titanium(data.raw.recipe["regenerative-transport-belt"]) - util.steel_to_titanium(data.raw.recipe["regenerative-transport-belt"].normal) - util.steel_to_titanium(data.raw.recipe["regenerative-transport-belt"].expensive) - util.steel_to_titanium(data.raw.recipe["regenerative-splitter"]) - util.steel_to_titanium(data.raw.recipe["regenerative-splitter"].normal) - util.steel_to_titanium(data.raw.recipe["regenerative-splitter"].expensive) - util.steel_to_titanium(data.raw.recipe["regenerative-underground-belt-structure"]) - util.steel_to_titanium(data.raw.recipe["regenerative-underground-belt-structure"].normal) - util.steel_to_titanium(data.raw.recipe["regenerative-underground-belt-structure"].expensive) - util.steel_to_titanium(data.raw.recipe["regenerative-mini-loader"]) - util.steel_to_titanium(data.raw.recipe["regenerative-mini-loader"].normal) - util.steel_to_titanium(data.raw.recipe["regenerative-mini-loader"].expensive) + util.steel_to_titanium("regenerative-transport-belt") + util.steel_to_titanium("regenerative-splitter") + util.steel_to_titanium("regenerative-underground-belt-structure") + util.steel_to_titanium("regenerative-mini-loader") end end diff --git a/titanium-recipe-final-se.lua b/titanium-recipe-final-se.lua index 1f7001b..c6923e7 100644 --- a/titanium-recipe-final-se.lua +++ b/titanium-recipe-final-se.lua @@ -3,42 +3,22 @@ local util = require("__bztitanium__.data-util"); if data.raw.recipe["se-space-pipe"] then -- Space Exploration space stuff - util.steel_to_titanium(data.raw.recipe["se-space-pipe"]) - util.steel_to_titanium(data.raw.recipe["se-space-pipe"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-pipe"].expensive) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt"]) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt"].expensive) - util.steel_to_titanium(data.raw.recipe["se-space-underground-belt"]) - util.steel_to_titanium(data.raw.recipe["se-space-underground-belt"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-underground-belt"].expensive) - util.steel_to_titanium(data.raw.recipe["se-space-splitter"]) - util.steel_to_titanium(data.raw.recipe["se-space-splitter"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-splitter"].expensive) - util.steel_to_titanium(data.raw.recipe["se-space-rail"]) - util.steel_to_titanium(data.raw.recipe["se-space-rail"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-rail"].expensive) - util.add_titanium_ingredient(1, data.raw.recipe["se-space-platform-scaffold"]) - util.add_titanium_ingredient(1, data.raw.recipe["se-space-platform-scaffold"].normal) - util.add_titanium_ingredient(1, data.raw.recipe["se-space-platform-scaffold"].expensive) + util.steel_to_titanium("se-space-pipe") + util.steel_to_titanium("se-space-transport-belt") + util.steel_to_titanium("se-space-underground-belt") + util.steel_to_titanium("se-space-splitter") + util.steel_to_titanium("se-space-rail") + util.add_titanium_ingredient(1, "se-space-platform-scaffold") -- Space Exploration alternative LDS - util.steel_to_titanium(data.raw.recipe["se-low-density-structure-beryllium"]) - util.steel_to_titanium(data.raw.recipe["se-low-density-structure-beryllium"].normal) - util.steel_to_titanium(data.raw.recipe["se-low-density-structure-beryllium"].expensive) + util.steel_to_titanium("se-low-density-structure-beryllium") -- Space Exploration buildings - util.add_titanium_ingredient(20, data.raw.recipe["se-condenser-turbine"]) - util.add_titanium_ingredient(20, data.raw.recipe["se-condenser-turbine"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["se-condenser-turbine"].expensive) + util.add_titanium_ingredient(20, "se-condenser-turbine") -- A couple more deeper tech thematic items to use titanium in. - util.add_titanium_ingredient(2, data.raw.recipe["se-lattice-pressure-vessel"]) - util.add_titanium_ingredient(2, data.raw.recipe["se-lattice-pressure-vessel"].normal) - util.add_titanium_ingredient(2, data.raw.recipe["se-lattice-pressure-vessel"].expensive) - util.add_titanium_ingredient(2, data.raw.recipe["se-aeroframe-bulkhead"]) - util.add_titanium_ingredient(2, data.raw.recipe["se-aeroframe-bulkhead"].normal) - util.add_titanium_ingredient(2, data.raw.recipe["se-aeroframe-bulkhead"].expensive) + util.add_titanium_ingredient(2, "se-lattice-pressure-vessel") + util.add_titanium_ingredient(2, "se-aeroframe-bulkhead") -- Organization data.raw.item["titanium-plate"].subgroup = "plates" @@ -46,14 +26,10 @@ if data.raw.recipe["se-space-pipe"] then -- deadlock loaders for SE -- mods["deadlock-beltboxes-loaders"] if mods["Deadlock-SE-bridge"] then if data.raw.recipe["se-space-transport-belt-loader"] then - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-loader"]) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-loader"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-loader"].expensive) + util.steel_to_titanium("se-space-transport-belt-loader") end if data.raw.recipe["se-space-transport-belt-beltbox"] then - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-beltbox"]) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-beltbox"].normal) - util.steel_to_titanium(data.raw.recipe["se-space-transport-belt-beltbox"].expensive) + util.steel_to_titanium("se-space-transport-belt-beltbox") end end end diff --git a/titanium-recipe-final-transport.lua b/titanium-recipe-final-transport.lua index e994868..88bb710 100644 --- a/titanium-recipe-final-transport.lua +++ b/titanium-recipe-final-transport.lua @@ -2,69 +2,43 @@ local util = require("__bztitanium__.data-util"); -- Various vehicle/transport mod changes if mods["Aircraft"] then - util.steel_to_titanium(data.raw.recipe["gunship"]) - util.steel_to_titanium(data.raw.recipe["gunship"].normal) - util.steel_to_titanium(data.raw.recipe["gunship"].expensive) - util.steel_to_titanium(data.raw.recipe["cargo-plane"]) - util.steel_to_titanium(data.raw.recipe["cargo-plane"].normal) - util.steel_to_titanium(data.raw.recipe["cargo-plane"].expensive) - util.steel_to_titanium(data.raw.recipe["flying-fortress"]) - util.steel_to_titanium(data.raw.recipe["flying-fortress"].normal) - util.steel_to_titanium(data.raw.recipe["flying-fortress"].expensive) - util.add_titanium_ingredient(10, data.raw.recipe["aircraft-afterburner"]) - util.add_titanium_ingredient(10, data.raw.recipe["aircraft-afterburner"].normal) - util.add_titanium_ingredient(20, data.raw.recipe["aircraft-afterburner"].expensive) + util.steel_to_titanium("gunship") + util.steel_to_titanium("cargo-plane") + util.steel_to_titanium("flying-fortress") + util.add_titanium_ingredient(10, "aircraft-afterburner") -- jet doesn't use steel in base aircraft mod, but leave this here just in case that changes - util.steel_to_titanium(data.raw.recipe["jet"]) - util.steel_to_titanium(data.raw.recipe["jet"].normal) - util.steel_to_titanium(data.raw.recipe["jet"].expensive) + util.steel_to_titanium("jet") end if mods["betterCargoPlanes"] then - util.steel_to_titanium(data.raw.recipe["better-cargo-plane"]) - util.steel_to_titanium(data.raw.recipe["better-cargo-plane"].normal) - util.steel_to_titanium(data.raw.recipe["better-cargo-plane"].expensive) + util.steel_to_titanium("better-cargo-plane") end if mods["HelicopterRevival"] or mods["Helicopters"] then - util.steel_to_titanium(data.raw.recipe["heli-recipe"]) - util.steel_to_titanium(data.raw.recipe["heli-recipe"].normal) - util.steel_to_titanium(data.raw.recipe["heli-recipe"].expensive) + util.steel_to_titanium("heli-recipe") end if mods["adamo-chopper"] then - util.steel_to_titanium(data.raw.recipe["chopper-recipe"]) - util.steel_to_titanium(data.raw.recipe["chopper-recipe"].normal) - util.steel_to_titanium(data.raw.recipe["chopper-recipe"].expensive) + util.steel_to_titanium("chopper-recipe") end if mods["jetpack"] then - util.steel_to_titanium(data.raw.recipe["jetpack-1"]) - util.steel_to_titanium(data.raw.recipe["jetpack-1"].normal) - util.steel_to_titanium(data.raw.recipe["jetpack-1"].expensive) + util.steel_to_titanium("jetpack-1") end if mods["Hovercrafts"] or mods["Hovercrafts_Realism"] then - util.steel_to_titanium(data.raw.recipe["hcraft-recipe"]) - util.steel_to_titanium(data.raw.recipe["hcraft-recipe"].normal) - util.steel_to_titanium(data.raw.recipe["hcraft-recipe"].expensive) - util.add_titanium_prerequisite(data.raw.technology["hcraft-tech"]) + util.steel_to_titanium("hcraft-recipe") + util.add_titanium_prerequisite("hcraft-tech") end if mods["Raven"] then - util.add_titanium_ingredient(100, data.raw.recipe["raven"]) - util.add_titanium_ingredient(100, data.raw.recipe["raven"].normal) - util.add_titanium_ingredient(100, data.raw.recipe["raven"].expensive) + util.add_titanium_ingredient(100, "raven") end if mods["Hover-Car"] then - util.steel_to_titanium(data.raw.recipe["hover-car-recipe"]) - util.steel_to_titanium(data.raw.recipe["hover-car-recipe"].normal) - util.steel_to_titanium(data.raw.recipe["hover-car-recipe"].expensive) - util.steel_to_titanium(data.raw.recipe["hover-car-mk2-recipe"]) - util.steel_to_titanium(data.raw.recipe["hover-car-mk2-recipe"].normal) - util.steel_to_titanium(data.raw.recipe["hover-car-mk2-recipe"].expensive) + util.steel_to_titanium("hover-car-recipe") + util.steel_to_titanium("hover-car-mk2-recipe") end -- Just a general compatiblity improvement with py alien life enabled alongside jetpack or other equipment mods diff --git a/titanium-recipe-final.lua b/titanium-recipe-final.lua index 60f4325..1b0ffdb 100644 --- a/titanium-recipe-final.lua +++ b/titanium-recipe-final.lua @@ -3,39 +3,27 @@ local util = require("__bztitanium__.data-util"); -util.steel_to_titanium(data.raw.recipe["low-density-structure"]) -util.steel_to_titanium(data.raw.recipe["low-density-structure"].normal) -util.steel_to_titanium(data.raw.recipe["low-density-structure"].expensive) +util.steel_to_titanium("low-density-structure") if not mods["bobrevamp"] then - util.add_titanium_prerequisite(data.raw.technology["low-density-structure"]) + util.add_titanium_prerequisite("low-density-structure") end if (not mods["bobplates"] and not mods["angelssmelting"]) then - util.steel_to_titanium(data.raw.recipe["flying-robot-frame"]) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame"].normal) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame"].expensive) - util.add_titanium_prerequisite(data.raw.technology["robotics"]) + util.steel_to_titanium("flying-robot-frame") + util.add_titanium_prerequisite("robotics") end if (mods["bobrevamp"] and not mods["bobplates"] and not mods["angelssmelting"]) then - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-2"]) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-2"].normal) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-2"].expensive) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-3"]) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-3"].normal) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-3"].expensive) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-4"]) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-4"].normal) - util.steel_to_titanium(data.raw.recipe["flying-robot-frame-4"].expensive) + util.steel_to_titanium("flying-robot-frame-2") + util.steel_to_titanium("flying-robot-frame-3") + util.steel_to_titanium("flying-robot-frame-4") end -- Memory storage changes if data.raw.item["memory-unit"] then - util.steel_to_titanium(data.raw.recipe["memory-unit"]) - util.steel_to_titanium(data.raw.recipe["memory-unit"].normal) - util.steel_to_titanium(data.raw.recipe["memory-unit"].expensive) + util.steel_to_titanium("memory-unit") end -- Underwater pipes changes @@ -51,10 +39,8 @@ if data.raw.item["underwater-pipe"] then table.remove(data.raw.technology["underwater-pipes"].prerequisites, index) end end - util.add_titanium_prerequisite(data.raw.technology["underwater-pipes"]) + util.add_titanium_prerequisite("underwater-pipes") - util.steel_to_titanium(data.raw.recipe["underwater-pipe"]) - util.steel_to_titanium(data.raw.recipe["underwater-pipe"].normal) - util.steel_to_titanium(data.raw.recipe["underwater-pipe"].expensive) + util.steel_to_titanium("underwater-pipe") end diff --git a/titanium-recipe-updates.lua b/titanium-recipe-updates.lua index 32e6aca..e873c5d 100644 --- a/titanium-recipe-updates.lua +++ b/titanium-recipe-updates.lua @@ -3,8 +3,8 @@ local util = require("__bztitanium__.data-util"); if (not mods["bobplates"] and not mods["angelssmelting"]) then - util.steel_to_titanium(data.raw.recipe["power-armor"]) - util.add_titanium_prerequisite(data.raw.technology["power-armor"]) + util.replace_ingredient("power-armor", "steel", "titanium") + util.add_prerequisite("power-armor", util.titanium_processing) -- All equipment that uses steel now uses titanium. Who wants to carry around steel! for name, recipe in pairs(data.raw.recipe) do @@ -16,22 +16,22 @@ end -- Generally, steel-based equipment techs require solar panel tech, so only require -- titanium processing for that. -util.add_titanium_prerequisite(data.raw.technology["solar-panel-equipment"]) +util.add_prerequisite("solar-panel-equipment", util.titanium_processing) -- Also add titanium to some nuclear steam-handling stuff -util.add_titanium_ingredient(20, data.raw.recipe["steam-turbine"]) +util.add_titanium_ingredient(20, "steam-turbine") if not mods["pyrawores"] then - util.add_titanium_ingredient(20, data.raw.recipe["heat-exchanger"]) + util.add_titanium_ingredient(20, "heat-exchanger") + util.add_prerequisite("nuclear-power", util.titanium_processing) end -util.add_titanium_prerequisite(data.raw.technology["nuclear-power"]) -- Krastorio 2 changes if mods["Krastorio2"] then - util.add_titanium_prerequisite(data.raw.technology["kr-electric-mining-drill-mk2"]) - util.add_titanium_prerequisite(data.raw.technology["kr-quarry-minerals-extraction"]) + util.add_prerequisite("kr-electric-mining-drill-mk2", util.titanium_processing) + util.add_prerequisite("kr-quarry-minerals-extraction", util.titanium_processing) end if mods["Aircraft"] then - util.add_titanium_prerequisite(data.raw.technology["advanced-aerodynamics"]) + util.add_prerequisite("advanced-aerodynamics", util.titanium_processing) end