diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..bbf3e21 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,3 @@ +[*] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..723ef36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..7fc05b7 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,23 @@ +https://forums.factorio.com/viewtopic.php?f=51&t=28573 + +by bobingabout » Fri Jul 08, 2016 5:55 pm + + + +License: +Since the old one seems to have gone missing... again... here is the liscence. + + No Commercial Use - You are not allowed to make money off my work. + No Modification - Although I can't stop you from looking at my code, you are not allowed to distribute anything altered, or derived from my code without expressed permission first. + Distribution - You are allowed to redistribute my mods as is. This includes being repackaged as part of a mod pack. + Private Use - I am not impossing any limitations on private use, if you want to modify my work, or create your own using parts of mine, you are free to do so, as long as this altered or derived work does not become accessable to the public. + +That about covers the basics... +Exceptions to the no modification rule include: + + Minor bug fixes/tweak for compatabillity reasons, such as altering the dependancies line in info.json to force a load order in a modpack. + +Any further modifications, such as changing values of entities/recipes in my mods should be done externally in another mod, similar to how my own has dynamic recipes, or enables/disables certain things as needed. +An example of such a mod is this by Athmagor viewtopic.php?f=51&t=16786 + +If you would like to use any extracts from this mod in your own, please talk to me about it first. \ No newline at end of file diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..e4b63b7 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,48 @@ +--------------------------------------------------------------------------------------------------- +Version: 4.0.0 +Date: 05.10.2025 + Changes: + Update to Factorio 2.0 +--------------------------------------------------------------------------------------------------- +Version: 3.6.0 +Date: 07.07.2022 + Changes: + - Updated to space-exploration 0.6.65 + - Updated to space-exploration-postprocess 0.6.13 + - Updated to Krastorio2 1.3.2 + - Technology prerequisites of advanced-electronics-3 changed to fit in the new progression + - silicon-wafer stacksize from 500 to 200, matching new SE requirement + - moved back circuit recipes in the GUI where they should be, in their own tab + - se-processing-unit-holmium recipe ingredients from electronic-circuit 20 into 10 (same as vanilla SE) +--------------------------------------------------------------------------------------------------- +Version: 3.1.0 +Date: 20.11.2021 + Changes: + - small fix +--------------------------------------------------------------------------------------------------- +Version: 3.0.0 +Date: 12.11.2021 + Changes: + - code restructuring + - recipe ingredient/result amount now alligned to installed mods (Krastorio/Space Exploration) + - recipes have same ingredients, no need to rebuild +--------------------------------------------------------------------------------------------------- +Version: 2.5.0 +Date: 17.06.2021 + Changes: + - more compatibility + - Deadlocks stacking initial support + - full stacking support and stacked recipes with (soon) to be released mod +--------------------------------------------------------------------------------------------------- +Version: 2.1.1 +Date: 02.02.2021 + Changes: + - mod now works with Space exploration and or krastorio + - additional support for titanium, silicon, lead mods + - every recipe added by mod in 1 sorted tab + - optional setting (default ON) making circuit's recipe use previous tier +--------------------------------------------------------------------------------------------------- +Version: 1.1.3 +Date: 26.01.2021 + Bugfixes: + - Minor changes to data-updates to avoid a crash. diff --git a/data-final-fixes.lua b/data-final-fixes.lua new file mode 100644 index 0000000..e6fd2aa --- /dev/null +++ b/data-final-fixes.lua @@ -0,0 +1 @@ +require("prototypes.MDrecipes") \ No newline at end of file diff --git a/data-updates.lua b/data-updates.lua new file mode 100644 index 0000000..04ab1b7 --- /dev/null +++ b/data-updates.lua @@ -0,0 +1,30 @@ +require("prototypes.recipe-updates") +require("prototypes.technology-updates") +require("prototypes.productivity-limitations") + +data.raw.recipe["copper-cable"].category = "electronics" +data.raw.recipe["rocket-control-unit"].category = "electronics" + +if data.raw["recipe-category"]["chemical-furnace"] then + if data.raw.recipe["carbon"] then + data.raw.recipe["carbon"].category = "chemical-furnace" + end +end + +if data.raw["recipe-category"]["mixing-furnace"] then + if data.raw.recipe["solder-alloy"] then + data.raw.recipe["solder-alloy"].category = "mixing-furnace" + end + if data.raw.recipe["solder-alloy-lead"] then + data.raw.recipe["solder-alloy-lead"].category = "mixing-furnace" + end +end + +-- add Assembling Machine catagory. +bobmods.lib.machine.type_if_add_category("assembling-machine", "crafting", "crafting-machine") + +-- add new electronics crafting categories +bobmods.lib.machine.type_if_add_category("character", "crafting", "electronics") +bobmods.lib.machine.type_if_add_category("god-controller", "crafting", "electronics") +bobmods.lib.machine.type_if_add_category("assembling-machine", "crafting", "electronics") +bobmods.lib.machine.type_if_add_category("assembling-machine", "crafting", "electronics-machine") \ No newline at end of file diff --git a/data.lua b/data.lua new file mode 100644 index 0000000..bd29841 --- /dev/null +++ b/data.lua @@ -0,0 +1,12 @@ +if not bobmods then bobmods = {} end +if not bobmods.electronics then bobmods.electronics = {} end + +require("prototypes.category") +require("prototypes.chemicals") +require("prototypes.resource") +require("prototypes.electronics") +require("prototypes.technology") + +data.raw.item["wood"].stack_size = 200 + + diff --git a/graphics/icons/basic-circuit-board.png b/graphics/icons/basic-circuit-board.png new file mode 100644 index 0000000..b5643d2 Binary files /dev/null and b/graphics/icons/basic-circuit-board.png differ diff --git a/graphics/icons/basic-electronic-circuit-board.png b/graphics/icons/basic-electronic-circuit-board.png new file mode 100644 index 0000000..5c918e3 Binary files /dev/null and b/graphics/icons/basic-electronic-circuit-board.png differ diff --git a/graphics/icons/basic-electronic-components.png b/graphics/icons/basic-electronic-components.png new file mode 100644 index 0000000..636e289 Binary files /dev/null and b/graphics/icons/basic-electronic-components.png differ diff --git a/graphics/icons/circuit-board.png b/graphics/icons/circuit-board.png new file mode 100644 index 0000000..bf91834 Binary files /dev/null and b/graphics/icons/circuit-board.png differ diff --git a/graphics/icons/cpu.png b/graphics/icons/cpu.png new file mode 100644 index 0000000..6a12df1 Binary files /dev/null and b/graphics/icons/cpu.png differ diff --git a/graphics/icons/electronic-circuit-board.png b/graphics/icons/electronic-circuit-board.png new file mode 100644 index 0000000..84a388c Binary files /dev/null and b/graphics/icons/electronic-circuit-board.png differ diff --git a/graphics/icons/electronic-components.png b/graphics/icons/electronic-components.png new file mode 100644 index 0000000..228e5fa Binary files /dev/null and b/graphics/icons/electronic-components.png differ diff --git a/graphics/icons/electronic-logic-board.png b/graphics/icons/electronic-logic-board.png new file mode 100644 index 0000000..80d8349 Binary files /dev/null and b/graphics/icons/electronic-logic-board.png differ diff --git a/graphics/icons/electronic-processing-board.png b/graphics/icons/electronic-processing-board.png new file mode 100644 index 0000000..b8a6c92 Binary files /dev/null and b/graphics/icons/electronic-processing-board.png differ diff --git a/graphics/icons/ferric-chloride-solution.png b/graphics/icons/ferric-chloride-solution.png new file mode 100644 index 0000000..2aed525 Binary files /dev/null and b/graphics/icons/ferric-chloride-solution.png differ diff --git a/graphics/icons/fibreglass-board.png b/graphics/icons/fibreglass-board.png new file mode 100644 index 0000000..cb11b3b Binary files /dev/null and b/graphics/icons/fibreglass-board.png differ diff --git a/graphics/icons/gilded-copper-cable.png b/graphics/icons/gilded-copper-cable.png new file mode 100644 index 0000000..ceac50a Binary files /dev/null and b/graphics/icons/gilded-copper-cable.png differ diff --git a/graphics/icons/insulated-cable.png b/graphics/icons/insulated-cable.png new file mode 100644 index 0000000..b415c0a Binary files /dev/null and b/graphics/icons/insulated-cable.png differ diff --git a/graphics/icons/integrated-electronics.png b/graphics/icons/integrated-electronics.png new file mode 100644 index 0000000..29e07b0 Binary files /dev/null and b/graphics/icons/integrated-electronics.png differ diff --git a/graphics/icons/multi-layer-circuit-board.png b/graphics/icons/multi-layer-circuit-board.png new file mode 100644 index 0000000..0a0ba03 Binary files /dev/null and b/graphics/icons/multi-layer-circuit-board.png differ diff --git a/graphics/icons/phenolic-board.png b/graphics/icons/phenolic-board.png new file mode 100644 index 0000000..a046d88 Binary files /dev/null and b/graphics/icons/phenolic-board.png differ diff --git a/graphics/icons/resin.png b/graphics/icons/resin.png new file mode 100644 index 0000000..6ebcd77 Binary files /dev/null and b/graphics/icons/resin.png differ diff --git a/graphics/icons/rubber.png b/graphics/icons/rubber.png new file mode 100644 index 0000000..560e775 Binary files /dev/null and b/graphics/icons/rubber.png differ diff --git a/graphics/icons/silicon-wafer.png b/graphics/icons/silicon-wafer.png new file mode 100644 index 0000000..8f9733f Binary files /dev/null and b/graphics/icons/silicon-wafer.png differ diff --git a/graphics/icons/solder-plate.png b/graphics/icons/solder-plate.png new file mode 100644 index 0000000..6b6e3f3 Binary files /dev/null and b/graphics/icons/solder-plate.png differ diff --git a/graphics/icons/solder.png b/graphics/icons/solder.png new file mode 100644 index 0000000..c2517f4 Binary files /dev/null and b/graphics/icons/solder.png differ diff --git a/graphics/icons/superior-circuit-board.png b/graphics/icons/superior-circuit-board.png new file mode 100644 index 0000000..2f6f6bc Binary files /dev/null and b/graphics/icons/superior-circuit-board.png differ diff --git a/graphics/icons/technology/advanced-electronics-2.png b/graphics/icons/technology/advanced-electronics-2.png new file mode 100644 index 0000000..29e07b0 Binary files /dev/null and b/graphics/icons/technology/advanced-electronics-2.png differ diff --git a/graphics/icons/technology/advanced-electronics-3.png b/graphics/icons/technology/advanced-electronics-3.png new file mode 100644 index 0000000..6a12df1 Binary files /dev/null and b/graphics/icons/technology/advanced-electronics-3.png differ diff --git a/graphics/icons/technology/advanced-electronics.png b/graphics/icons/technology/advanced-electronics.png new file mode 100644 index 0000000..228e5fa Binary files /dev/null and b/graphics/icons/technology/advanced-electronics.png differ diff --git a/graphics/icons/technology/electronics.png b/graphics/icons/technology/electronics.png new file mode 100644 index 0000000..636e289 Binary files /dev/null and b/graphics/icons/technology/electronics.png differ diff --git a/graphics/icons/technology/intermediates.png b/graphics/icons/technology/intermediates.png new file mode 100644 index 0000000..440ede5 Binary files /dev/null and b/graphics/icons/technology/intermediates.png differ diff --git a/graphics/icons/tinned-copper-cable.png b/graphics/icons/tinned-copper-cable.png new file mode 100644 index 0000000..cd648a6 Binary files /dev/null and b/graphics/icons/tinned-copper-cable.png differ diff --git a/graphics/icons/wooden-board.png b/graphics/icons/wooden-board.png new file mode 100644 index 0000000..91a2499 Binary files /dev/null and b/graphics/icons/wooden-board.png differ diff --git a/info.json b/info.json new file mode 100644 index 0000000..29e0763 --- /dev/null +++ b/info.json @@ -0,0 +1,23 @@ +{ + "name": "MDbobelectronics", + "version": "4.0.0", + "factorio_version": "2.0.0", + "title": "Bob's Electronics SE KR", + "author": "Bobingabout, MdRuz, cackling fiend", + "contact": "", + "homepage": "https://forums.factorio.com/viewtopic.php?f=190&t=95748", + "dependencies": [ + "base >= 2.0.0", + "boblibrary >= 2.0.1", + "? bobplates >= 2.0.3", + "? space-exploration >= 0.7.34", + "? space-exploration-postprocess >= 0.7.4", + "? aai-industry >= 0.6.13", + "? bzsilicon >= 2.0.18", + "? bzlead >= 2.0.28", + "? bztitanium >= 2.0.26", + "? Krastorio2 >= 2.0.8", + "! bobelectronics" + ], + "description": "(Space Exploration and Krastorio edition) Requires Bob's functions library mod.\n\nThis mod changes the way you build electronics, making the process more realistic.\nFirst you have to assemble electronic components, then combine them into circuit boards.\nOptional setting for the following: 'unlike in the base game, each tier of circuit board does NOT require the previous tier.'\nIt also adds a 4th tier of electronics used for high end machinery.\n\nAlthough it can work by itself, it is designed to function best with krastorio and space exploration." +} diff --git a/locale/en/bobelectronics.cfg b/locale/en/bobelectronics.cfg new file mode 100644 index 0000000..37fa45b --- /dev/null +++ b/locale/en/bobelectronics.cfg @@ -0,0 +1,51 @@ +[item-name] + + +silicon-wafer=Silicon wafer +solder-alloy=Solder plate + +carbon=Carbon +resin=Resin +rubber=Rubber + +tinned-copper-cable=Tinned copper wire +insulated-cable=Insulated wire +gilded-copper-cable=Gilded copper wire +solder=Solder + +basic-electronic-components=Basic electronic components +BOBMD-electronic-components=Transistors +intergrated-electronics=Integrated electronics +processing-electronics=CPUs + +wooden-board=Wooden board +phenolic-board=Phenolic board +fibreglass-board=Fibreglass board + +basic-circuit-board=Basic circuit board +circuit-board=Circuit board +superior-circuit-board=Superior circuit board +multi-layer-circuit-board=Multi-layer circuit board + +advanced-processing-unit=Electronic Processing Unit + + +[fluid-name] +ferric-chloride-solution=Ferric chloride solution + + +[recipe-name] + + + +[item-group-name] +bob-intermediate-products=Bob's Circuits + +[mod-setting-name] +bobmods-recursive-circuitred=Recursive Circuits** + + + +[mod-setting-description] +bobmods-recursive-circuitred=next tier requires previous tier (like in vanilla) + diff --git a/prototypes/MDrecipes.lua b/prototypes/MDrecipes.lua new file mode 100644 index 0000000..020fa30 --- /dev/null +++ b/prototypes/MDrecipes.lua @@ -0,0 +1,179 @@ + + + + +--recycling doesnt detect recipe change, doing it manually +if mods["space-exploration"] then + + if mods["Krastorio2"] then + bobmods.lib.recipe.remove_result("se-recycle-radar", "electronic-circuit") + bobmods.lib.recipe.add_result("se-recycle-radar", "automation-core") + + else + + bobmods.lib.recipe.remove_result("se-recycle-radar", "electronic-circuit") + bobmods.lib.recipe.add_result("se-recycle-radar", {type="item", name="basic-circuit-board", amount=6}) + end +--fix for krastorio/spaceex radar recipe glitch +end + + + +--insulated-cable +if mods["bzsilicon"] then + bobmods.lib.recipe.add_ingredient("optical-fiber", {type="item", name="insulated-cable", amount=1}) + + --seems that new version of bzsilicon adds this ingredient which interfears + if data.raw.item["silicon"] then + bobmods.lib.recipe.remove_ingredient("processing-unit", "silicon") + end +end +------------------------------------------------------------------------------------------------------------------------------------------------ + + + + +if settings.startup["bobmods-recursive-circuitred"].value == true then + +if mods["space-exploration"] and not mods["Krastorio2"] then + +bobmods.lib.recipe.set_ingredient("advanced-circuit", {type="item", name="electronic-circuit", amount=2}) + +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="advanced-circuit", amount=2}) +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="electronic-circuit", amount=20}) + +bobmods.lib.recipe.set_ingredient("se-processing-unit-holmium", {type="item", name="advanced-circuit", amount=1}) +bobmods.lib.recipe.set_ingredient("se-processing-unit-holmium", {type="item", name="electronic-circuit", amount=10}) + +bobmods.lib.recipe.set_ingredient("advanced-processing-unit", {type="item", name="processing-unit", amount=1}) +end + +if mods["Krastorio2"] and not mods["space-exploration"] then + +bobmods.lib.recipe.set_ingredient("advanced-circuit", {type="item", name="electronic-circuit", amount=4}) +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="advanced-circuit", amount=6}) +bobmods.lib.recipe.set_ingredient("advanced-processing-unit", {type="item", name="processing-unit", amount=1}) +end + +if mods["Krastorio2"] and mods["space-exploration"] then + +bobmods.lib.recipe.set_ingredient("advanced-circuit", {type="item", name="electronic-circuit", amount=4}) + +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="advanced-circuit", amount=6}) +bobmods.lib.recipe.set_ingredient("se-processing-unit-holmium", {type="item", name="advanced-circuit", amount=3}) + +bobmods.lib.recipe.set_ingredient("advanced-processing-unit", {type="item", name="processing-unit", amount=1}) +end + +if not mods["Krastorio2"] and not mods["space-exploration"] then +bobmods.lib.recipe.set_ingredient("advanced-circuit", {type="item", name="electronic-circuit", amount=2}) + +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="advanced-circuit", amount=2}) +bobmods.lib.recipe.set_ingredient("processing-unit", {type="item", name="electronic-circuit", amount=20}) + +bobmods.lib.recipe.set_ingredient("advanced-processing-unit", {type="item", name="processing-unit", amount=1}) +end + + +--change results +if mods["Krastorio2"] then +--bobmods.lib.recipe.set_result("electronic-circuit", {type="item", name="electronic-circuit", amount=1}) +bobmods.lib.recipe.set_result("advanced-circuit", {type="item", name="advanced-circuit", amount=2}) +bobmods.lib.recipe.set_result("processing-unit", {type="item", name="processing-unit", amount=2}) +bobmods.lib.recipe.set_result("se-processing-unit-holmium", {type="item", name="processing-unit", amount=2}) +end + + +--if not then make sure to remove +else + +bobmods.lib.recipe.remove_ingredient("advanced-circuit", "electronic-circuit") + +bobmods.lib.recipe.remove_ingredient("processing-unit", "advanced-circuit") +bobmods.lib.recipe.remove_ingredient("processing-unit", "electronic-circuit") + +bobmods.lib.recipe.remove_ingredient("se-processing-unit-holmium", "advanced-circuit") +bobmods.lib.recipe.remove_ingredient("se-processing-unit-holmium", "electronic-circuit") + +--just in case go back to 1 result +bobmods.lib.recipe.set_result("advanced-circuit", {type="item", name="advanced-circuit", amount=1}) +bobmods.lib.recipe.set_result("processing-unit", {type="item", name="processing-unit", amount=1}) + +if mods["space-exploration"] and not mods["Krastorio2"] then bobmods.lib.recipe.set_result("se-processing-unit-holmium", {type="item", name="processing-unit", amount=2}) end + +end + + +if mods["Krastorio2"] then +bobmods.lib.recipe.add_ingredient("advanced-circuit", {type="item", name="electronic-components", amount=2}) +bobmods.lib.recipe.add_ingredient("advanced-processing-unit", {type="item", name="rare-metals", amount=5}) +bobmods.lib.recipe.add_ingredient("advanced-processing-unit", {type="item", name="processing-electronics", amount=2}) +bobmods.lib.recipe.add_ingredient("advanced-processing-unit", {type="fluid", name="nitric-acid", amount=10}) + +bobmods.lib.recipe.add_ingredient("kr-advanced-assembling-machine", {"advanced-processing-unit", amount=2}) +bobmods.lib.recipe.add_ingredient("kr-advanced-furnace", {"advanced-processing-unit", amount=5}) +end + + + + + + + + + + +------------------------------------------------------------------------------------------------------------------------------------------------ +--add circuits to recipes +if mods["space-exploration"] then + +bobmods.lib.recipe.add_ingredient("se-processing-unit-holmium", {type="item", name="basic-electronic-components", amount=1}) +bobmods.lib.recipe.add_ingredient("se-processing-unit-holmium", {type="item", name="BOBMD-electronic-components", amount=2}) +bobmods.lib.recipe.add_ingredient("se-processing-unit-holmium", {type="item", name="intergrated-electronics", amount=1}) +bobmods.lib.recipe.add_ingredient("se-processing-unit-holmium", {type="item", name="superior-circuit-board", amount=1}) +bobmods.lib.recipe.add_ingredient("processing-unit", {type="fluid", name="sulfuric-acid", amount=4}) + + +bobmods.lib.recipe.add_ingredient("se-space-assembling-machine", {"advanced-processing-unit", amount=2}) +bobmods.lib.recipe.replace_ingredient("se-spaceship-console", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.add_ingredient("se-space-supercomputer-2", {"advanced-processing-unit", amount=150}) +bobmods.lib.recipe.replace_ingredient("se-space-supercomputer-3", "processing-unit", "advanced-processing-unit") + + +--SE 0.6 it no longer makes sense +--[[ +bobmods.lib.recipe.replace_ingredient("speed-module-6", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.replace_ingredient("speed-module-7", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.replace_ingredient("productivity-module-6", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.replace_ingredient("productivity-module-7", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.replace_ingredient("effectivity-module-6", "processing-unit", "advanced-processing-unit") +bobmods.lib.recipe.replace_ingredient("effectivity-module-7", "processing-unit", "advanced-processing-unit") +]] + + +--SE 0.6 force circuits back to my own tab + +if data.raw.item["electronic-circuit"] then data.raw.item["electronic-circuit"].subgroup = "bob-electronic-boards" end +if data.raw.item["advanced-circuit"] then data.raw.item["advanced-circuit"].subgroup = "bob-electronic-boards" end +if data.raw.item["processing-unit"] then data.raw.item["processing-unit"].subgroup = "bob-electronic-boards" end +if data.raw.item["se-processing-unit-holmium"] then data.raw.item["se-processing-unit-holmium"].subgroup = "bob-electronic-boards" end + +end + +--progression fix for krastorio: +if data.raw.fluid["hydrogen-chloride"] then + +bobmods.lib.tech.add_recipe_unlock("kr-fluids-chemistry", "hydrogen-chloride") +bobmods.lib.tech.remove_recipe_unlock("kr-advanced-chemistry", "hydrogen-chloride") +end + + + +if data.raw.item["electronic-circuit"] then +bobmods.lib.recipe.set_ingredients("electronic-circuit", {{type="item", name="basic-circuit-board", 1}, {"basic-electronic-components", amount=5}}) +end + + + + + diff --git a/prototypes/category.lua b/prototypes/category.lua new file mode 100644 index 0000000..f6559f6 --- /dev/null +++ b/prototypes/category.lua @@ -0,0 +1,57 @@ +data:extend( +{ + { + type = "recipe-category", + name = "crafting-machine" + }, + { + type = "recipe-category", + name = "electronics" + }, + { + type = "recipe-category", + name = "electronics-machine" + }, + { + type = "item-group", + name = "bob-intermediate-products", + order = "c-i", + inventory_order = "a-c", + icon = "__MDbobelectronics__/graphics/icons/technology/intermediates.png", + icon_size = 64, + }, + + --- + { + type = "item-subgroup", + name = "bob-resource-chemical", + group = "bob-intermediate-products", + order = "e-a1" + }, + + { + type = "item-subgroup", + name = "bob-electronic-components", + group = "bob-intermediate-products", + order = "e-a2" + }, + { + type = "item-subgroup", + name = "bob-boards", + group = "bob-intermediate-products", + order = "e-a3" + }, + { + type = "item-subgroup", + name = "bob-electronic-boards", + group = "bob-intermediate-products", + order = "e-a4" + }, + { + type = "item-subgroup", + name = "bob-resource", + group = "bob-intermediate-products", + order = "e-a5" + }, +} +) diff --git a/prototypes/chemicals.lua b/prototypes/chemicals.lua new file mode 100644 index 0000000..89aa677 --- /dev/null +++ b/prototypes/chemicals.lua @@ -0,0 +1,49 @@ +data:extend( +{ + { + type = "fluid", + name = "ferric-chloride-solution", + icon = "__MDbobelectronics__/graphics/icons/ferric-chloride-solution.png", + icon_size = 32, + default_temperature = 25, + heat_capacity = "1kJ", + base_color = {r=0.7, g=0.6, b=0.2}, + flow_color = {r=0.5, g=0.5, b=0.5}, + max_temperature = 100, + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-g[ferric-chloride-solution]" + }, + + { + type = "recipe", + name = "ferric-chloride-solution", + icon = "__MDbobelectronics__/graphics/icons/ferric-chloride-solution.png", + icon_size = 32, + subgroup = "bob-resource-chemical", + order = "x[fluid-chemistry]-a[ferric-chloride-solution]", + category = "chemistry", + enabled = false, + energy_required = 2.5, + ingredients = + { + {type="item", name="iron-ore", amount=1}, + {type="fluid", name="water", amount=30}, + }, + results= + { + {type="fluid", name="ferric-chloride-solution", amount=50} + }, + crafting_machine_tint = + { + primary = {r = 0.7, g = 0.6, b = 0.2, a = 0.000}, + secondary = {r = 0.2, g = 0.7, b = 0.0, a = 0.000}, + tertiary = {r = 0.0, g = 0.7, b = 0.7, a = 0.000}, + }, + allow_decomposition = false + }, +} +) + + + diff --git a/prototypes/electronics.lua b/prototypes/electronics.lua new file mode 100644 index 0000000..e469dba --- /dev/null +++ b/prototypes/electronics.lua @@ -0,0 +1,550 @@ +if data.raw.item["tin-plate"] then + data:extend( + { + { + type = "item", + name = "tinned-copper-cable", + icon = "__MDbobelectronics__/graphics/icons/tinned-copper-cable.png", + icon_size = 32, + subgroup = "bob-electronic-components", + order = "0-a1[tinned-copper-cable]", + stack_size = 200 + }, + + { + type = "recipe", + name = "tinned-copper-cable", + category = "electronics", + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=3}, + {type="item", name="tin-plate", amount=1}, + }, + results = {{type="item", name="tinned-copper-cable", amount=3}}, + allow_decomposition = false + }, + } + ) +end + + +data:extend( +{ + { + type = "item", + name = "insulated-cable", + icon = "__MDbobelectronics__/graphics/icons/insulated-cable.png", + icon_size = 32, + subgroup = "bob-electronic-components", + order = "0-a2[insulated-cable]", + stack_size = 200 + }, + + { + type = "recipe", + name = "insulated-cable", + category = "electronics", + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=2}, + {type="item", name="rubber", amount=1}, + }, + results = {{type="item", name="insulated-cable", amount=2}}, + allow_decomposition = false + }, +} +) + + +if data.raw.item["gold-plate"] then + data:extend( + { + { + type = "item", + name = "gilded-copper-cable", + icon = "__MDbobelectronics__/graphics/icons/gilded-copper-cable.png", + icon_size = 32, + subgroup = "bob-electronic-components", + order = "0-a3[gilded-copper-cable]", + stack_size = 200 + }, + + { + type = "recipe", + name = "gilded-copper-cable", + category = "electronics", + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=3}, + {type="item", name="gold-plate", amount=1}, + }, + results = {{type="item", name="gilded-copper-cable", amount=3}}, + allow_decomposition = false + }, + } + ) +end + + +if data.raw.item["solder-alloy"] then + data:extend( + { + { + type = "item", + name = "solder", + icon = "__MDbobelectronics__/graphics/icons/solder.png", + icon_size = 32, + subgroup = "bob-electronic-components", + order = "0-a4[solder]", + stack_size = 200 + }, + + { + type = "recipe", + name = "solder", + category = "electronics", + energy_required = 2, + enabled = false, + ingredients = + { + {type="item", name="solder-alloy", amount=4}, + {type="item", name="resin", amount=1}, + }, + results = {{type="item", name="solder", amount=8}}, + allow_decomposition = false + }, + } + ) +end + + + +data:extend( +{ + { + type = "item", + name = "basic-electronic-components", + icon = "__MDbobelectronics__/graphics/icons/basic-electronic-components.png", + icon_size = 128, + subgroup = "bob-electronic-components", + order = "0-b1[basic-electronic-components]", + stack_size = 200 + }, + + { + type = "recipe", + name = "basic-electronic-components", + category = "electronics-machine", + energy_required = 2, + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=1}, + {type="item", name="coal", amount=1}, + }, + results = {{type="item", name="basic-electronic-components", amount=5}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "BOBMD-electronic-components", + icon = "__MDbobelectronics__/graphics/icons/electronic-components.png", + icon_size = 128, + subgroup = "bob-electronic-components", + order = "0-b2[electronic-components]", + stack_size = 200 + }, + + { + type = "recipe", + name = "BOBMD-electronic-components", + category = "electronics-machine", + energy_required = 3.5, + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=1}, + {type="item", name="plastic-bar", amount=1}, + }, + results = {{type="item", name="BOBMD-electronic-components", amount=5}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "intergrated-electronics", + icon = "__MDbobelectronics__/graphics/icons/integrated-electronics.png", + icon_size = 128, + subgroup = "bob-electronic-components", + order = "0-b3[integrated-electronics]", + stack_size = 200 + }, + + { + type = "recipe", + name = "intergrated-electronics", + category = "electronics-machine", + energy_required = 5, + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=1}, + {type="item", name="plastic-bar", amount=1}, + {type="fluid", name = "sulfuric-acid", amount = 5}, + }, + results = {{type="item", name="intergrated-electronics", amount=5}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "processing-electronics", + icon = "__MDbobelectronics__/graphics/icons/cpu.png", + icon_size = 128, + subgroup = "bob-electronic-components", + order = "0-b4[cpu]", + stack_size = 200 + }, + + { + type = "recipe", + name = "processing-electronics", + category = "electronics-machine", + energy_required = 7, + enabled = false, + ingredients = + { + {type="item", name="copper-cable", amount=2}, + {type="item", name="plastic-bar", amount=1}, + {type="fluid", name = "sulfuric-acid", amount = 5}, + }, + results = {{type="item", name="processing-electronics", amount=5}}, + allow_decomposition = false + }, +} +) + +data:extend( +{ + { + type = "item", + name = "phenolic-board", + icon = "__MDbobelectronics__/graphics/icons/phenolic-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-a2[phenolic-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "phenolic-board", + category = "electronics-machine", + enabled = false, + ingredients = + { + {type="item", name="wood", amount=1}, + {type="item", name="resin", amount=1}, + }, + results = {{type="item", name="phenolic-board", amount=1}} + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "fibreglass-board", + icon = "__MDbobelectronics__/graphics/icons/fibreglass-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-a3[fibreglass-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "fibreglass-board", + category = "electronics-machine", + enabled = false, + ingredients = + { + {type="item", name="plastic-bar", amount=1}, + }, + results = {{type="item", name="fibreglass-board", amount=1}} + }, +} +) + + + +data:extend( +{ + { + type = "item", + name = "basic-circuit-board", + icon = "__MDbobelectronics__/graphics/icons/basic-circuit-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-b1[basic-circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "basic-circuit-board", + category = "electronics", + energy_required = 1, + ingredients = + { + {type="item", name="wood", amount=1}, + {type="item", name="copper-cable", amount=3}, + }, + results = {{type="item", name="basic-circuit-board", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "circuit-board", + icon = "__MDbobelectronics__/graphics/icons/circuit-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-b2[circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "circuit-board", + category = "electronics-machine", + energy_required = 5, + enabled = false, + ingredients = + { + {type="item", name="phenolic-board", amount=1}, + {type="item", name="copper-plate", amount=1}, + {type="fluid", name="ferric-chloride-solution", amount=5} + }, + results = {{type="item", name="circuit-board", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "superior-circuit-board", + icon = "__MDbobelectronics__/graphics/icons/superior-circuit-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-b2[superior-circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "superior-circuit-board", + category = "electronics-machine", + energy_required = 10, + enabled = false, + ingredients = + { + {type="item", name="fibreglass-board", amount=1}, + {type="item", name="copper-plate", amount=1}, + {type="fluid", name="ferric-chloride-solution", amount=5} + }, + results = {{type="item", name="superior-circuit-board", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "multi-layer-circuit-board", + icon = "__MDbobelectronics__/graphics/icons/multi-layer-circuit-board.png", + icon_size = 128, + subgroup = "bob-boards", + order = "c-b3[multi-layer-circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "multi-layer-circuit-board", + category = "electronics-machine", + energy_required = 15, + enabled = false, + ingredients = + { + {type="item", name="fibreglass-board", amount=1}, + {type="item", name="copper-plate", amount=2}, + {type="fluid", name="ferric-chloride-solution", amount=10} + }, + results = {{type="item", name="multi-layer-circuit-board", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + + { + type = "item", + name = "electronic-circuit", + icon = "__MDbobelectronics__/graphics/icons/basic-electronic-circuit-board.png", + icon_size = 128, + subgroup = "bob-electronic-boards", + order = "c-c1[basic-electronic-circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "electronic-circuit", + category = "electronics", + energy_required = 1, + enabled = false, + ingredients = + { + {type="item", name="basic-circuit-board", amount=1}, + {type="item", name="basic-electronic-components", amount=5}, + }, + results = {{type="item", name="electronic-circuit", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "advanced-circuit", + icon = "__MDbobelectronics__/graphics/icons/electronic-circuit-board.png", + icon_size = 128, + subgroup = "bob-electronic-boards", + order = "c-c2[electronic-circuit-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "advanced-circuit", + category = "electronics", + energy_required = 5, + enabled = false, + ingredients = + { + {type="item", name="circuit-board", amount=1}, + {type="item", name="basic-electronic-components", amount=4}, + {type="item", name="BOBMD-electronic-components", amount=4}, + }, + results = {{type="item", name="advanced-circuit", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "processing-unit", + icon = "__MDbobelectronics__/graphics/icons/electronic-logic-board.png", + icon_size = 128, + subgroup = "bob-electronic-boards", + order = "c-c3[electronic-logic-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "processing-unit", + category = "electronics", + energy_required = 10, + enabled = false, + ingredients = + { + {type="item", name="superior-circuit-board", amount=1}, + {type="item", name="basic-electronic-components", amount=2}, + {type="item", name="BOBMD-electronic-components", amount=4}, + {type="item", name="intergrated-electronics", amount=2}, + }, + results = {{type="item", name="processing-unit", amount=1}}, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "advanced-processing-unit", + icon = "__MDbobelectronics__/graphics/icons/electronic-processing-board.png", + icon_size = 128, + subgroup = "bob-electronic-boards", + order = "c-c4[electronic-processing-board]", + stack_size = 200 + }, + + { + type = "recipe", + name = "advanced-processing-unit", + category = "electronics", + energy_required = 15, + enabled = false, + ingredients = + { + {type="item", name="multi-layer-circuit-board", amount=1}, + {type="item", name="basic-electronic-components", amount=1}, + {type="item", name="BOBMD-electronic-components", amount=2}, + {type="item", name="intergrated-electronics", amount=4}, + {type="item", name="processing-electronics", amount=1}, + }, + results = {{type="item", name="advanced-processing-unit", amount=1}}, + allow_decomposition = false + }, +} +) + + diff --git a/prototypes/productivity-limitations.lua b/prototypes/productivity-limitations.lua new file mode 100644 index 0000000..1cd5c7d --- /dev/null +++ b/prototypes/productivity-limitations.lua @@ -0,0 +1,54 @@ +local chemicals = { + "ferric-chloride-solution", +} + + +local electronics = { + "insulated-cable", + "basic-electronic-components", + "BOBMD-electronic-components", + "intergrated-electronics", + "processing-electronics", + "wooden-board", + "phenolic-board", + "fibreglass-board", + "basic-circuit-board", + "circuit-board", + "superior-circuit-board", + "multi-layer-circuit-board", + "advanced-processing-unit" +} + +if data.raw.recipe["solder"] then + table.insert(electronics, "solder") +end +if data.raw.recipe["tinned-copper-cable"] then + table.insert(electronics, "tinned-copper-cable") +end +if data.raw.recipe["gilded-copper-cable"] then + table.insert(electronics, "gilded-copper-cable") +end + + +local resource = { + "bob-resin-wood", + "bob-resin-oil", + "bob-rubber", +} + +if data.raw.recipe["silicon-wafer"] then + table.insert(electronics, "silicon-wafer") +end +if data.raw.recipe["solder"] then + table.insert(electronics, "solder-alloy") +end +if data.raw.recipe["solder"] then + table.insert(electronics, "solder-alloy-lead") +end + + +--bobmods.lib.module.add_productivity_limitations(chemicals) +--bobmods.lib.module.add_productivity_limitations(electronics) +--bobmods.lib.module.add_productivity_limitations(resource) + + diff --git a/prototypes/recipe-updates.lua b/prototypes/recipe-updates.lua new file mode 100644 index 0000000..ce3c06a --- /dev/null +++ b/prototypes/recipe-updates.lua @@ -0,0 +1,121 @@ +for i, recipe in pairs(data.raw.recipe) do + if + recipe.name == "offshore-pump" or + recipe.name == "inserter" or + recipe.name == "electric-mining-drill" or + recipe.name == "lab" or + recipe.name == "radar" or + recipe.name == "repair-pack" or + recipe.name == "assembling-machine-1" or + recipe.name == "splitter" or + recipe.name == "small-lamp" or + recipe.name == "frame-1" --DyTech basic mining drill + then + bobmods.lib.recipe.replace_ingredient(recipe.name, "electronic-circuit", "basic-circuit-board") + end +end + + +if data.raw.fluid["hydrogen-chloride"] then + bobmods.lib.recipe.replace_ingredient("ferric-chloride-solution", "water", "hydrogen-chloride") +end + +if data.raw.item["tinned-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("insulated-cable", "copper-cable", "tinned-copper-cable") + bobmods.lib.recipe.replace_ingredient("basic-electronic-components", "copper-cable", "tinned-copper-cable") + bobmods.lib.recipe.replace_ingredient("BOBMD-electronic-components", "copper-cable", "tinned-copper-cable") + bobmods.lib.recipe.replace_ingredient("intergrated-electronics", "copper-cable", "tinned-copper-cable") +end + +if data.raw.item["carbon"] then + + bobmods.lib.recipe.replace_ingredient("basic-electronic-components", "coal", "carbon") +elseif data.raw.item["coke"] then + bobmods.lib.recipe.replace_ingredient("basic-electronic-components", "coal", "coke") +end + +if data.raw.item["silicon-wafer"] then + bobmods.lib.recipe.add_ingredient("BOBMD-electronic-components", {type="item", name="silicon-wafer", amount=2}) + bobmods.lib.recipe.add_ingredient("intergrated-electronics", {type="item", name="silicon-wafer", amount=4}) + bobmods.lib.recipe.add_ingredient("processing-electronics", {type="item", name="silicon-wafer", amount=6}) +else + if data.raw.item["silicon"] then + bobmods.lib.recipe.add_ingredient("BOBMD-electronic-components", {type="item", name="silicon", amount=1}) + bobmods.lib.recipe.add_ingredient("intergrated-electronics", {type="item", name="silicon", amount=2}) + bobmods.lib.recipe.add_ingredient("processing-electronics", {type="item", name="silicon", amount=3}) + else + bobmods.lib.recipe.add_ingredient("BOBMD-electronic-components", {type="item", name="copper-plate", amount=1}) + bobmods.lib.recipe.add_ingredient("intergrated-electronics", {type="item", name="copper-plate", amount=2}) + bobmods.lib.recipe.add_ingredient("processing-electronics", {type="item", name="copper-plate", amount=3}) + end +end + + +if data.raw.item["gilded-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("processing-electronics", "copper-cable", "gilded-copper-cable") + elseif data.raw.item["optical-fiber"] then + bobmods.lib.recipe.replace_ingredient("processing-electronics", "copper-cable", "optical-fiber") + + else + if data.raw.item["tinned-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("processing-electronics", "copper-cable", "tinned-copper-cable") + end +end + +if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.replace_ingredient("processing-electronics", "plastic-bar", "silicon-nitride") +end + +if data.raw.item["glass"] then + bobmods.lib.recipe.add_ingredient("fibreglass-board", {type="item", name="glass", amount=1}) +else + bobmods.lib.recipe.add_ingredient("fibreglass-board", {type="item", name="plastic-bar", amount=1}) +end + +if data.raw.item["tin-plate"] then + bobmods.lib.recipe.add_ingredient("circuit-board", {type="item", name="tin-plate", amount=1}) +elseif data.raw.item["lead-plate"] then + bobmods.lib.recipe.add_ingredient("circuit-board", {type="item", name="lead-plate", amount=1}) +else + bobmods.lib.recipe.add_ingredient("circuit-board", {type="item", name="copper-plate", amount=1}) +end + +if data.raw.item["gold-plate"] then + bobmods.lib.recipe.add_ingredient("superior-circuit-board", {type="item", name="gold-plate", amount=1}) + bobmods.lib.recipe.add_ingredient("multi-layer-circuit-board", {type="item", name="gold-plate", amount=2}) +else + if data.raw.item["tin-plate"] then + bobmods.lib.recipe.add_ingredient("superior-circuit-board", {type="item", name="tin-plate", amount=1}) + bobmods.lib.recipe.add_ingredient("multi-layer-circuit-board", {type="item", name="tin-plate", amount=2}) + elseif data.raw.item["titanium-plate"] then + bobmods.lib.recipe.add_ingredient("superior-circuit-board", {type="item", name="titanium-plate", amount=1}) + bobmods.lib.recipe.add_ingredient("multi-layer-circuit-board", {type="item", name="titanium-plate", amount=2}) + else + bobmods.lib.recipe.add_ingredient("superior-circuit-board", {type="item", name="copper-plate", amount=1}) + bobmods.lib.recipe.add_ingredient("multi-layer-circuit-board", {type="item", name="copper-plate", amount=2}) + end +end + +if data.raw.item["solder"] then + bobmods.lib.recipe.add_ingredient("electronic-circuit", {type="item", name="solder", amount=1}) + bobmods.lib.recipe.add_ingredient("advanced-circuit", {type="item", name="solder", amount=1}) + bobmods.lib.recipe.add_ingredient("processing-unit", {type="item", name="solder", amount=2}) + bobmods.lib.recipe.add_ingredient("advanced-processing-unit", {type="item", name="solder", amount=4}) +end + +if mods["aai-industry"] then +local greenrecipe2 = table.deepcopy(data.raw["recipe"]["basic-circuit-board"]) +greenrecipe2.name = "basic-circuit-board-stone" +data:extend({greenrecipe2}) +bobmods.lib.recipe.replace_ingredient("basic-circuit-board-stone", "wood", "stone-tablet") + +--- +local greyrecipe2 = table.deepcopy(data.raw["recipe"]["phenolic-board"]) +greyrecipe2.name = "phenolic-board-stone" +data:extend({greyrecipe2}) +bobmods.lib.recipe.replace_ingredient("phenolic-board-stone", "wood", "stone-tablet") + +end + + + diff --git a/prototypes/resource.lua b/prototypes/resource.lua new file mode 100644 index 0000000..a9d375d --- /dev/null +++ b/prototypes/resource.lua @@ -0,0 +1,172 @@ +data:extend( +{ + { + type = "item", + name = "resin", + icon = "__MDbobelectronics__/graphics/icons/resin.png", + icon_size = 32, + subgroup = "bob-resource-chemical", + order = "f[resin]", + stack_size = 100 + }, + + { + type = "recipe", + name = "bob-resin-wood", + category = "crafting-machine", + subgroup = "bob-resource-chemical", + energy_required = 1, + ingredients = + { + { "wood", 1}, + }, + results = {{type="item", name="resin", amount=1}}, + allow_decomposition = false + }, + + { + type = "recipe", + name = "bob-resin-oil", + category = "chemistry", + subgroup = "bob-resource-chemical", + energy_required = 1, + enabled = false, + ingredients = + { + {type="fluid", name="heavy-oil", amount=10}, + }, + results = {{type="item", name="resin", amount=1}}, + crafting_machine_tint = + { + primary = {r = 0.5, g = 0.04, b = 0.0, a = 0.000}, + secondary = {r = 0.85, g = 0.6, b = 0.3, a = 0.000}, + tertiary = {r = 1, g = 0.6, b = 0.0, a = 0.000}, + }, + allow_decomposition = false + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "rubber", + icon = "__MDbobelectronics__/graphics/icons/rubber.png", + icon_size = 32, + subgroup = "bob-resource-chemical", + order = "f[rubber]", + stack_size = 100 + }, + + { + type = "recipe", + name = "bob-rubber", + subgroup = "bob-resource-chemical", + category = "smelting", + energy_required = 3.5, + ingredients = + { + { "resin", 1}, + }, + results = {{type="item", name="rubber", amount=1}}, + allow_decomposition = false + }, +} +) + + +if not data.raw.item["silicon-wafer"] then + if data.raw.item["silicon"] or data.raw.item["silicon-plate"] then + data:extend( + { + { + type = "item", + name = "silicon-wafer", + icon = "__MDbobelectronics__/graphics/icons/silicon-wafer.png", + icon_size = 32, + subgroup = "bob-resource-chemical", + order = "f[silicon-wafer]", + stack_size = 200 + }, + + { + type = "recipe", + name = "silicon-wafer", + category = "crafting-machine", + enabled = false, + energy_required = 5, + ingredients = + { + }, + results = {{type="item", name="silicon-wafer", amount=1}}, + result_count = 8 + }, + } + ) + + if data.raw.item["silicon"] then + table.insert(data.raw.recipe["silicon-wafer"].ingredients ,{type="item", name="silicon", amount=1}) + else + table.insert(data.raw.recipe["silicon-wafer"].ingredients ,{type="item", name="silicon-plate", amount=1}) + end + end +end + + +if data.raw.item["tin-plate"] then + data:extend( + { + { + type = "item", + name = "solder-alloy", + icon = "__MDbobelectronics__/graphics/icons/solder-plate.png", + icon_size = 32, + subgroup = "bob-alloy", + order = "c-b-h[solder]", + stack_size = 200 + }, + + { + type = "recipe", + name = "solder-alloy", + energy_required = 7, + enabled = false, + category = "crafting-machine", + ingredients = + { + {type="item", name="tin-plate", amount=9}, + {type="item", name="copper-plate", amount=1}, + }, + results = {{type="item", name="solder-alloy", amount=11}}, + allow_decomposition = false + }, + } + ) + if data.raw.item["silver-plate"] then + table.insert(data.raw.recipe["solder-alloy"].ingredients,{type="item", name="silver-plate", amount=1}) + end + + if data.raw.item["lead-plate"] then + data:extend( + { + { + type = "recipe", + name = "solder-alloy-lead", + energy_required = 7, + enabled = false, + category = "crafting-machine", + ingredients = + { + {type="item", name="tin-plate", amount=4}, + {type="item", name="lead-plate", amount=7}, + }, + results = {{type="item", name="solder-alloy", amount=11}}, + allow_decomposition = false + }, + } + ) + end +end + diff --git a/prototypes/technology-updates.lua b/prototypes/technology-updates.lua new file mode 100644 index 0000000..7229347 --- /dev/null +++ b/prototypes/technology-updates.lua @@ -0,0 +1,104 @@ +bobmods.lib.tech.add_prerequisite("oil-processing", "electronics") +bobmods.lib.tech.add_prerequisite("gate", "electronics") +bobmods.lib.tech.add_prerequisite("advanced-circuit", "plastics") +bobmods.lib.tech.add_recipe_unlock("oil-processing", "bob-resin-oil") + + +--new in SE 0.6 +if mods["space-exploration"] then +bobmods.lib.tech.add_prerequisite("se-space-assembling", "advanced-electronics-3") +bobmods.lib.tech.add_prerequisite("advanced-electronics-3", "se-rocket-launch-pad") +bobmods.lib.tech.add_science_pack("advanced-electronics-3", "se-rocket-science-pack", 1) +else +bobmods.lib.tech.add_science_pack("advanced-electronics-3", "production-science-pack", 1) +end + + + + + + +if data.raw.technology["chemical-processing-2"] then + bobmods.lib.tech.add_recipe_unlock("chemical-processing-2", "ferric-chloride-solution") + bobmods.lib.tech.add_prerequisite ("advanced-circuit", "chemical-processing-2") +else + bobmods.lib.tech.add_recipe_unlock("oil-processing", "ferric-chloride-solution") + bobmods.lib.tech.add_prerequisite ("advanced-circuit", "oil-processing") +end + +if data.raw.recipe["silicon-wafer"] then + if data.raw.technology["silicon-processing"] or data.raw.technology["kr-silicon-processing"] then + bobmods.lib.tech.add_recipe_unlock("silicon-processing", "silicon-wafer") + bobmods.lib.tech.add_recipe_unlock("kr-silicon-processing", "silicon-wafer") + else + data.raw.recipe["silicon-wafer"].enabled = true + end +end + + +if data.raw.recipe["solder"] then + bobmods.lib.tech.add_recipe_unlock("electronics", "solder") +end +if data.raw.recipe["solder-alloy"] then + bobmods.lib.tech.add_recipe_unlock("electronics", "solder-alloy") +end +if data.raw.recipe["solder-alloy-lead"] then + bobmods.lib.tech.add_recipe_unlock("electronics", "solder-alloy-lead") +end +if data.raw.recipe["tinned-copper-cable"] then + bobmods.lib.tech.add_recipe_unlock("electronics", "tinned-copper-cable") +end + +if data.raw.recipe["basic-circuit-board-stone"] then +bobmods.lib.tech.add_recipe_unlock("electronics", "basic-circuit-board-stone") +bobmods.lib.tech.add_recipe_unlock("advanced-circuit", "phenolic-board-stone") +end + + + +bobmods.lib.tech.add_recipe_unlock("electronics", "insulated-cable") +bobmods.lib.tech.add_recipe_unlock("electronics", "basic-electronic-components") +bobmods.lib.tech.add_recipe_unlock("electronics", "electronic-circuit") + +if data.raw.technology["chemical-processing-1"] and data.raw.technology["alloy-processing"] then + bobmods.lib.tech.add_prerequisite("electronics", "chemical-processing-1") + bobmods.lib.tech.add_prerequisite("electronics", "alloy-processing") +end + +bobmods.lib.tech.add_recipe_unlock("advanced-circuit", "BOBMD-electronic-components") +bobmods.lib.tech.add_recipe_unlock("advanced-circuit", "phenolic-board") +bobmods.lib.tech.add_recipe_unlock("advanced-circuit", "circuit-board") +bobmods.lib.tech.add_recipe_unlock("advanced-circuit", "advanced-circuit") --to re-add if it was removed in previous mod +if data.raw.technology["silicon-processing"] then + bobmods.lib.tech.add_prerequisite("advanced-circuit", "silicon-processing") +end + +bobmods.lib.tech.add_recipe_unlock("processing-unit", "integrated-electronics") +bobmods.lib.tech.add_recipe_unlock("processing-unit", "fibreglass-board") +bobmods.lib.tech.add_recipe_unlock("processing-unit", "superior-circuit-board") +bobmods.lib.tech.add_recipe_unlock("processing-unit", "processing-unit") +if data.raw.technology["gold-processing"] then + bobmods.lib.tech.add_prerequisite("processing-unit", "gold-processing") +end + + +if data.raw.recipe["gilded-copper-cable"] then + bobmods.lib.tech.add_recipe_unlock("advanced-electronics-3", "gilded-copper-cable") +end + +bobmods.lib.tech.add_recipe_unlock("advanced-electronics-3", "processing-electronics") +bobmods.lib.tech.add_recipe_unlock("advanced-electronics-3", "multi-layer-circuit-board") + +if data.raw.technology["ceramics"] then + bobmods.lib.tech.add_prerequisite("advanced-electronics-3", "ceramics") +end + + +data.raw.technology["electronics"].icon = "__MDbobelectronics__/graphics/icons/technology/electronics.png" +data.raw.technology["advanced-circuit"].icon = "__MDbobelectronics__/graphics/icons/technology/advanced-electronics.png" +data.raw.technology["processing-unit"].icon = "__MDbobelectronics__/graphics/icons/technology/advanced-electronics-2.png" + +data.raw.technology["electronics"].icon_size = 128 +data.raw.technology["advanced-circuit"].icon_size = 128 +data.raw.technology["processing-unit"].icon_size = 128 + diff --git a/prototypes/technology.lua b/prototypes/technology.lua new file mode 100644 index 0000000..e75f796 --- /dev/null +++ b/prototypes/technology.lua @@ -0,0 +1,35 @@ +data:extend( +{ + { + type = "technology", + name = "advanced-electronics-3", + icon = "__MDbobelectronics__/graphics/icons/technology/advanced-electronics-3.png", + icon_size = 128, + prerequisites = + { + --"processing-unit" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "advanced-processing-unit" + }, + }, + unit = + { + count = 250, + ingredients = + { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1} + }, + time = 30 + }, + order = "a-d-d", + }, +} +) + + diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..0b587bc --- /dev/null +++ b/settings.lua @@ -0,0 +1,9 @@ +data:extend( +{ + { + type = "bool-setting", + name = "bobmods-recursive-circuitred", + setting_type = "startup", + default_value = true, + }, +}) \ No newline at end of file diff --git a/thumbnail.png b/thumbnail.png new file mode 100644 index 0000000..6f7e9d0 Binary files /dev/null and b/thumbnail.png differ