49 lines
1.3 KiB
Lua
49 lines
1.3 KiB
Lua
local util = require("util")
|
|
|
|
local make_layered_icon = require("icon")
|
|
|
|
local function get_parent_technology(recipe_name)
|
|
for _, technology in pairs(data.raw.technology) do
|
|
--log(technology.name)
|
|
if (technology.enabled or technology.enabled == nil) and technology.effects then
|
|
for _, effect in pairs(technology.effects) do
|
|
if effect.type == "unlock-recipe" and effect.recipe == recipe_name then
|
|
--log(recipe_name)
|
|
return technology.name
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return nil
|
|
end
|
|
|
|
local function setup_crane_tech(itemName, newName)
|
|
local parent_tech_name = get_parent_technology(itemName)
|
|
--log(itemName.. " is unlocked by " .. parent_tech_name)
|
|
if parent_tech_name then
|
|
local tech_name = "technology-" .. parent_tech_name .. "-crane"
|
|
local technology = data.raw["technology"][tech_name]
|
|
if not technology then
|
|
technology = util.table.deepcopy(data.raw["technology"][parent_tech_name])
|
|
technology.name = tech_name
|
|
make_layered_icon(technology,true)
|
|
technology.effects = {}
|
|
technology.unit.count = technology.unit.count * 2
|
|
technology.prerequisites = {
|
|
"railway",
|
|
parent_tech_name
|
|
}
|
|
data:extend({technology})
|
|
end
|
|
table.insert(
|
|
technology.effects,
|
|
{
|
|
type = "unlock-recipe",
|
|
recipe = newName
|
|
}
|
|
)
|
|
end
|
|
end
|
|
|
|
return setup_crane_tech
|