bztitanium2/me.lua
2021-07-27 23:07:22 -07:00

86 lines
2.2 KiB
Lua

local me = {}
me.name = "bztitanium"
me.titanium_plate = ""
me.titanium_processing = ""
if mods["FactorioExtended-Plus-Core"] then
me.titanium_plate = "titanium-alloy"
else
me.titanium_plate = "titanium-plate"
end
if mods["pyrawores"] then
me.titanium_processing = "titanium-mk01"
else
me.titanium_processing = "titanium-processing"
end
function me.add_titanium_ingredient(amount, name)
add_ingredient(name, me.titanium_plate, amount)
end
function me.add_titanium_prerequisite(name)
add_prerequisite(name, me.titanium_processing)
end
function me.get_setting(name)
if settings.startup[name] == nil then
return nil
end
return settings.startup[name].value
end
function me.fluid_amount()
local amt = me.get_setting("bztitanium-mining-fluid-amount")
return amt and amt or 3
end
me.bypass = {}
if me.get_setting(me.name.."-recipe-bypass") then
for recipe in string.gmatch(me.get_setting(me.name.."-recipe-bypass"), '[^",%s]+') do
me.bypass[recipe] = true
end
end
--
-- TODO These helpers are all duplicates, remove them
--
function add_prerequisite(technology_name, prerequisite)
technology = data.raw.technology[technology_name]
if technology and data.raw.technology[prerequisite] then
if technology.prerequisites then
table.insert(technology.prerequisites, prerequisite)
else
technology.prerequisites = {prerequisite}
end
end
end
function add_ingredient(recipe_name, ingredient, quantity)
if me.bypass[recipe_name] then return end
if data.raw.recipe[recipe_name] and data.raw.item[ingredient] then
xadd_ingredient(data.raw.recipe[recipe_name], ingredient, quantity)
xadd_ingredient(data.raw.recipe[recipe_name].normal, ingredient, quantity)
xadd_ingredient(data.raw.recipe[recipe_name].expensive, ingredient, quantity)
end
end
function xadd_ingredient(recipe, ingredient, quantity)
if recipe ~= nil and recipe.ingredients ~= nil then
for i, existing in pairs(recipe.ingredients) do
if existing[1] == ingredient or existing.name == ingredient then
log("Not adding "..ingredient.." -- duplicate")
return
end
end
table.insert(recipe.ingredients, {ingredient, quantity})
end
end
--
-- End duplicates
--
return me