Add optional Basic circuit board

This commit is contained in:
Simon Brodtmann 2025-02-28 00:56:40 +01:00
parent d0818722ae
commit b30eb0b019
19 changed files with 269 additions and 129 deletions

View file

@ -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). 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 ## Mod recommendations
The following mods can be a great addition for this mod: 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. 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) #### [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. 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. 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. 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 ## Compatibility with other planet mods
The following planet mods are tested for (at least technical) compatibility: 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 - https://lua-api.factorio.com/latest/types/TreeVariation.html
- Improve transition to Nauvis a bit more - Improve transition to Nauvis a bit more
- Add late-game recipe for oil from wood pulp - 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 - Find a better message when transitioning to Nauvis
- Add information in Factoriopedia - Add information in Factoriopedia
- Compatibility with [On Wayward Seas](https://mods.factorio.com/mod/wayward-seas) - Compatibility with [On Wayward Seas](https://mods.factorio.com/mod/wayward-seas)

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -75,6 +75,7 @@ dead-cupriavidus-necator=Dead Cupriavidus necator
gold-quality-catalyst=Gold quality catalyst gold-quality-catalyst=Gold quality catalyst
wood-armor=Wood armor wood-armor=Wood armor
wood-darts-magazine=Wood darts magazine wood-darts-magazine=Wood darts magazine
basic-circuit-board=Basic circuit board
[item-description] [item-description]
wooden-wall=Use wooden walls to protect your base from the locals and to reduce noise levels. 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-inserter-progression=Enable progressive inserter recipes
lignumis-ammo-progression=Enable progressive ammo recipes lignumis-ammo-progression=Enable progressive ammo recipes
lignumis-technology-progression=Enable progressive technologies lignumis-technology-progression=Enable progressive technologies
lignumis-basic-circuit-board=Enable basic circuit board
lignumis-circuit-progression=Enable progressive circuit recipes
[mod-setting-description] [mod-setting-description]
lignumis-belt-progression=Yellow belts will require wood belts to craft. lignumis-belt-progression=Yellow belts will require wood belts to craft.
lignumis-inserter-progression=Yellow electric inserter will require burner inserter 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-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-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] [entity-status]
no-quality-catalyst=No quality catalyst no-quality-catalyst=No quality catalyst

View file

@ -23,3 +23,10 @@ wall.emissions_per_second.noise = -30 / 60
data.raw["lab"]["wood-lab"].next_upgrade = "burner-lab" data.raw["lab"]["wood-lab"].next_upgrade = "burner-lab"
table.insert(data.raw["agricultural-tower"]["burner-agricultural-tower"].energy_source.fuel_categories, "processed-chemical") 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

View file

@ -3,9 +3,12 @@ local Technology = require("__cf-lib__/data/Technology")
if not mods["aai-loaders"] then return end if not mods["aai-loaders"] then return end
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
local recipe = { local recipe = {
ingredients = { ingredients = {
{ type = "item", name = "lumber", amount = 5 }, { type = "item", name = "lumber", amount = 5 },
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or
{ type = "item", name = "gold-cable", amount = 10 }, { type = "item", name = "gold-cable", amount = 10 },
{ type = "item", name = "wood-transport-belt", amount = 1 } { type = "item", name = "wood-transport-belt", amount = 1 }
}, },
@ -40,17 +43,19 @@ AAILoaders.make_tier({
localise = false localise = false
}) })
local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit") if not basic_circuit_board then
nauvis_recipe:replaceIngredient("gold-cable", "electronic-circuit") local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit")
nauvis_recipe:unlockedByTechnology("electronics") nauvis_recipe:replaceIngredient("gold-cable", "electronic-circuit")
nauvis_recipe:assign({ nauvis_recipe:unlockedByTechnology("electronics")
nauvis_recipe:assign({
localised_name = { "entity-name.aai-wood-loader" }, localised_name = { "entity-name.aai-wood-loader" },
icons = table.assign( icons = table.assign(
table.deepcopy(data.raw.item["aai-wood-loader"].icons), table.deepcopy(data.raw.item["aai-wood-loader"].icons),
{ { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } } { { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } }
) )
}) })
nauvis_recipe:apply() nauvis_recipe:apply()
end
if mods["aai-loaders-sane"] then if mods["aai-loaders-sane"] then
Technology:new("wood-logistics"):addRecipe("aai-wood-loader") Technology:new("wood-logistics"):addRecipe("aai-wood-loader")

View file

@ -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

View file

