From 865bcd7f7dec306c6b63b74072f379c2965b3a2a Mon Sep 17 00:00:00 2001 From: CamoBrie Date: Mon, 31 Mar 2025 21:36:45 +0200 Subject: [PATCH 1/2] update for factorio v2.0.0 --- CircuitProcessing/bobelectronics.lua | 202 ++++++++----------------- CircuitProcessing/changelog.txt | 6 + CircuitProcessing/data-updates.lua | 20 +-- CircuitProcessing/info.json | 10 +- CircuitProcessing/lib.lua | 93 +++++------- CircuitProcessing/settings-updates.lua | 39 ++--- 6 files changed, 132 insertions(+), 238 deletions(-) diff --git a/CircuitProcessing/bobelectronics.lua b/CircuitProcessing/bobelectronics.lua index 54349f2..7922f2e 100644 --- a/CircuitProcessing/bobelectronics.lua +++ b/CircuitProcessing/bobelectronics.lua @@ -14,7 +14,7 @@ else { type = 'item-subgroup', name = 'sb-circuit-board', - group = 'bob-intermediate-products', + group = 'intermediate-products', order = 'e-a4' } }) @@ -36,38 +36,22 @@ data.raw.item['electronic-circuit'] = local cpelectroniccircuitboardrecipe = data.raw.recipe['electronic-circuit'] data.raw.recipe['cp-electronic-circuit-board'] = cpelectroniccircuitboardrecipe cpelectroniccircuitboardrecipe.name = 'cp-electronic-circuit-board' -bobmods.lib.recipe.remove_result('cp-electronic-circuit-board', 'electronic-circuit') -bobmods.lib.recipe.add_result('cp-electronic-circuit-board', 'cp-electronic-circuit-board') +lib.set_recipe_result('cp-electronic-circuit-board', {type = 'item', name = 'cp-electronic-circuit-board', amount = 1}) lib.set_main_product('cp-electronic-circuit-board', 'cp-electronic-circuit-board') data.raw.recipe['electronic-circuit'] = { type = "recipe", name = "electronic-circuit", - category = "electronics", - normal = + category = "bob-electronics", + ingredients = { - ingredients = - { - {"cp-electronic-circuit-board", 1}, - {"iron-plate", 2} - }, - result = "electronic-circuit", - requester_paste_multiplier = 50, - enabled = false, - allow_decomposition = false - }, - expensive = - { - ingredients = - { - {"cp-electronic-circuit-board", 1}, - {"iron-plate", 4} - }, - result = "electronic-circuit", - requester_paste_multiplier = 50, - enabled = false, - allow_decomposition = false + {type="item", name="cp-electronic-circuit-board", amount=1}, + {type="item", name="iron-plate", amount=2} }, + results = {{type="item", name="electronic-circuit", amount=1}}, + requester_paste_multiplier = 50, + enabled = false, + allow_decomposition = false } local cpadvancedcircuitboard = data.raw.item['advanced-circuit'] @@ -87,45 +71,26 @@ data.raw.item['advanced-circuit'] = local cpadvancedcircuitboardrecipe = data.raw.recipe['advanced-circuit'] data.raw.recipe['cp-advanced-circuit-board'] = cpadvancedcircuitboardrecipe cpadvancedcircuitboardrecipe.name = 'cp-advanced-circuit-board' -bobmods.lib.recipe.remove_result('cp-advanced-circuit-board', 'advanced-circuit') -bobmods.lib.recipe.add_result('cp-advanced-circuit-board', 'cp-advanced-circuit-board') +lib.set_recipe_result('cp-advanced-circuit-board', {type = 'item', name = 'cp-advanced-circuit-board', amount = 1}) lib.set_main_product('cp-advanced-circuit-board', 'cp-advanced-circuit-board') data.raw.recipe['advanced-circuit'] = { type = "recipe", name = "advanced-circuit", - category = "electronics", - normal = + category = "bob-electronics", + enabled = false, + energy_required = 6, + ingredients = lib.ingredient_exists_add( + {type="item", name="aluminium-plate", amount=4}, { - enabled = false, - energy_required = 6, - ingredients = lib.checkplate( - {"aluminium-plate", 4}, - { - {"electronic-circuit", 2}, - {"cp-advanced-circuit-board", 2}, - {"copper-cable", 4} - }), - result = "advanced-circuit", - requester_paste_multiplier = 5, - allow_decomposition = false - }, - expensive = - { - enabled = false, - energy_required = 6, - ingredients = lib.checkplate( - {"aluminium-plate", 4}, - { - {"electronic-circuit", 2}, - {"cp-advanced-circuit-board", 4}, - {"copper-cable", 8} - }), - result = "advanced-circuit", - requester_paste_multiplier = 5, - allow_decomposition = false - } + {type="item", name="electronic-circuit", amount=2}, + {type="item", name="cp-advanced-circuit-board", amount=2}, + {type="item", name="copper-cable", amount=4} + }), + results = {{type="item", name="advanced-circuit", amount=1}}, + requester_paste_multiplier = 5, + allow_decomposition = false } local cpprocessingboard = data.raw.item['processing-unit'] @@ -145,53 +110,35 @@ data.raw.item['processing-unit'] = local cpprocessingboardrecipe = data.raw.recipe['processing-unit'] data.raw.recipe['cp-processing-board'] = cpprocessingboardrecipe cpprocessingboardrecipe.name = 'cp-processing-board' -bobmods.lib.recipe.remove_result('cp-processing-board', 'processing-unit') -bobmods.lib.recipe.add_result('cp-processing-board', 'cp-processing-board') +lib.set_recipe_result('cp-processing-board', {type = 'item', name = 'cp-processing-board', amount = 1}) lib.set_main_product('cp-processing-board', 'cp-processing-board') data.raw.recipe['processing-unit'] = { type = "recipe", name = "processing-unit", - category = "electronics-machine", - normal = + category = "bob-electronics-machine", + enabled = false, + energy_required = 10, + ingredients = lib.ingredient_exists_add( + {type="item", name="titanium-plate", amount=8}, { - enabled = false, - energy_required = 10, - ingredients = lib.checkplate( - {"titanium-plate", 8}, - { - {"advanced-circuit", 4}, - {"cp-processing-board", 4}, - {type = "fluid", name = "sulfuric-acid", amount = 5} - }), - result = "processing-unit", - allow_decomposition = false - }, - expensive = - { - enabled = false, - energy_required = 10, - ingredients = lib.checkplate( - {"titanium-plate", 8}, - { - {"advanced-circuit", 4}, - {"cp-processing-board", 4}, - {type = "fluid", name = "sulfuric-acid", amount = 10} - }), - result = "processing-unit", - allow_decomposition = false - } + {type="item", name="advanced-circuit", amount=4}, + {type="item", name="cp-processing-board", amount=4}, + {type = "fluid", name = "sulfuric-acid", amount = 5} + }), + results = {{type="item", name="processing-unit", amount=1}}, + allow_decomposition = false } -bobmods.lib.recipe.set_energy_required('cp-processing-board', 5) -bobmods.lib.recipe.set_energy_required('superior-circuit-board', 5) +lib.set_energy_required('cp-processing-board', 5) +lib.set_energy_required('bob-superior-circuit-board', 5) -local cpadvancedprocessingboard = data.raw.item['advanced-processing-unit'] +local cpadvancedprocessingboard = data.raw.item['bob-advanced-processing-unit'] data.raw.item['cp-advanced-processing-board'] = cpadvancedprocessingboard cpadvancedprocessingboard.name = 'cp-advanced-processing-board' -data.raw.item['advanced-processing-unit'] = +data.raw.item['bob-advanced-processing-unit'] = { type = "item", - name = "advanced-processing-unit", + name = "bob-advanced-processing-unit", icon = "__CircuitProcessing__/graphics/icons/advanced-processing-unit.png", icon_size = 64, icon_mipmaps = 4, subgroup = "sb-circuit-board", @@ -210,49 +157,30 @@ if data.raw.fluid["nitric-acid"] then advancedacid = "nitric-acid" end -local cpadvancedprocessingboardrecipe = data.raw.recipe['advanced-processing-unit'] +local cpadvancedprocessingboardrecipe = data.raw.recipe['bob-advanced-processing-unit'] data.raw.recipe['cp-advanced-processing-board'] = cpadvancedprocessingboardrecipe cpadvancedprocessingboardrecipe.name = 'cp-advanced-processing-board' -bobmods.lib.recipe.remove_result('cp-advanced-processing-board', 'advanced-processing-unit') -bobmods.lib.recipe.add_result('cp-advanced-processing-board', 'cp-advanced-processing-board') +lib.set_recipe_result('cp-advanced-processing-board', {type = 'item', name = 'cp-advanced-processing-board', amount = 1}) lib.set_main_product('cp-advanced-processing-board', 'cp-advanced-processing-board') -bobmods.lib.recipe.set_energy_required('cp-advanced-processing-board', 5) -bobmods.lib.recipe.set_energy_required('multi-layer-circuit-board', 5) -data.raw.recipe['advanced-processing-unit'] = +lib.set_energy_required('cp-advanced-processing-board', 5) +lib.set_energy_required('bob-multi-layer-circuit-board', 5) +data.raw.recipe['bob-advanced-processing-unit'] = { type = "recipe", - name = "advanced-processing-unit", - category = "electronics-machine", - normal = + name = "bob-advanced-processing-unit", + category = "bob-electronics-machine", + enabled = false, + energy_required = 15, + ingredients = lib.ingredient_exists_add( + {advancedplate, 10}, { - enabled = false, - energy_required = 15, - ingredients = lib.checkplate( - {advancedplate, 10}, - { - {"processing-unit", 3}, - {"electronic-circuit", 20}, - {"cp-advanced-processing-board", 9}, - {type = "fluid", name = advancedacid, amount = 5} - }), - result = "advanced-processing-unit", - allow_decomposition = false - }, - expensive = - { - enabled = false, - energy_required = 15, - ingredients = lib.checkplate( - {advancedplate, 10}, - { - {"processing-unit", 3}, - {"electronic-circuit", 20}, - {"cp-advanced-processing-board", 9}, - {type = "fluid", name = advancedacid, amount = 10} - }), - result = "advanced-processing-unit", - allow_decomposition = false - } + {type="item", name="processing-unit", amount=3}, + {type="item", name="electronic-circuit", amount=20}, + {type="item", name="cp-advanced-processing-board", amount=9}, + {type = "fluid", name = advancedacid, amount = 5} + }), + results = {{type="item", name="bob-advanced-processing-unit", amount=1}}, + allow_decomposition = false } local cable = { @@ -284,16 +212,12 @@ end for _,v in pairs(components) do if data.raw.recipe[v] then - bobmods.lib.recipe.difficulty_split(v) - doublecable(data.raw.recipe[v].normal.ingredients) - doublecable(data.raw.recipe[v].expensive.ingredients) + doublecable(data.raw.recipe[v].ingredients) end end -data.raw.recipe['basic-electronic-components'].normal.result_count = 10 -data.raw.recipe['basic-electronic-components'].expensive.result_count = 6 -bobmods.lib.recipe.set_difficulty_energy_required('basic-electronic-components', 'normal', 4) -bobmods.lib.recipe.set_difficulty_energy_required('basic-electronic-components', 'expensive', 6) +-- data.raw.recipe['basic-electronic-components'].result_count = 10 +lib.set_energy_required('bob-basic-electronic-components', 4) local circuits = { 'cp-advanced-processing-board', @@ -301,7 +225,7 @@ local circuits = { 'cp-advanced-circuit-board', 'cp-electronic-circuit-board' } -bobmods.lib.module.add_productivity_limitations(circuits) +-- bobmods.lib.module.add_productivity_limitations(circuits) for k,v in pairs(data.raw.technology) do for ek,ev in pairs(v.effects or {}) do @@ -320,7 +244,7 @@ for k,v in pairs(data.raw.technology) do bobmods.lib.tech.add_prerequisite(k, 'angels-titanium-smelting-1') end break - elseif ev.type == 'unlock-recipe' and ev.recipe == 'advanced-processing-unit' then + elseif ev.type == 'unlock-recipe' and ev.recipe == 'bob-advanced-processing-unit' then table.insert(v.effects, ek, {type = 'unlock-recipe', recipe = 'cp-advanced-processing-board'}) if data.raw.technology['angels-chrome-smelting-1'] then bobmods.lib.tech.add_prerequisite(k, 'angels-chrome-smelting-1') diff --git a/CircuitProcessing/changelog.txt b/CircuitProcessing/changelog.txt index 207a2ba..32e5312 100644 --- a/CircuitProcessing/changelog.txt +++ b/CircuitProcessing/changelog.txt @@ -1,4 +1,10 @@ --------------------------------------------------------------------------------------------------- +Version: 0.5.0 +Date: 31.03.2025 + Changes: + - Update for Factorio 2.0 + - Removed module changes, bobsmodules now handles this +--------------------------------------------------------------------------------------------------- Version: 0.4.5 Date: 01.01.2023 Changes: diff --git a/CircuitProcessing/data-updates.lua b/CircuitProcessing/data-updates.lua index 61b4595..d2bdd41 100644 --- a/CircuitProcessing/data-updates.lua +++ b/CircuitProcessing/data-updates.lua @@ -1,21 +1,5 @@ require "bobelectronics" -require "bobmodules" - -data.raw.recipe['rocket-control-unit'].normal = nil -data.raw.recipe['rocket-control-unit'].expensive = nil -local module = 'speed-module' -if data.raw.module['speed-module-8'] then - module = 'speed-module-2' -end -data.raw.recipe['rocket-control-unit'].ingredients = { - {"advanced-processing-unit", 1}, - {module, 1} -} -data.raw.recipe['rocket-control-unit'].result = 'rocket-control-unit' -data.raw.recipe['rocket-control-unit'].energy_required = 30 -bobmods.lib.tech.add_prerequisite('rocket-control-unit', 'speed-module') -bobmods.lib.tech.add_prerequisite("rocket-control-unit", "advanced-electronics-3") -bobmods.lib.tech.add_science_pack("rocket-control-unit", "production-science-pack", 1) +-- require "bobmodules" -- Hide Agriculture Modules. Revisit later, once Angel's devs have finished their changes local function disable(name) @@ -27,7 +11,7 @@ local function disable(name) data.raw.recipe[name].hidden = true end if data.raw.module[name] then - data.raw.module[name].flags = {'hidden'} + data.raw.module[name].hidden = true end end for _,v in pairs({ diff --git a/CircuitProcessing/info.json b/CircuitProcessing/info.json index ad5044a..2408249 100644 --- a/CircuitProcessing/info.json +++ b/CircuitProcessing/info.json @@ -1,7 +1,7 @@ { "name": "CircuitProcessing", - "version": "0.4.5", - "factorio_version": "1.1", + "version": "0.5.0", + "factorio_version": "2.0", "title": "Circuit Processing", "author": "Trainwreck", "contact": "", @@ -9,9 +9,9 @@ "description": "A mod for Bob's mods. Reintroduces green to red to blue circuit progression. New circuits result in overall increased resource usage. Reduces module count and types.", "dependencies": [ "base", - "bobelectronics >= 1.1.6", - "? bobmodules >= 1.1.6", - "? bobrevamp >= 1.1.6", + "bobelectronics >= 2.0.0", + "? bobmodules >= 2.0.0", + "? bobrevamp >= 2.0.0", "? angelssmelting", "? angelsbioprocessing" ] diff --git a/CircuitProcessing/lib.lua b/CircuitProcessing/lib.lua index 3555b89..69c1e71 100644 --- a/CircuitProcessing/lib.lua +++ b/CircuitProcessing/lib.lua @@ -1,58 +1,58 @@ local lib = {} -lib.tablefind = function(table, item) - for k, v in pairs(table) do - if v == item then - return k +lib.ingredient_exists_add = function(ingredient, rest) + if ingredient and ingredient.type == "item" then + if data.raw.item[ingredient.name] then + local newtable = table.deepcopy(rest) + table.insert(newtable, ingredient) + return newtable end end - return nil -end - -lib.checkplate = function(plate, rest) - if data.raw.item[plate[1]] then - local newtable = table.deepcopy(rest) - table.insert(newtable, plate) - return newtable + if ingredient and ingredient.type == "fluid" then + if data.raw.fluid[ingredient.name] then + local newtable = table.deepcopy(rest) + table.insert(newtable, ingredient) + return newtable + end end return rest end lib.hide_item = function(name) -- Add hidden flag to disabled items so they don't show up in circuit menu/item filter/FNEI etc. - local item = data.raw.item[name] - if not item then - item = data.raw.fluid[name] + if data.raw.item[name] then + data.raw.item[name].hidden = true end - if not item then - item = data.raw.tool[name] + if data.raw.fluid[name] then + data.raw.fluid[name].hidden = true end - if item then - if not item.flags then - item.flags = {} - end - if not lib.tablefind(item.flags, "hidden") then - table.insert(item.flags, "hidden") - end + if data.raw.tool[name] then + data.raw.tool[name].hidden = true + end +end + +lib.set_energy_required = function(recipe, energy) + local r = data.raw.recipe[recipe] + if type(recipe) == "string" and type(energy) == "number" and r then + r.energy_required = energy + else + log(debug.traceback()) + end +end + +lib.set_recipe_result = function(recipe, item) + local r = data.raw.recipe[recipe] + if type(recipe) == "string" and type(item) == "table" and r then + r.results = { item } + else + log(debug.traceback()) end end lib.set_main_product = function(recipe, item) local r = data.raw.recipe[recipe] - if - type(recipe) == "string" and - type(item) == "string" and - r - then - if r.normal then - r.normal.main_product = item - end - if r.expensive then - r.expensive.main_product = item - end - if (not r.normal) and (not r.expensive) then + if type(recipe) == "string" and type(item) == "string" and r then r.main_product = item - end else log(debug.traceback()) end @@ -60,22 +60,9 @@ end lib.hide_recipe = function(recipe) local r = data.raw.recipe[recipe] - if - type(recipe) == "string" and - r - then - if r.normal then - r.normal.hidden = true - r.normal.enabled = false - end - if r.expensive then - r.expensive.hidden = true - r.expensive.enabled = false - end - if (not r.normal) and (not r.expensive) then - r.hidden = true - r.enabled = false - end + if type(recipe) == "string" and r then + r.hidden = true + r.enabled = false else log(debug.traceback()) end diff --git a/CircuitProcessing/settings-updates.lua b/CircuitProcessing/settings-updates.lua index 2407392..6539242 100644 --- a/CircuitProcessing/settings-updates.lua +++ b/CircuitProcessing/settings-updates.lua @@ -20,28 +20,21 @@ end -- Bob's Modules if mods['bobmodules'] then - overwrite_setting('bool-setting', 'bobmods-modules-enablegreenmodules', false) - overwrite_setting('bool-setting', 'bobmods-modules-enablerawspeedmodules', false) - overwrite_setting('bool-setting', 'bobmods-modules-enablerawproductivitymodules', false) overwrite_setting('bool-setting', 'bobmods-modules-enablegodmodules', false) - overwrite_setting('bool-setting', 'bobmods-modules-enableproductivitylimitation', true) - overwrite_setting('bool-setting', 'bobmods-modules-productivityhasspeed', true) - overwrite_setting('bool-setting', 'bobmods-modules-transmitproductivity', false) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-speed', 0.05) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-pollution', 0.025) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-consumption', 0.05) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-productivity', 0.015) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-pollutioncreate', 0.2) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-speed', 0) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-pollution', 0.01) - overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-consumption', 0.05) - overwrite_setting('double-setting', 'bobmods-modules-start-bonus-speed', 0.2) - overwrite_setting('double-setting', 'bobmods-modules-start-bonus-pollution', 0) - overwrite_setting('double-setting', 'bobmods-modules-start-bonus-consumption', 0.2) - overwrite_setting('double-setting', 'bobmods-modules-start-bonus-productivity', 0) - overwrite_setting('double-setting', 'bobmods-modules-start-bonus-pollutioncreate', 0) - overwrite_setting('double-setting', 'bobmods-modules-start-penalty-speed', 0.15) - overwrite_setting('double-setting', 'bobmods-modules-start-penalty-pollution', 0.02) - overwrite_setting('double-setting', 'bobmods-modules-start-penalty-consumption', 0.4) - overwrite_setting('bool-setting', 'bobmods-modules-enable-modules-lab', false) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-speed-', 0.05) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-pollution-', 0.025) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-consumption-', 0.05) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-productivity-', 0.015) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-bonus-pollutioncreate-', 0.2) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-speed-', 0) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-pollution-', 0.01) + overwrite_setting('double-setting', 'bobmods-modules-perlevel-penalty-consumption-', 0.05) + overwrite_setting('double-setting', 'bobmods-modules-start-bonus-speed-', 0.2) + overwrite_setting('double-setting', 'bobmods-modules-start-bonus-pollution-', 0) + overwrite_setting('double-setting', 'bobmods-modules-start-bonus-consumption-', 0.2) + overwrite_setting('double-setting', 'bobmods-modules-start-bonus-productivity-', 0) + overwrite_setting('double-setting', 'bobmods-modules-start-bonus-pollutioncreate-', 0) + overwrite_setting('double-setting', 'bobmods-modules-start-penalty-speed-', 0.15) + overwrite_setting('double-setting', 'bobmods-modules-start-penalty-pollution-', 0.02) + overwrite_setting('double-setting', 'bobmods-modules-start-penalty-consumption-', 0.4) end From d879dc1269a0785c7c6b054249356b89ae5ad350 Mon Sep 17 00:00:00 2001 From: CamoBrie Date: Tue, 1 Apr 2025 11:26:22 +0200 Subject: [PATCH 2/2] fix result count of electronic components --- CircuitProcessing/bobelectronics.lua | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/CircuitProcessing/bobelectronics.lua b/CircuitProcessing/bobelectronics.lua index 7922f2e..9ebdd20 100644 --- a/CircuitProcessing/bobelectronics.lua +++ b/CircuitProcessing/bobelectronics.lua @@ -198,8 +198,8 @@ local components = { local function doublecable(ingredients) for k,v in pairs(ingredients) do - local idx = 1 - local amt = 2 + local idx = "" + local amt = "" if v.name then idx = 'name' amt = 'amount' @@ -216,15 +216,9 @@ for _,v in pairs(components) do end end --- data.raw.recipe['basic-electronic-components'].result_count = 10 +data.raw.recipe['bob-basic-electronic-components'].results[1].amount = 10 lib.set_energy_required('bob-basic-electronic-components', 4) -local circuits = { - 'cp-advanced-processing-board', - 'cp-processing-board', - 'cp-advanced-circuit-board', - 'cp-electronic-circuit-board' -} -- bobmods.lib.module.add_productivity_limitations(circuits) for k,v in pairs(data.raw.technology) do