133 lines
No EOL
4 KiB
Lua
133 lines
No EOL
4 KiB
Lua
local function add_to_recipe(recipe, item, item_amount)
|
|
if not data.raw.recipe[recipe] then
|
|
return
|
|
end
|
|
|
|
if data.raw.recipe[recipe].ingredients then
|
|
table.insert(data.raw.recipe[recipe].ingredients, {type="item", name=item, amount=item_amount})
|
|
end
|
|
|
|
if data.raw.recipe[recipe].normal and data.raw.recipe[recipe].expensive then
|
|
table.insert(data.raw.recipe[recipe].normal.ingredients, {type="item", name=item, amount=item_amount})
|
|
table.insert(data.raw.recipe[recipe].expensive.ingredients, {type="item", name=item, amount=item_amount})
|
|
end
|
|
end
|
|
|
|
local function add_to_recipes(table_in)
|
|
--table structure: {{recipe, item, item_amount}, ... , ...}
|
|
for i,v in pairs(table_in) do
|
|
add_to_recipe(table_in[i].recipe, table_in[i].item, table_in[i].item_amount)
|
|
end
|
|
end
|
|
|
|
local function change_table_index(table_in, structure)
|
|
|
|
local indexed_table = {}
|
|
|
|
for _,v in ipairs(table_in) do
|
|
local indexed_sub_table = {}
|
|
for i,x in ipairs(v) do
|
|
indexed_sub_table[structure[i]] = x
|
|
end
|
|
table.insert(indexed_table, indexed_sub_table)
|
|
end
|
|
return indexed_table
|
|
end
|
|
|
|
local function add_to_tech(tech, pre_tech)
|
|
if not data.raw.technology[tech] then
|
|
return
|
|
end
|
|
|
|
if not data.raw.technology[pre_tech] then
|
|
return
|
|
end
|
|
|
|
table.insert(data.raw.technology[tech].prerequisites, pre_tech)
|
|
end
|
|
|
|
local function add_to_techs(table_in)
|
|
--table structure: {{tech, pre_tech}, ... , ...}
|
|
for i,v in pairs(table_in) do
|
|
add_to_tech(table_in[i].tech, table_in[i].pre_tech)
|
|
end
|
|
end
|
|
|
|
local function remove_tech_card(tech, card)
|
|
if not data.raw.technology[tech] then
|
|
return
|
|
end
|
|
|
|
--in data.raw
|
|
--[[
|
|
ingredients = {
|
|
{'automation-science-pack',1},
|
|
{'logistic-science-pack',1},
|
|
}
|
|
]]
|
|
|
|
for i,v in ipairs(data.raw.technology[tech].unit.ingredients) do
|
|
for j,w in ipairs(v) do
|
|
if w == card then
|
|
data.raw.technology[tech].unit.ingredients[i] = nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local function remove_tech_cards(table_in)
|
|
--table structure: {{tech, card}, ... , ...}
|
|
for i,v in pairs(table_in) do
|
|
remove_tech_card(table_in[i].tech, table_in[i].card)
|
|
end
|
|
end
|
|
|
|
--===================================================================================================================
|
|
-- 248k items to Krastorio2 recipes
|
|
--===================================================================================================================
|
|
|
|
--[BUILDINGS]
|
|
|
|
building_table = {
|
|
|
|
}
|
|
|
|
--[ITEMS]
|
|
|
|
item_table = {
|
|
{"productivity-module-2", "fi_modules_core_item", 1},
|
|
{"productivity-module-3", "fi_modules_core_item", 3},
|
|
{"speed-module-2", "fi_modules_core_item", 1},
|
|
{"speed-module-3", "fi_modules_core_item", 3},
|
|
{"effectivity-module-2", "fi_modules_core_item", 1},
|
|
{"effectivity-module-3", "fi_modules_core_item", 3},
|
|
}
|
|
|
|
--[TECH]
|
|
|
|
tech_table = {
|
|
|
|
}
|
|
|
|
--[REMOVE TECH CARDS]
|
|
|
|
card_table = {
|
|
{"el_purifier_tech", "logistic-science-pack"},
|
|
{"el_arc_furnace_tech", "logistic-science-pack"},
|
|
{"el_caster_tech", "logistic-science-pack"},
|
|
{"el_ALK_tech", "logistic-science-pack"},
|
|
}
|
|
|
|
--===================================================================================================================
|
|
-- structure and adding
|
|
--===================================================================================================================
|
|
|
|
|
|
recipe_structure = {"recipe", "item", "item_amount"}
|
|
tech_structure = {"tech", "pre_tech"}
|
|
card_structure = {"tech", "card"}
|
|
|
|
add_to_recipes(change_table_index(building_table, recipe_structure))
|
|
add_to_recipes(change_table_index(item_table, recipe_structure))
|
|
add_to_techs(change_table_index(tech_table, tech_structure))
|
|
remove_tech_cards(change_table_index(card_table, card_structure)) |