Compare commits
16 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b2ac4793c6 | ||
![]() |
4ed26b5b9d | ||
![]() |
d41cc3c822 | ||
![]() |
ad56704b52 | ||
![]() |
c481394e55 | ||
![]() |
c334459db2 | ||
![]() |
e1c40fcd33 | ||
![]() |
da50f85b5b | ||
![]() |
3b26f3a754 | ||
![]() |
0bfda7246f | ||
![]() |
f91f364c8d | ||
![]() |
8e1c774e2a | ||
![]() |
1b117be9c6 | ||
![]() |
67055378c8 | ||
![]() |
0fb21cf2ea | ||
![]() |
db9dd1c252 |
14 changed files with 127 additions and 40 deletions
10
README.md
10
README.md
|
@ -2,8 +2,6 @@ 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:
|
||||||
|
@ -63,6 +61,7 @@ The following planet mods are tested for (at least technical) compatibility:
|
||||||
## Problematic / incompatible mods
|
## Problematic / incompatible mods
|
||||||
|
|
||||||
* Mods that let you start on a different planet: They are supported, but you are missing half of the content of this mod.
|
* Mods that let you start on a different planet: They are supported, but you are missing half of the content of this mod.
|
||||||
|
* The combination of AAI Industry and Any planet start is currently not supported.
|
||||||
* Alien Biomes: Lignumis won't have any trees. It's playable, but not as intended.
|
* Alien Biomes: Lignumis won't have any trees. It's playable, but not as intended.
|
||||||
* The rest of the Wooden Universe: I marked the ones incompatible that don't make sense to combine or that wouldn't add more that is not already included.
|
* The rest of the Wooden Universe: I marked the ones incompatible that don't make sense to combine or that wouldn't add more that is not already included.
|
||||||
|
|
||||||
|
@ -123,7 +122,7 @@ If your modded lab is special and it should not support these science packs, use
|
||||||
- Simplified chinese (zh-CN): cyx2015s
|
- Simplified chinese (zh-CN): cyx2015s
|
||||||
- Polish (pl): StarGazer
|
- Polish (pl): StarGazer
|
||||||
|
|
||||||
### Assets
|
### Assets / Code
|
||||||
|
|
||||||
[Hurricane](https://mods.factorio.com/user/Hurricane046)
|
[Hurricane](https://mods.factorio.com/user/Hurricane046)
|
||||||
|
|
||||||
|
@ -184,3 +183,8 @@ If your modded lab is special and it should not support these science packs, use
|
||||||
[Pixabay](https://pixabay.com)
|
[Pixabay](https://pixabay.com)
|
||||||
|
|
||||||
- [AudioPapkin: Forest ambience](https://pixabay.com/sound-effects/forest-ambience-296528/)
|
- [AudioPapkin: Forest ambience](https://pixabay.com/sound-effects/forest-ambience-296528/)
|
||||||
|
|
||||||
|
[SafTheLamb](https://mods.factorio.com/user/SafTheLamb)
|
||||||
|
|
||||||
|
- [Early Agriculture](https://mods.factorio.com/mod/early-agriculture): Fix for trees not being plantable on Nauvis with Alien Biomes active.
|
||||||
|
- [Wooden Logistics](https://mods.factorio.com/mod/wood-logistics): Code for AAI Loader.
|
|
@ -1,4 +1,35 @@
|
||||||
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 1.0.30
|
||||||
|
Date: 06.03.2025
|
||||||
|
Bug Fixes:
|
||||||
|
- Any planet start: Fix startup crash
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 1.0.29
|
||||||
|
Date: 05.03.2025
|
||||||
|
Breaking Changes:
|
||||||
|
- Nerf quality assembler to +25% quality
|
||||||
|
Changes:
|
||||||
|
- Set default for setting "Basic circuit boards" to true
|
||||||
|
- Alien Biomes: Add warning when the game starts that AB is not supported
|
||||||
|
Bug Fixes:
|
||||||
|
- Fix Burner agricultural tower not having a Nauvis recipe when "Basic circuit boards" is active
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 1.0.28
|
||||||
|
Date: 04.03.2025
|
||||||
|
Changes:
|
||||||
|
- Steam assembler technology should not ignore tech cost multiplier
|
||||||
|
Bug Fixes:
|
||||||
|
- AAI Loaders: Add missing translation
|
||||||
|
- Prevent possible errors on player initialization
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 1.0.27
|
||||||
|
Date: 02.03.2025
|
||||||
|
Changes:
|
||||||
|
- Add compatibility for "Any planet start"
|
||||||
|
- Add compatibility for "Lane splitters"
|
||||||
|
Bug Fixes:
|
||||||
|
- AAI Industry: Fix basic circuit board recipe unlock
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
Version: 1.0.26
|
Version: 1.0.26
|
||||||
Date: 28.02.2025
|
Date: 28.02.2025
|
||||||
Bug Fixes:
|
Bug Fixes:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lignumis",
|
"name": "lignumis",
|
||||||
"version": "1.0.26",
|
"version": "1.0.30",
|
||||||
"title": "Lignumis",
|
"title": "Lignumis",
|
||||||
"description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.",
|
"description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.",
|
||||||
"author": "cackling fiend",
|
"author": "cackling fiend",
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
"?Diversitree",
|
"?Diversitree",
|
||||||
"?aai-loaders",
|
"?aai-loaders",
|
||||||
"?atan-nuclear-science",
|
"?atan-nuclear-science",
|
||||||
|
"?lane-splitters",
|
||||||
"!apm_power_ldinc",
|
"!apm_power_ldinc",
|
||||||
"!wood-logistics",
|
"!wood-logistics",
|
||||||
"!early-agriculture",
|
"!early-agriculture",
|
||||||
|
|
|
@ -45,6 +45,7 @@ basic-radar=Basic radar
|
||||||
active-noise-cancelling-tower=Active noise cancelling tower
|
active-noise-cancelling-tower=Active noise cancelling tower
|
||||||
quality-assembler=Quality assembler
|
quality-assembler=Quality assembler
|
||||||
aai-wood-loader=Wood loader
|
aai-wood-loader=Wood loader
|
||||||
|
wood-lane-splitter=Wood lane splitter
|
||||||
|
|
||||||
[entity-description]
|
[entity-description]
|
||||||
lumber-mill=Advanced machine to process wood.
|
lumber-mill=Advanced machine to process wood.
|
||||||
|
@ -128,6 +129,7 @@ basic-repair-pack=Basic repair pack
|
||||||
basic-radar=Basic radar
|
basic-radar=Basic radar
|
||||||
active-noise-cancelling=Active noise cancelling
|
active-noise-cancelling=Active noise cancelling
|
||||||
quality-assembler=Quality assembler
|
quality-assembler=Quality assembler
|
||||||
|
aai-wood-loader=Wood loader
|
||||||
|
|
||||||
[technology-description]
|
[technology-description]
|
||||||
wood-science-pack=Allows research of basic technologies based on wood products.
|
wood-science-pack=Allows research of basic technologies based on wood products.
|
||||||
|
|
|
@ -5,10 +5,12 @@ if not mods["aai-industry"] then return end
|
||||||
data.raw.recipe["wood-science-pack"].allow_hand_crafting = true
|
data.raw.recipe["wood-science-pack"].allow_hand_crafting = true
|
||||||
|
|
||||||
local burner_mechanics = Technology:new("burner-mechanics")
|
local burner_mechanics = Technology:new("burner-mechanics")
|
||||||
burner_mechanics:addPrerequisite("iron-processing")
|
|
||||||
burner_mechanics:removeRecipe("burner-inserter")
|
burner_mechanics:removeRecipe("burner-inserter")
|
||||||
burner_mechanics:removeRecipe("burner-mining-drill")
|
burner_mechanics:removeRecipe("burner-mining-drill")
|
||||||
burner_mechanics:removeRecipe("burner-assembling-machine")
|
burner_mechanics:removeRecipe("burner-assembling-machine")
|
||||||
|
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||||
|
burner_mechanics:addPrerequisite("iron-processing")
|
||||||
|
end
|
||||||
|
|
||||||
data.raw.recipe["burner-inserter"].enabled = true
|
data.raw.recipe["burner-inserter"].enabled = true
|
||||||
data.raw.recipe["burner-mining-drill"].enabled = true
|
data.raw.recipe["burner-mining-drill"].enabled = true
|
||||||
|
@ -29,4 +31,8 @@ if settings.startup["lignumis-basic-circuit-board"].value then
|
||||||
table.insert(data.raw["recipe"]["inserter"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 })
|
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"]["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 })
|
table.insert(data.raw["recipe"]["assembling-machine-1"].ingredients, { type = "item", name = "basic-circuit-board", amount = 5 })
|
||||||
|
|
||||||
|
-- AAI Industry messes with the basic circuit board recipe
|
||||||
|
Technology:new("electronics"):removeRecipe("basic-circuit-board")
|
||||||
|
data.raw.recipe["basic-circuit-board"].enabled = true
|
||||||
end
|
end
|
|
@ -5,3 +5,4 @@ require("alien-biomes")
|
||||||
require("planet-picker")
|
require("planet-picker")
|
||||||
require("aai-loaders")
|
require("aai-loaders")
|
||||||
require("nuclear-science")
|
require("nuclear-science")
|
||||||
|
require("lane-splitters")
|
32
lignumis/prototypes/compatibility/lane-splitters.lua
Normal file
32
lignumis/prototypes/compatibility/lane-splitters.lua
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
if not mods["lane-splitters"] then return end
|
||||||
|
|
||||||
|
local lane_splitter = make_tier({
|
||||||
|
name = "wood-lane-splitter",
|
||||||
|
base_belt = "wood-transport-belt",
|
||||||
|
base_splitter = "wood-splitter",
|
||||||
|
health = 150,
|
||||||
|
next_upgrade = "lane-splitter",
|
||||||
|
})
|
||||||
|
|
||||||
|
lane_splitter.prototype.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png"
|
||||||
|
lane_splitter.prototype.dying_explosion = "transport-belt-explosion"
|
||||||
|
lane_splitter.prototype.structure.east.filename = data.raw.splitter["wood-splitter"].structure.east.filename
|
||||||
|
lane_splitter.prototype.structure.south.filename = data.raw.splitter["wood-splitter"].structure.south.filename
|
||||||
|
lane_splitter.prototype.structure.west.filename = data.raw.splitter["wood-splitter"].structure.west.filename
|
||||||
|
lane_splitter.prototype.structure.north.filename = data.raw.splitter["wood-splitter"].structure.north.filename
|
||||||
|
lane_splitter.prototype.structure_patch.east.filename = data.raw.splitter["wood-splitter"].structure_patch.east.filename
|
||||||
|
lane_splitter.prototype.structure_patch.south.filename = data.raw.splitter["wood-splitter"].structure_patch.south.filename
|
||||||
|
lane_splitter.prototype.structure_patch.west.filename = data.raw.splitter["wood-splitter"].structure_patch.west.filename
|
||||||
|
lane_splitter.prototype.structure_patch.north.filename = data.raw.splitter["wood-splitter"].structure_patch.north.filename
|
||||||
|
lane_splitter.item.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png"
|
||||||
|
|
||||||
|
data:extend({
|
||||||
|
lane_splitter.prototype,
|
||||||
|
lane_splitter.item,
|
||||||
|
lane_splitter.recipe,
|
||||||
|
})
|
||||||
|
|
||||||
|
table.insert(data.raw["technology"]["wood-logistics"].effects, {
|
||||||
|
type = "unlock-recipe",
|
||||||
|
recipe = "wood-lane-splitter"
|
||||||
|
})
|
|
@ -51,7 +51,11 @@ data:extend({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
Technology:new("copper-processing"):addRecipe("basic-circuit-board-copper")
|
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||||
|
Technology:new("copper-processing"):addRecipe("basic-circuit-board-copper")
|
||||||
|
else
|
||||||
|
Technology:new("electronics"):addRecipe("basic-circuit-board-copper")
|
||||||
|
end
|
||||||
|
|
||||||
if settings.startup["lignumis-circuit-progression"].value then
|
if settings.startup["lignumis-circuit-progression"].value then
|
||||||
table.insert(data.raw.recipe["electronic-circuit"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 })
|
table.insert(data.raw.recipe["electronic-circuit"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 })
|
|
@ -1,4 +1,5 @@
|
||||||
local item_sounds = require("__base__.prototypes.item_sounds")
|
local item_sounds = require("__base__.prototypes.item_sounds")
|
||||||
|
local Technology = require("__cf-lib__/data/Technology")
|
||||||
|
|
||||||
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
|
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/"
|
||||||
|
@ -109,30 +110,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" }
|
||||||
|
|
||||||
if not basic_circuit_board then
|
data:extend({
|
||||||
data:extend({
|
|
||||||
{
|
{
|
||||||
type = "recipe",
|
type = "recipe",
|
||||||
name = "burner-agricultural-tower-electronic-circuit",
|
name = "burner-agricultural-tower-copper",
|
||||||
localised_name = { "entity-name.burner-agricultural-tower" },
|
localised_name = { "entity-name.burner-agricultural-tower" },
|
||||||
icons = {
|
icons = {
|
||||||
{ icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" },
|
{ icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" },
|
||||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
{ icon = "__base__/graphics/icons/copper-plate.png", scale = 0.25, shift = { 8, 8 } }
|
||||||
},
|
},
|
||||||
energy_required = 10,
|
energy_required = 10,
|
||||||
ingredients = {
|
ingredients = {
|
||||||
{ 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 = "electronic-circuit", amount = 10 }
|
{ type = "item", name = "copper-plate", amount = 10 },
|
||||||
|
{ type = "item", name = basic_circuit_board and "basic-circuit-board" or "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
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
table.insert(data.raw.technology["electronics"].effects, {
|
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||||
type = "unlock-recipe",
|
Technology:new("copper-processing"):addRecipe("burner-agricultural-tower-copper")
|
||||||
recipe = "burner-agricultural-tower-electronic-circuit"
|
else
|
||||||
})
|
Technology:new("electronics"):addRecipe("burner-agricultural-tower-copper")
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,6 +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("basic-circuit-board")
|
||||||
|
|
||||||
require("noise")
|
require("noise")
|
||||||
|
|
|
@ -77,7 +77,7 @@ QualityAssembler.EntityBuilder:new()
|
||||||
crafting_speed = 4,
|
crafting_speed = 4,
|
||||||
module_slots = 6,
|
module_slots = 6,
|
||||||
allowed_effects = { "pollution", "quality" },
|
allowed_effects = { "pollution", "quality" },
|
||||||
effect_receiver = { base_effect = { quality = 10 } }
|
effect_receiver = { base_effect = { quality = 2.5 } }
|
||||||
})
|
})
|
||||||
|
|
||||||
QualityAssembler.ItemBuilder:new():apply()
|
QualityAssembler.ItemBuilder:new():apply()
|
||||||
|
|
|
@ -106,6 +106,6 @@ data:extend({
|
||||||
ingredients = { { "wood-science-pack", 1 } },
|
ingredients = { { "wood-science-pack", 1 } },
|
||||||
time = 15
|
time = 15
|
||||||
},
|
},
|
||||||
ignore_tech_cost_multiplier = true
|
ignore_tech_cost_multiplier = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -22,10 +22,10 @@ end
|
||||||
-- Teleport to Lignumis and give some starting items
|
-- Teleport to Lignumis and give some starting items
|
||||||
local function init_player(event)
|
local function init_player(event)
|
||||||
local player = game.get_player(event.player_index)
|
local player = game.get_player(event.player_index)
|
||||||
|
|
||||||
if not player.character then return end
|
|
||||||
|
|
||||||
local surface = storage.surface or game.planets["lignumis"].surface
|
local surface = storage.surface or game.planets["lignumis"].surface
|
||||||
|
|
||||||
|
if not player.character or not surface then return end
|
||||||
|
|
||||||
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis")
|
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis")
|
||||||
player.character.destructible = false
|
player.character.destructible = false
|
||||||
local main_inventory = player.character.get_main_inventory()
|
local main_inventory = player.character.get_main_inventory()
|
||||||
|
@ -80,6 +80,11 @@ Init.events[defines.events.on_player_created] = function(event)
|
||||||
if storage.init[event.player_index] then return end
|
if storage.init[event.player_index] then return end
|
||||||
|
|
||||||
storage.init[event.player_index] = true
|
storage.init[event.player_index] = true
|
||||||
|
|
||||||
|
if script.active_mods["alien-biomes"] then
|
||||||
|
game.print("While Alien Biomes is playable with Lignumis, it is not recommended as it prevents trees from being generated on Lignumis.")
|
||||||
|
end
|
||||||
|
|
||||||
init_player(event)
|
init_player(event)
|
||||||
init_freeplay(event)
|
init_freeplay(event)
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,7 +31,7 @@ data:extend({
|
||||||
type = "bool-setting",
|
type = "bool-setting",
|
||||||
name = "lignumis-basic-circuit-board",
|
name = "lignumis-basic-circuit-board",
|
||||||
setting_type = "startup",
|
setting_type = "startup",
|
||||||
default_value = false,
|
default_value = true,
|
||||||
order = "e"
|
order = "e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue