refactor
This commit is contained in:
parent
c0eb0397f0
commit
9d17404848
18 changed files with 334 additions and 163 deletions
117
me.lua
Normal file
117
me.lua
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
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.steel_to_titanium(name)
|
||||
replace_ingredient(name, "steel-plate", me.titanium_plate)
|
||||
end
|
||||
|
||||
function me.add_titanium_ingredient(amount, name)
|
||||
add_ingredient(name, me.titanium_plate, amount)
|
||||
end
|
||||
|
||||
function me.rare_to_titanium(name)
|
||||
replace_ingredient(name, "rare-metals", me.titanium_plate)
|
||||
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 replace_ingredient(recipe_name, old, new)
|
||||
if me.bypass[recipe_name] then return end
|
||||
if data.raw.recipe[recipe_name] and data.raw.item[new] then
|
||||
xreplace_ingredient(data.raw.recipe[recipe_name], old, new)
|
||||
xreplace_ingredient(data.raw.recipe[recipe_name].normal, old, new)
|
||||
xreplace_ingredient(data.raw.recipe[recipe_name].expensive, old, new)
|
||||
end
|
||||
end
|
||||
|
||||
function xreplace_ingredient(recipe, old, new)
|
||||
if recipe ~= nil and recipe.ingredients ~= nil then
|
||||
for i, existing in pairs(recipe.ingredients) do
|
||||
if existing[1] == new or existing.name == new then
|
||||
log("Not adding "..new.." -- duplicate")
|
||||
return
|
||||
end
|
||||
end
|
||||
for i, ingredient in pairs(recipe.ingredients) do
|
||||
if ingredient.name == old then ingredient.name = new end
|
||||
if ingredient[1] == old then ingredient[1] = new end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue