diff --git a/README.md b/README.md index e5de2bc..f18bc44 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This mod extends the early game of Space Age by putting you on the moon "Lignumi The duration of the stay on Lignumis will be rather short. The impact of the later game will still be substantial (once implemented). +**If you start a new game, check out the setting for adding Basic circuit boards.** + ## Mod recommendations The following mods can be a great addition for this mod: @@ -10,6 +12,10 @@ The following mods can be a great addition for this mod: There will be fewer inserters that need to be fueled manually. +#### [Diversitree](https://mods.factorio.com/mod/Diversitree) + +Planted trees will have more than one variant. + #### [Hot metals](https://mods.factorio.com/mod/hot-metals) If you like the idea that metals need to cool down after being smolten in a furnace, Lignumis gold has support for hot metals. @@ -22,10 +28,14 @@ If you want more of it than Lignumis offers, add this mod. It adds ammo for shot If you like go more into the charcoal direction. It has no overlap with Lignumis and starts to get relevant on Nauvis. -#### [Fulgora: Coralmium Agriculture](https://mods.factorio.com/mod/fulgora-coralmium-agriculture) and [Wooden Vulcanus: Sulfuric Bacteria](https://mods.factorio.com/mod/vulcanus-sulfuric-bacteria) +#### [Wooden Fulgora: Coralmium Agriculture](https://mods.factorio.com/mod/fulgora-coralmium-agriculture), [Wooden Vulcanus: Sulfuric Bacteria](https://mods.factorio.com/mod/vulcanus-sulfuric-bacteria) and [Wooden Aquilo: Seabloom Algaculture](https://mods.factorio.com/mod/aquilo-seabloom-algaculture) For wood on the other planets. +#### [AAI Loaders](https://mods.factorio.com/mod/aai-loaders) + +A wooden loader is added when this mod is active. Also supports [AAI Loaders, a sane rebalance](https://mods.factorio.com/mod/aai-loaders-sane). + ## Compatibility with other planet mods The following planet mods are tested for (at least technical) compatibility: @@ -90,7 +100,6 @@ If your modded lab is special and it should not support these science packs, use - https://lua-api.factorio.com/latest/types/TreeVariation.html - Improve transition to Nauvis a bit more - Add late-game recipe for oil from wood pulp -- Replace usage of gold cable with basic circuits made of wood and gold cable, add option for progressive circuit recipes and add recipe prod research - Find a better message when transitioning to Nauvis - Add information in Factoriopedia - Compatibility with [On Wayward Seas](https://mods.factorio.com/mod/wayward-seas) diff --git a/lignumis/graphics/icons/basic-circuit-board.png b/lignumis/graphics/icons/basic-circuit-board.png new file mode 100644 index 0000000..ae7d885 Binary files /dev/null and b/lignumis/graphics/icons/basic-circuit-board.png differ diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 80fff7a..aec044b 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -75,6 +75,7 @@ dead-cupriavidus-necator=Dead Cupriavidus necator gold-quality-catalyst=Gold quality catalyst wood-armor=Wood armor wood-darts-magazine=Wood darts magazine +basic-circuit-board=Basic circuit board [item-description] wooden-wall=Use wooden walls to protect your base from the locals and to reduce noise levels. @@ -163,12 +164,16 @@ lignumis-belt-progression=Enable progressive belt recipes lignumis-inserter-progression=Enable progressive inserter recipes lignumis-ammo-progression=Enable progressive ammo recipes lignumis-technology-progression=Enable progressive technologies +lignumis-basic-circuit-board=Enable basic circuit board +lignumis-circuit-progression=Enable progressive circuit recipes [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. lignumis-inserter-progression=Yellow electric inserter will require burner inserter to craft. lignumis-ammo-progression=Firearm magazines will require wooden darts magazines to craft. lignumis-technology-progression=Adds wood and steam science packs to most late game technologies. Disabling this removes the relevance of Lignumis' science packs in the late game. +lignumis-basic-circuit-board=Recipes use basic circuit boards instead of gold cables and gold plates where appropriate. Both gold and copper recipes will be added. +lignumis-circuit-progression=Electric circuits will require basic circuit boards to craft. [entity-status] no-quality-catalyst=No quality catalyst diff --git a/lignumis/prototypes/compatibility/aai-industry.lua b/lignumis/prototypes/compatibility/aai-industry.lua index 34ba732..83e9047 100644 --- a/lignumis/prototypes/compatibility/aai-industry.lua +++ b/lignumis/prototypes/compatibility/aai-industry.lua @@ -22,4 +22,11 @@ wall.emissions_per_second.noise = -30 / 60 data.raw["lab"]["wood-lab"].next_upgrade = "burner-lab" -table.insert(data.raw["agricultural-tower"]["burner-agricultural-tower"].energy_source.fuel_categories, "processed-chemical") \ No newline at end of file +table.insert(data.raw["agricultural-tower"]["burner-agricultural-tower"].energy_source.fuel_categories, "processed-chemical") + +if settings.startup["lignumis-basic-circuit-board"].value then + table.insert(data.raw["recipe"]["electric-mining-drill"].ingredients, { type = "item", name = "basic-circuit-board", amount = 2 }) + table.insert(data.raw["recipe"]["inserter"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 }) + table.insert(data.raw["recipe"]["burner-lab"].ingredients, { type = "item", name = "basic-circuit-board", amount = 10 }) + table.insert(data.raw["recipe"]["assembling-machine-1"].ingredients, { type = "item", name = "basic-circuit-board", amount = 5 }) +end \ No newline at end of file diff --git a/lignumis/prototypes/compatibility/aai-loaders.lua b/lignumis/prototypes/compatibility/aai-loaders.lua index 0a35da2..77b4c84 100644 --- a/lignumis/prototypes/compatibility/aai-loaders.lua +++ b/lignumis/prototypes/compatibility/aai-loaders.lua @@ -3,10 +3,13 @@ local Technology = require("__cf-lib__/data/Technology") if not mods["aai-loaders"] then return end +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + local recipe = { ingredients = { { type = "item", name = "lumber", amount = 5 }, - { type = "item", name = "gold-cable", amount = 10 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or + { type = "item", name = "gold-cable", amount = 10 }, { type = "item", name = "wood-transport-belt", amount = 1 } }, energy_required = 1 @@ -40,17 +43,19 @@ AAILoaders.make_tier({ localise = false }) -local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit") -nauvis_recipe:replaceIngredient("gold-cable", "electronic-circuit") -nauvis_recipe:unlockedByTechnology("electronics") -nauvis_recipe:assign({ - localised_name = { "entity-name.aai-wood-loader" }, - icons = table.assign( - table.deepcopy(data.raw.item["aai-wood-loader"].icons), - { { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } } - ) -}) -nauvis_recipe:apply() +if not basic_circuit_board then + local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit") + nauvis_recipe:replaceIngredient("gold-cable", "electronic-circuit") + nauvis_recipe:unlockedByTechnology("electronics") + nauvis_recipe:assign({ + localised_name = { "entity-name.aai-wood-loader" }, + icons = table.assign( + table.deepcopy(data.raw.item["aai-wood-loader"].icons), + { { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } } + ) + }) + nauvis_recipe:apply() +end if mods["aai-loaders-sane"] then Technology:new("wood-logistics"):addRecipe("aai-wood-loader") diff --git a/lignumis/prototypes/content/basic-circuit-boards.lua b/lignumis/prototypes/content/basic-circuit-boards.lua new file mode 100644 index 0000000..519297f --- /dev/null +++ b/lignumis/prototypes/content/basic-circuit-boards.lua @@ -0,0 +1,58 @@ +local item_sounds = require("__base__.prototypes.item_sounds") +local Technology = require("__cf-lib__/data/Technology") + +if not settings.startup["lignumis-basic-circuit-board"].value then return end + +data:extend({ + { + type = "item", + name = "basic-circuit-board", + icon = "__lignumis__/graphics/icons/basic-circuit-board.png", + subgroup = "intermediate-product", + order = "c[circuits]-0[basic-circuit-board]", + inventory_move_sound = item_sounds.electric_small_inventory_move, + pick_sound = item_sounds.electric_small_inventory_pickup, + drop_sound = item_sounds.electric_small_inventory_move, + stack_size = 200, + weight = 0.5 * kg + }, + { + type = "recipe", + name = "basic-circuit-board", + category = "wood-processing-or-assembling", + icons = { + { icon = "__lignumis__/graphics/icons/basic-circuit-board.png" }, + { icon = "__lignumis__/graphics/icons/gold-cable.png", scale = 0.25, shift = { 8, 8 } } + }, + ingredients = { + { type = "item", name = "lumber", amount = 1 }, + { type = "item", name = "gold-cable", amount = 2 } + }, + results = { { type = "item", name = "basic-circuit-board", amount = 2 } }, + enabled = true, + allow_productivity = true + }, + { + type = "recipe", + name = "basic-circuit-board-copper", + localised_name = { "item-name.basic-circuit-board" }, + category = "wood-processing-or-assembling", + icons = { + { icon = "__lignumis__/graphics/icons/basic-circuit-board.png" }, + { icon = "__base__/graphics/icons/copper-cable.png", scale = 0.25, shift = { 8, 8 } } + }, + ingredients = { + { type = "item", name = "lumber", amount = 1 }, + { type = "item", name = "copper-cable", amount = 2 } + }, + results = { { type = "item", name = "basic-circuit-board", amount = 2 } }, + enabled = false, + allow_productivity = true + } +}) + +Technology:new("copper-processing"):addRecipe("basic-circuit-board-copper") + +if settings.startup["lignumis-circuit-progression"].value then + table.insert(data.raw.recipe["electronic-circuit"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 }) +end \ No newline at end of file diff --git a/lignumis/prototypes/content/basic-construction-robots.lua b/lignumis/prototypes/content/basic-construction-robots.lua index 3d58393..5f54a76 100644 --- a/lignumis/prototypes/content/basic-construction-robots.lua +++ b/lignumis/prototypes/content/basic-construction-robots.lua @@ -1,6 +1,8 @@ local item_sounds = require("__base__.prototypes.item_sounds") local item_tints = require("__base__.prototypes.item-tints") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + local function robot(color) local result = table.deepcopy(data.raw["construction-robot"]["construction-robot"]) result.name = "basic-construction-robot-" .. color @@ -222,7 +224,8 @@ data:extend({ robot_recipe("gold", { { type = "item", name = "gold-plate", amount = 2 }, { type = "item", name = "wooden-gear-wheel", amount = 5 }, - { type = "item", name = "gold-cable", amount = 10 } + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or + { type = "item", name = "gold-cable", amount = 10 } }), generator("gold"), generator_item("gold", 0), @@ -233,7 +236,8 @@ data:extend({ roboport("gold"), roboport_item("gold", 0), roboport_recipe("gold", { - { type = "item", name = "gold-plate", amount = 10 }, + { type = "item", name = "gold-plate", amount = basic_circuit_board and 5 or 10 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or nil, { type = "item", name = "wooden-gear-wheel", amount = 10 } }), @@ -241,9 +245,9 @@ data:extend({ robot("copper"), robot_item("copper", 1), robot_recipe("copper", { - { type = "item", name = "iron-plate", amount = 2 }, + { type = "item", name = "copper-plate", amount = 2 }, { type = "item", name = "iron-gear-wheel", amount = 5 }, - { type = "item", name = "electronic-circuit", amount = 10 } + { type = "item", name = "electronic-circuit", amount = 5 } }), generator("copper"), generator_item("copper", 1), @@ -254,9 +258,9 @@ data:extend({ roboport("copper"), roboport_item("copper", 1), roboport_recipe("copper", { - { type = "item", name = "copper-plate", amount = 10 }, - { type = "item", name = "iron-gear-wheel", amount = 10 }, - { type = "item", name = "electronic-circuit", amount = 20 } + { type = "item", name = "copper-plate", amount = 5 }, + { type = "item", name = "electronic-circuit", amount = 10 }, + { type = "item", name = "iron-gear-wheel", amount = 10 } }), -- Technology diff --git a/lignumis/prototypes/content/basic-radar.lua b/lignumis/prototypes/content/basic-radar.lua index 9e8be05..779467c 100644 --- a/lignumis/prototypes/content/basic-radar.lua +++ b/lignumis/prototypes/content/basic-radar.lua @@ -2,6 +2,8 @@ local hit_effects = require("__base__.prototypes.entity.hit-effects") local item_sounds = require("__base__.prototypes.item_sounds") local item_tints = require("__base__.prototypes.item-tints") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + data:extend({ { type = "radar", @@ -77,10 +79,10 @@ data:extend({ category = "crafting-with-steam", energy_required = 10, ingredients = { - { type = "item", name = "stone-brick", amount = 4 }, - { type = "item", name = "wooden-gear-wheel", amount = 4 }, - { type = "item", name = "gold-plate", amount = 4 }, - { type = "item", name = "gold-cable", amount = 4 } + { type = "item", name = "stone-brick", amount = 4 }, + { type = "item", name = "wooden-gear-wheel", amount = 4 }, + { type = "item", name = "gold-plate", amount = 4 }, + { type = "item", name = basic_circuit_board and "basic-circuit-board" or "gold-cable", amount = 4 } }, results = { { type = "item", name = "basic-radar", amount = 1 } }, enabled = false diff --git a/lignumis/prototypes/content/burner-agricultural-tower.lua b/lignumis/prototypes/content/burner-agricultural-tower.lua index c4791cd..e8398e4 100644 --- a/lignumis/prototypes/content/burner-agricultural-tower.lua +++ b/lignumis/prototypes/content/burner-agricultural-tower.lua @@ -1,5 +1,6 @@ local item_sounds = require("__base__.prototypes.item_sounds") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local gfx = "__lignumis__/graphics/entity/burner-agricultural-tower/" local agricultural_tower = table.deepcopy(data.raw["agricultural-tower"]["agricultural-tower"]) @@ -10,7 +11,7 @@ agricultural_tower.corpses = "burner-agricultural-tower-remnants" agricultural_tower.icon = "__lignumis__/graphics/icons/burner-agricultural-tower.png" agricultural_tower.graphics_set.animation.layers[1].filename = gfx .. "burner-agricultural-tower-base.png" agricultural_tower.graphics_set.working_visualisations[1].animation.filename = gfx .. -"burner-agricultural-tower-base.png" + "burner-agricultural-tower-base.png" agricultural_tower.energy_source = { type = "burner", fuel_categories = { "chemical" }, @@ -86,25 +87,8 @@ data:extend({ { type = "item", name = "stone-brick", amount = 5 }, { type = "item", name = "wooden-gear-wheel", amount = 20 }, { type = "item", name = "lumber", amount = 20 }, - { type = "item", name = "gold-plate", amount = 20 } - }, - results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } }, - enabled = false - }, - { - type = "recipe", - name = "burner-agricultural-tower-electronic-circuit", - localised_name = { "entity-name.burner-agricultural-tower" }, - icons = { - { icon = "__lignumis__/graphics/icons/burner-agricultural-tower.png" }, - { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } - }, - energy_required = 10, - ingredients = { - { type = "item", name = "stone-brick", amount = 5 }, - { type = "item", name = "wooden-gear-wheel", amount = 20 }, - { type = "item", name = "lumber", amount = 20 }, - { type = "item", name = "electronic-circuit", amount = 10 } + { type = "item", name = "gold-plate", amount = basic_circuit_board and 10 or 20 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or nil }, results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } }, enabled = false @@ -125,7 +109,30 @@ tech.ignore_tech_cost_multiplier = true data.raw.technology["fish-breeding"].prerequisites = { "agricultural-science-pack" } -table.insert(data.raw.technology["electronics"].effects, { - type = "unlock-recipe", - recipe = "burner-agricultural-tower-electronic-circuit" -}) +if not basic_circuit_board then + data:extend({ + { + type = "recipe", + name = "burner-agricultural-tower-electronic-circuit", + localised_name = { "entity-name.burner-agricultural-tower" }, + icons = { + { icon = "__lignumis__/graphics/icons/burner-agricultural-tower.png" }, + { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + }, + energy_required = 10, + ingredients = { + { type = "item", name = "stone-brick", amount = 5 }, + { type = "item", name = "wooden-gear-wheel", amount = 20 }, + { type = "item", name = "lumber", amount = 20 }, + { type = "item", name = "electronic-circuit", amount = 10 } + }, + results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } }, + enabled = false + } + }) + + table.insert(data.raw.technology["electronics"].effects, { + type = "unlock-recipe", + recipe = "burner-agricultural-tower-electronic-circuit" + }) +end diff --git a/lignumis/prototypes/content/burner-assembling-machine.lua b/lignumis/prototypes/content/burner-assembling-machine.lua index dbf2baa..8552837 100644 --- a/lignumis/prototypes/content/burner-assembling-machine.lua +++ b/lignumis/prototypes/content/burner-assembling-machine.lua @@ -1,5 +1,6 @@ local item_sounds = require("__base__.prototypes.item_sounds") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local gfx = "__lignumis__/graphics/entity/burner-assembling-machine/" local assembling_machine = table.deepcopy(data.raw["assembling-machine"]["assembling-machine-1"]) @@ -71,24 +72,8 @@ data:extend({ ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 5 }, { type = "item", name = "lumber", amount = 8 }, - { type = "item", name = "gold-cable", amount = 20 } - }, - results = { { type = "item", name = "burner-assembling-machine", amount = 1 } }, - energy_required = 4 - }, - { - type = "recipe", - name = "burner-assembling-machine-electronic-circuit", - localised_name = { "entity-name.burner-assembling-machine" }, - icons = { - { icon = "__lignumis__/graphics/icons/burner-assembling-machine.png" }, - { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } - }, - enabled = false, - ingredients = { - { type = "item", name = "wooden-gear-wheel", amount = 5 }, - { type = "item", name = "lumber", amount = 8 }, - { type = "item", name = "electronic-circuit", amount = 10 } + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or + { type = "item", name = "gold-cable", amount = 10 } }, results = { { type = "item", name = "burner-assembling-machine", amount = 1 } }, energy_required = 4 @@ -118,7 +103,29 @@ data:extend({ } }) -table.insert(data.raw.technology["electronics"].effects, { - type = "unlock-recipe", - recipe = "burner-assembling-machine-electronic-circuit" -}) \ No newline at end of file +if not basic_circuit_board then + data:extend({ + { + type = "recipe", + name = "burner-assembling-machine-electronic-circuit", + localised_name = { "entity-name.burner-assembling-machine" }, + icons = { + { icon = "__lignumis__/graphics/icons/burner-assembling-machine.png" }, + { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + }, + enabled = false, + ingredients = { + { type = "item", name = "wooden-gear-wheel", amount = 5 }, + { type = "item", name = "lumber", amount = 8 }, + { type = "item", name = "electronic-circuit", amount = 5 } + }, + results = { { type = "item", name = "burner-assembling-machine", amount = 1 } }, + energy_required = 4 + } + }) + + table.insert(data.raw.technology["electronics"].effects, { + type = "unlock-recipe", + recipe = "burner-assembling-machine-electronic-circuit" + }) +end diff --git a/lignumis/prototypes/content/burner-long-handed-inserter.lua b/lignumis/prototypes/content/burner-long-handed-inserter.lua index f85a6c7..eaa8026 100644 --- a/lignumis/prototypes/content/burner-long-handed-inserter.lua +++ b/lignumis/prototypes/content/burner-long-handed-inserter.lua @@ -1,5 +1,6 @@ local item_sounds = require("__base__.prototypes.item_sounds") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local gfx = "__lignumis__/graphics/entity/burner-long-handed-inserter/" local long_handed_inserter = table.deepcopy(data.raw["inserter"]["long-handed-inserter"]) @@ -65,9 +66,10 @@ data:extend({ enabled = false, ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 1 }, - { type = "item", name = "burner-inserter", amount = 1 }, - { type = "item", name = "gold-cable", amount = 4 } + { type = "item", name = "burner-inserter", amount = 1 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 1 } or + { type = "item", name = "gold-cable", amount = 2 } }, results = { { type = "item", name = "burner-long-handed-inserter", amount = 1 } } } -}) \ No newline at end of file +}) diff --git a/lignumis/prototypes/content/data.lua b/lignumis/prototypes/content/data.lua index 2dc170d..b884e38 100644 --- a/lignumis/prototypes/content/data.lua +++ b/lignumis/prototypes/content/data.lua @@ -29,5 +29,6 @@ require("active-noise-cancelling-tower") require("quality-assembler") require("decoratives") require("wood-military") +require("basic-circuit-boards") require("noise") diff --git a/lignumis/prototypes/content/lumber-mill.lua b/lignumis/prototypes/content/lumber-mill.lua index 7b0af74..cb766db 100644 --- a/lignumis/prototypes/content/lumber-mill.lua +++ b/lignumis/prototypes/content/lumber-mill.lua @@ -1,6 +1,8 @@ local LumberMillFactory = require(MF.buildings .. "LumberMill") local LumberMill = LumberMillFactory() +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + data:extend({ { type = "recipe-category", @@ -30,7 +32,8 @@ LumberMill.RecipeBuilder:new() { type = "item", name = "stone-brick", amount = 40 }, { type = "item", name = "lumber", amount = 100 }, { type = "item", name = "wooden-gear-wheel", amount = 100 }, - { type = "item", name = "gold-plate", amount = 60 }, + { type = "item", name = "gold-plate", amount = basic_circuit_board and 30 or 60 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 30 } or nil, { type = "item", name = "burner-assembling-machine", amount = 5 } }) :apply({ @@ -44,25 +47,27 @@ LumberMill.TechnologyBuilder:new() :ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }) :apply() -LumberMill.RecipeBuilder:new() - :ingredients({ - { type = "item", name = "stone-brick", amount = 40 }, - { type = "item", name = "lumber", amount = 50 }, - { type = "item", name = "iron-gear-wheel", amount = 50 }, - { type = "item", name = "electronic-circuit", amount = 20 }, - { type = "item", name = "assembling-machine-1", amount = 2 } - }) - :apply({ - name = "lumber-mill-electronic-circuit", - localised_name = { "entity-name.lumber-mill" }, - category = "wood-processing-or-assembling", - icons = { - { icon = lumber_mill_item.icon }, - { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } - } - }) +if not basic_circuit_board then + LumberMill.RecipeBuilder:new() + :ingredients({ + { type = "item", name = "stone-brick", amount = 40 }, + { type = "item", name = "lumber", amount = 50 }, + { type = "item", name = "iron-gear-wheel", amount = 50 }, + { type = "item", name = "electronic-circuit", amount = 20 }, + { type = "item", name = "assembling-machine-1", amount = 2 } + }) + :apply({ + name = "lumber-mill-electronic-circuit", + localised_name = { "entity-name.lumber-mill" }, + category = "wood-processing-or-assembling", + icons = { + { icon = lumber_mill_item.icon }, + { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + } + }) -table.insert(data.raw.technology["electronics"].effects, { - type = "unlock-recipe", - recipe = "lumber-mill-electronic-circuit" -}) + table.insert(data.raw.technology["electronics"].effects, { + type = "unlock-recipe", + recipe = "lumber-mill-electronic-circuit" + }) +end diff --git a/lignumis/prototypes/content/wood-lab.lua b/lignumis/prototypes/content/wood-lab.lua index 6cda59f..4f9dcbf 100644 --- a/lignumis/prototypes/content/wood-lab.lua +++ b/lignumis/prototypes/content/wood-lab.lua @@ -1,5 +1,6 @@ local item_sounds = require("__base__.prototypes.item_sounds") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local gfx = "__lignumis__/graphics/entity/wood-lab/" data:extend({ @@ -148,7 +149,8 @@ data:extend({ { type = "item", name = "lumber", amount = 10 }, { type = "item", name = "wooden-gear-wheel", amount = 10 }, { type = "item", name = "stone-brick", amount = 10 }, - { type = "item", name = "gold-plate", amount = 20 } + { type = "item", name = "gold-plate", amount = basic_circuit_board and 10 or 20 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or nil }, results = { { type = "item", name = "wood-lab", amount = 1 } }, enabled = false diff --git a/lignumis/prototypes/content/wood-logistics.lua b/lignumis/prototypes/content/wood-logistics.lua index 0350481..4caedcd 100644 --- a/lignumis/prototypes/content/wood-logistics.lua +++ b/lignumis/prototypes/content/wood-logistics.lua @@ -1,6 +1,8 @@ local BeltFactory = require(MF.logistics .. "Belts") local Belt = BeltFactory("wood", "brown", "slow") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + Belt.EntityBuilder:new() :itemsPerSecond(7.5) :nextTier("") @@ -36,7 +38,8 @@ Belt.RecipeBuilder:new() :ingredients("splitter", { { type = "item", name = "wood-transport-belt", amount = 2 }, { type = "item", name = "lumber", amount = 2 }, - { type = "item", name = "gold-cable", amount = 10 } + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or + { type = "item", name = "gold-cable", amount = 10 } }) :apply() @@ -47,27 +50,29 @@ Belt.TechnologyBuilder:new() :time(10) :apply() -data:extend({ - Belt.RecipeBuilder:new() - :ingredients("splitter", { - { type = "item", name = "wood-transport-belt", amount = 2 }, - { type = "item", name = "lumber", amount = 2 }, - { type = "item", name = "electronic-circuit", amount = 2 } - }) - :build({ - splitter = { - name = "wood-splitter-electronic-circuit", - localised_name = { "entity-name.wood-splitter" }, - icons = { - { icon = splitter_item.icon }, - { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } +if not basic_circuit_board then + data:extend({ + Belt.RecipeBuilder:new() + :ingredients("splitter", { + { type = "item", name = "wood-transport-belt", amount = 2 }, + { type = "item", name = "lumber", amount = 2 }, + { type = "item", name = "electronic-circuit", amount = 2 } + }) + :build({ + splitter = { + name = "wood-splitter-electronic-circuit", + localised_name = { "entity-name.wood-splitter" }, + icons = { + { icon = splitter_item.icon }, + { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + } } - } - }) - .splitter -}) + }) + .splitter + }) -table.insert(data.raw.technology["electronics"].effects, { - type = "unlock-recipe", - recipe = "wood-splitter-electronic-circuit" -}) + table.insert(data.raw.technology["electronics"].effects, { + type = "unlock-recipe", + recipe = "wood-splitter-electronic-circuit" + }) +end diff --git a/lignumis/prototypes/content/wooden-rocket-silo.lua b/lignumis/prototypes/content/wooden-rocket-silo.lua index d9fa71e..7d7f39a 100644 --- a/lignumis/prototypes/content/wooden-rocket-silo.lua +++ b/lignumis/prototypes/content/wooden-rocket-silo.lua @@ -1,6 +1,8 @@ local pipecovers = require("prototypes/content/gold/pipecovers") local machinepipes = require("prototypes/content/gold/machinepipes") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + local silo = table.deepcopy(data.raw["rocket-silo"]["rocket-silo"]) silo.name = "provisional-rocket-silo" silo.icon = "__lignumis__/graphics/icons/provisional-rocket-silo.png" @@ -69,7 +71,8 @@ silo_recipe.ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 250 }, { type = "item", name = "stone-brick", amount = 500 }, { type = "item", name = "gold-plate", amount = 500 }, - { type = "item", name = "gold-cable", amount = 100 } + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 100 } or + { type = "item", name = "gold-cable", amount = 100 } } local rocket = table.deepcopy(data.raw["rocket-silo-rocket"]["rocket-silo-rocket"]) @@ -90,11 +93,12 @@ local rocket_part_recipe = { hide_from_player_crafting = true, category = "rocket-building", ingredients = { - { type = "item", name = "lumber", amount = 5 }, - { type = "item", name = "wooden-gear-wheel", amount = 5 }, - { type = "item", name = "gold-plate", amount = 5 }, - { type = "item", name = "gold-cable", amount = 5 }, - { type = "fluid", name = "wood-pulp", amount = 5 } + { type = "item", name = "lumber", amount = basic_circuit_board and 3 or 5 }, + { type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 4 or 5 }, + { type = "item", name = "gold-plate", amount = 5 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or + { type = "item", name = "gold-cable", amount = 5 }, + { type = "fluid", name = "wood-pulp", amount = 5 } }, results = { { type = "item", name = "rocket-part", amount = 1 } }, allow_productivity = true diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index c422e8d..e180b79 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -1,6 +1,8 @@ local Technology = require("__cf-lib__/data/Technology") local Recipe = require("__cf-lib__/data/Recipe") +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value + -- Burner mining drill local drill = data.raw["mining-drill"]["burner-mining-drill"] @@ -19,9 +21,10 @@ drill_item.icon = "__lignumis__/graphics/icons/burner-mining-drill.png" local drill_recipe = data.raw["recipe"]["burner-mining-drill"] drill_recipe.ingredients = { - { type = "item", name = "wooden-gear-wheel", amount = 3 }, { type = "item", name = "stone-furnace", amount = 1 }, - { type = "item", name = "lumber", amount = 3 } + { type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 2 or 3 }, + { type = "item", name = "lumber", amount = basic_circuit_board and 2 or 3 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 2 } or nil } diff --git a/lignumis/settings.lua b/lignumis/settings.lua index cde3452..bdf98f6 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -26,6 +26,20 @@ data:extend({ setting_type = "startup", default_value = true, order = "d" + }, + { + type = "bool-setting", + name = "lignumis-basic-circuit-board", + setting_type = "startup", + default_value = false, + order = "e" + }, + { + type = "bool-setting", + name = "lignumis-circuit-progression", + setting_type = "startup", + default_value = false, + order = "f" } }) diff --git a/sources/icons/basic-circuit-board.afphoto b/sources/icons/basic-circuit-board.afphoto new file mode 100644 index 0000000..de58413 Binary files /dev/null and b/sources/icons/basic-circuit-board.afphoto differ