@ -1,6 +1,8 @@
local item_sounds = require("__base__.prototypes.item_sounds") local item_sounds = require("__base__.prototypes.item_sounds")
local item_tints = require("__base__.prototypes.item-tints") local item_tints = require("__base__.prototypes.item-tints")
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
local function robot(color) local function robot(color)
local result = table.deepcopy(data.raw["construction-robot"]["construction-robot"]) local result = table.deepcopy(data.raw["construction-robot"]["construction-robot"])
result.name = "basic-construction-robot-" .. color result.name = "basic-construction-robot-" .. color
@ -222,6 +224,7 @@ data:extend({
robot_recipe("gold", { robot_recipe("gold", {
{ type = "item", name = "gold-plate", amount = 2 }, { type = "item", name = "gold-plate", amount = 2 },
{ type = "item", name = "wooden-gear-wheel", amount = 5 }, { type = "item", name = "wooden-gear-wheel", amount = 5 },
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or
{ type = "item", name = "gold-cable", amount = 10 } { type = "item", name = "gold-cable", amount = 10 }
}), }),
generator("gold"), generator("gold"),
@ -233,7 +236,8 @@ data:extend({
roboport("gold"), roboport("gold"),
roboport_item("gold", 0), roboport_item("gold", 0),
roboport_recipe("gold", { 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 } { type = "item", name = "wooden-gear-wheel", amount = 10 }
}), }),
@ -241,9 +245,9 @@ data:extend({
robot("copper"), robot("copper"),
robot_item("copper", 1), robot_item("copper", 1),
robot_recipe("copper", { 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 = "iron-gear-wheel", amount = 5 },
{ type = "item", name = "electronic-circuit", amount = 10 } { type = "item", name = "electronic-circuit", amount = 5 }
}), }),
generator("copper"), generator("copper"),
generator_item("copper", 1), generator_item("copper", 1),
@ -254,9 +258,9 @@ data:extend({
roboport("copper"), roboport("copper"),
roboport_item("copper", 1), roboport_item("copper", 1),
roboport_recipe("copper", { roboport_recipe("copper", {
{ type = "item", name = "copper-plate", amount = 10 }, { type = "item", name = "copper-plate", amount = 5 },
{ type = "item", name = "iron-gear-wheel", amount = 10 }, { type = "item", name = "electronic-circuit", amount = 10 },
{ type = "item", name = "electronic-circuit", amount = 20 } { type = "item", name = "iron-gear-wheel", amount = 10 }
}), }),
-- Technology -- Technology

View file

@ -2,6 +2,8 @@ local hit_effects = require("__base__.prototypes.entity.hit-effects")
local item_sounds = require("__base__.prototypes.item_sounds") local item_sounds = require("__base__.prototypes.item_sounds")
local item_tints = require("__base__.prototypes.item-tints") local item_tints = require("__base__.prototypes.item-tints")
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
data:extend({ data:extend({
{ {
type = "radar", type = "radar",
@ -80,7 +82,7 @@ data:extend({
{ type = "item", name = "stone-brick", amount = 4 }, { type = "item", name = "stone-brick", amount = 4 },
{ type = "item", name = "wooden-gear-wheel", amount = 4 }, { type = "item", name = "wooden-gear-wheel", amount = 4 },
{ type = "item", name = "gold-plate", amount = 4 }, { type = "item", name = "gold-plate", amount = 4 },
{ type = "item", name = "gold-cable", 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 } }, results = { { type = "item", name = "basic-radar", amount = 1 } },
enabled = false enabled = false

View file

@ -1,5 +1,6 @@
local item_sounds = require("__base__.prototypes.item_sounds") 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 gfx = "__lignumis__/graphics/entity/burner-agricultural-tower/"
local agricultural_tower = table.deepcopy(data.raw["agricultural-tower"]["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.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.animation.layers[1].filename = gfx .. "burner-agricultural-tower-base.png"
agricultural_tower.graphics_set.working_visualisations[1].animation.filename = gfx .. agricultural_tower.graphics_set.working_visualisations[1].animation.filename = gfx ..
"burner-agricultural-tower-base.png" "burner-agricultural-tower-base.png"
agricultural_tower.energy_source = { agricultural_tower.energy_source = {
type = "burner", type = "burner",
fuel_categories = { "chemical" }, fuel_categories = { "chemical" },
@ -86,25 +87,8 @@ data:extend({
{ type = "item", name = "stone-brick", amount = 5 }, { type = "item", name = "stone-brick", amount = 5 },
{ type = "item", name = "wooden-gear-wheel", amount = 20 }, { type = "item", name = "wooden-gear-wheel", amount = 20 },
{ type = "item", name = "lumber", amount = 20 }, { type = "item", name = "lumber", amount = 20 },
{ 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 = "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 }
}, },
results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } }, results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } },
enabled = false enabled = false
@ -125,7 +109,30 @@ tech.ignore_tech_cost_multiplier = true
data.raw.technology["fish-breeding"].prerequisites = { "agricultural-science-pack" } data.raw.technology["fish-breeding"].prerequisites = { "agricultural-science-pack" }
table.insert(data.raw.technology["electronics"].effects, { 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", type = "unlock-recipe",
recipe = "burner-agricultural-tower-electronic-circuit" recipe = "burner-agricultural-tower-electronic-circuit"
}) })
end

View file

@ -1,5 +1,6 @@
local item_sounds = require("__base__.prototypes.item_sounds") 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 gfx = "__lignumis__/graphics/entity/burner-assembling-machine/"
local assembling_machine = table.deepcopy(data.raw["assembling-machine"]["assembling-machine-1"]) local assembling_machine = table.deepcopy(data.raw["assembling-machine"]["assembling-machine-1"])
@ -71,24 +72,8 @@ data:extend({
ingredients = { ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 5 }, { type = "item", name = "wooden-gear-wheel", amount = 5 },
{ type = "item", name = "lumber", amount = 8 }, { type = "item", name = "lumber", amount = 8 },
{ type = "item", name = "gold-cable", amount = 20 } 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
},
{
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 }
}, },
results = { { type = "item", name = "burner-assembling-machine", amount = 1 } }, results = { { type = "item", name = "burner-assembling-machine", amount = 1 } },
energy_required = 4 energy_required = 4
@ -118,7 +103,29 @@ data:extend({
} }
}) })
table.insert(data.raw.technology["electronics"].effects, { 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", type = "unlock-recipe",
recipe = "burner-assembling-machine-electronic-circuit" recipe = "burner-assembling-machine-electronic-circuit"
}) })
end

View file

@ -1,5 +1,6 @@
local item_sounds = require("__base__.prototypes.item_sounds") 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 gfx = "__lignumis__/graphics/entity/burner-long-handed-inserter/"
local long_handed_inserter = table.deepcopy(data.raw["inserter"]["long-handed-inserter"]) local long_handed_inserter = table.deepcopy(data.raw["inserter"]["long-handed-inserter"])
@ -66,7 +67,8 @@ data:extend({
ingredients = { ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 1 }, { type = "item", name = "wooden-gear-wheel", amount = 1 },
{ type = "item", name = "burner-inserter", amount = 1 }, { type = "item", name = "burner-inserter", amount = 1 },
{ type = "item", name = "gold-cable", amount = 4 } 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 } } results = { { type = "item", name = "burner-long-handed-inserter", amount = 1 } }
} }

