From 871b4a387de0831ce7ecaf4f74a922bd044309f0 Mon Sep 17 00:00:00 2001 From: Nihilistzsche Date: Fri, 10 Feb 2023 17:06:45 -0800 Subject: [PATCH] Everything efficiency. --- aluminum-enriched.lua | 1 + aluminum-recipe.lua | 1 + compatibility/crafting-efficiency.lua | 24 +++++++++++++++++------- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/aluminum-enriched.lua b/aluminum-enriched.lua index f3ba254..a9783db 100644 --- a/aluminum-enriched.lua +++ b/aluminum-enriched.lua @@ -31,6 +31,7 @@ data:extend( always_show_made_in = true, always_show_products = true, allow_productivity = true, + subgroup = "raw-material", ingredients = { {type = "fluid", name = "sulfuric-acid", amount = 3}, diff --git a/aluminum-recipe.lua b/aluminum-recipe.lua index 75fb04b..c045c19 100644 --- a/aluminum-recipe.lua +++ b/aluminum-recipe.lua @@ -44,6 +44,7 @@ data:extend({ enabled = true, energy_required = mods.Krastorio2 and 16 or 3.2, ingredients = {{"aluminum-ore", mods.Krastorio2 and 10 or 1}}, + subgroup = "raw-material", results = alumina_results, }, { diff --git a/compatibility/crafting-efficiency.lua b/compatibility/crafting-efficiency.lua index 62dc93d..eb53358 100644 --- a/compatibility/crafting-efficiency.lua +++ b/compatibility/crafting-efficiency.lua @@ -8,20 +8,30 @@ if mods["crafting-efficiency-2"] then for i, recipe in pairs(util.me.recipes) do -- add remaining recipes with direct items to find the icons if data.raw.recipe[recipe] and (data.raw.item[recipe] or data.raw.fluid[recipe]) - and not eff_data[recipe] and - recipe ~= "alumina" and -- for some reason this does not work, despite having a main_product - recipe ~= "phenol" and -- for some reason this does not work, despite having a main_product - "enriched-" ~= string.sub(recipe, 1, string.len("enriched-")) and - (data.raw.recipe[recipe].main_product or util.get_result_count(recipe) == 1) then + and not eff_data[recipe] then + local research_level = 1 + if not data.raw.recipe[recipe].enabled then + for tech, tbl in pairs(data.raw.technology) do + for _, effect in pairs(tbl.effects or {}) do + if effect.type == "unlock-recipe" and effect.recipe == recipe then + research_level = math.min(#tbl.unit.ingredients, 6) + end + end + end + end eff_data[recipe] = { max = 15, icon = util.get_item_or_fluid_icon(recipe), crafting = { efficiency = 10 }, - research = { level = 6 }, + research = { level = research_level }, } + if recipe:find("smelting") then + eff_data[recipe].crafting.efficiency = 20 + eff_data[recipe].crafting.category = "smelting" + end end end - for recipe, d in pairs(eff_data) do + for recipe, d in pairs(eff_data) do log("Adding "..recipe.." crafting efficiency") d.name = recipe:gsub("^%l", string.upper).." efficiency" CE_Add_Recipe(d, recipe)