View file

@ -29,5 +29,6 @@ require("active-noise-cancelling-tower")
require("quality-assembler") require("quality-assembler")
require("decoratives") require("decoratives")
require("wood-military") require("wood-military")
require("basic-circuit-boards")
require("noise") require("noise")

View file

@ -1,6 +1,8 @@
local LumberMillFactory = require(MF.buildings .. "LumberMill") local LumberMillFactory = require(MF.buildings .. "LumberMill")
local LumberMill = LumberMillFactory() local LumberMill = LumberMillFactory()
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
data:extend({ data:extend({
{ {
type = "recipe-category", type = "recipe-category",
@ -30,7 +32,8 @@ LumberMill.RecipeBuilder:new()
{ type = "item", name = "stone-brick", amount = 40 }, { type = "item", name = "stone-brick", amount = 40 },
{ type = "item", name = "lumber", amount = 100 }, { type = "item", name = "lumber", amount = 100 },
{ type = "item", name = "wooden-gear-wheel", 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 } { type = "item", name = "burner-assembling-machine", amount = 5 }
}) })
:apply({ :apply({
@ -44,7 +47,8 @@ LumberMill.TechnologyBuilder:new()
:ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }) :ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } })
:apply() :apply()
LumberMill.RecipeBuilder:new() if not basic_circuit_board then
LumberMill.RecipeBuilder:new()
:ingredients({ :ingredients({
{ type = "item", name = "stone-brick", amount = 40 }, { type = "item", name = "stone-brick", amount = 40 },
{ type = "item", name = "lumber", amount = 50 }, { type = "item", name = "lumber", amount = 50 },
@ -62,7 +66,8 @@ LumberMill.RecipeBuilder:new()
} }
}) })
table.insert(data.raw.technology["electronics"].effects, { table.insert(data.raw.technology["electronics"].effects, {
type = "unlock-recipe", type = "unlock-recipe",
recipe = "lumber-mill-electronic-circuit" recipe = "lumber-mill-electronic-circuit"
}) })
end

View file

@ -1,5 +1,6 @@
local item_sounds = require("__base__.prototypes.item_sounds") 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/" local gfx = "__lignumis__/graphics/entity/wood-lab/"
data:extend({ data:extend({
@ -148,7 +149,8 @@ data:extend({
{ type = "item", name = "lumber", amount = 10 }, { type = "item", name = "lumber", amount = 10 },
{ type = "item", name = "wooden-gear-wheel", amount = 10 }, { type = "item", name = "wooden-gear-wheel", amount = 10 },
{ type = "item", name = "stone-brick", 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 } }, results = { { type = "item", name = "wood-lab", amount = 1 } },
enabled = false enabled = false

View file

@ -1,6 +1,8 @@
local BeltFactory = require(MF.logistics .. "Belts") local BeltFactory = require(MF.logistics .. "Belts")
local Belt = BeltFactory("wood", "brown", "slow") local Belt = BeltFactory("wood", "brown", "slow")
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
Belt.EntityBuilder:new() Belt.EntityBuilder:new()
:itemsPerSecond(7.5) :itemsPerSecond(7.5)
:nextTier("") :nextTier("")
@ -36,6 +38,7 @@ Belt.RecipeBuilder:new()
:ingredients("splitter", { :ingredients("splitter", {
{ type = "item", name = "wood-transport-belt", amount = 2 }, { type = "item", name = "wood-transport-belt", amount = 2 },
{ type = "item", name = "lumber", amount = 2 }, { type = "item", name = "lumber", amount = 2 },
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or
{ type = "item", name = "gold-cable", amount = 10 } { type = "item", name = "gold-cable", amount = 10 }
}) })
:apply() :apply()
@ -47,7 +50,8 @@ Belt.TechnologyBuilder:new()
:time(10) :time(10)
:apply() :apply()
data:extend({ if not basic_circuit_board then
data:extend({
Belt.RecipeBuilder:new() Belt.RecipeBuilder:new()
:ingredients("splitter", { :ingredients("splitter", {
{ type = "item", name = "wood-transport-belt", amount = 2 }, { type = "item", name = "wood-transport-belt", amount = 2 },
@ -65,9 +69,10 @@ data:extend({
} }
}) })
.splitter .splitter
}) })
table.insert(data.raw.technology["electronics"].effects, { table.insert(data.raw.technology["electronics"].effects, {
type = "unlock-recipe", type = "unlock-recipe",
recipe = "wood-splitter-electronic-circuit" recipe = "wood-splitter-electronic-circuit"
}) })
end

View file

@ -1,6 +1,8 @@
local pipecovers = require("prototypes/content/gold/pipecovers") local pipecovers = require("prototypes/content/gold/pipecovers")
local machinepipes = require("prototypes/content/gold/machinepipes") 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"]) local silo = table.deepcopy(data.raw["rocket-silo"]["rocket-silo"])
silo.name = "provisional-rocket-silo" silo.name = "provisional-rocket-silo"
silo.icon = "__lignumis__/graphics/icons/provisional-rocket-silo.png" silo.icon = "__lignumis__/graphics/icons/provisional-rocket-silo.png"
@ -69,6 +71,7 @@ silo_recipe.ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 250 }, { type = "item", name = "wooden-gear-wheel", amount = 250 },
{ type = "item", name = "stone-brick", amount = 500 }, { type = "item", name = "stone-brick", amount = 500 },
{ type = "item", name = "gold-plate", amount = 500 }, { type = "item", name = "gold-plate", amount = 500 },
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 100 } or
{ type = "item", name = "gold-cable", amount = 100 } { type = "item", name = "gold-cable", amount = 100 }
} }
@ -90,9 +93,10 @@ local rocket_part_recipe = {
hide_from_player_crafting = true, hide_from_player_crafting = true,
category = "rocket-building", category = "rocket-building",
ingredients = { ingredients = {
{ type = "item", name = "lumber", amount = 5 }, { type = "item", name = "lumber", amount = basic_circuit_board and 3 or 5 },
{ type = "item", name = "wooden-gear-wheel", amount = 5 }, { type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 4 or 5 },
{ type = "item", name = "gold-plate", amount = 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 = "item", name = "gold-cable", amount = 5 },
{ type = "fluid", name = "wood-pulp", amount = 5 } { type = "fluid", name = "wood-pulp", amount = 5 }
}, },

View file

@ -1,6 +1,8 @@
local Technology = require("__cf-lib__/data/Technology") local Technology = require("__cf-lib__/data/Technology")
local Recipe = require("__cf-lib__/data/Recipe") local Recipe = require("__cf-lib__/data/Recipe")
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
-- Burner mining drill -- Burner mining drill
local drill = data.raw["mining-drill"]["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"] local drill_recipe = data.raw["recipe"]["burner-mining-drill"]
drill_recipe.ingredients = { drill_recipe.ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 3 },
{ type = "item", name = "stone-furnace", amount = 1 }, { 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
} }

View file

@ -26,6 +26,20 @@ data:extend({
setting_type = "startup", setting_type = "startup",
default_value = true, default_value = true,
order = "d" 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"
} }
}) })

Binary file not shown.