From 21edab24de8dae8c676900835f8e369e52a62793 Mon Sep 17 00:00:00 2001 From: "DESKTOP-8PQDRUU\\Admin" Date: Fri, 1 Aug 2025 23:58:10 +0800 Subject: [PATCH 01/41] Add final fixes for Lignumis and Alien Biomes compatibility --- .../compatibility/alien-biomes-final.lua | 67 +++++++++++++++++++ .../prototypes/compatibility/alien-biomes.lua | 1 + lignumis/prototypes/compatibility/final.lua | 1 + 3 files changed, 69 insertions(+) create mode 100644 lignumis/prototypes/compatibility/alien-biomes-final.lua diff --git a/lignumis/prototypes/compatibility/alien-biomes-final.lua b/lignumis/prototypes/compatibility/alien-biomes-final.lua new file mode 100644 index 0000000..d90c64b --- /dev/null +++ b/lignumis/prototypes/compatibility/alien-biomes-final.lua @@ -0,0 +1,67 @@ +-- Lignumis + Alien Biomes Compatibility - Final Fixes +-- +-- This runs AFTER alien-biomes data-updates.lua to ensure our fixes aren't overridden +-- Load order: data.lua -> data-updates.lua -> data-final-fixes.lua (THIS FILE) + +if not mods["alien-biomes"] then + return +end + +-- Define Lignumis grass tiles (from mapgen.lua) +local lignumis_grass_tiles = { + "grass-1", + "grass-2", + "grass-3", + "grass-4", + "natural-gold-soil" +} + +-- Fix tree plant for manual planting on Lignumis grass tiles +local tree_plant = data.raw.plant["tree-plant"] +if mods["Diversitree"] then + tree_plant = data.raw.plant["s6xdvt-fake-tree"] +end + +if tree_plant then + for _, tile in pairs(lignumis_grass_tiles) do + local already_present = false + for _, existing_tile in pairs(tree_plant.autoplace.tile_restriction) do + if existing_tile == tile then + already_present = true + break + end + end + if not already_present then + table.insert(tree_plant.autoplace.tile_restriction, tile) + end + end +end + +-- Fix tree autoplace restrictions for natural tree spawning +for _, tree in pairs(data.raw.tree) do + if tree.autoplace and tree.autoplace.tile_restriction then + -- Skip gold stromatolites - they should remain exclusive to natural-gold-soil + local is_gold_stromatolite = tree.name and (tree.name:find("stromatolite") or tree.name:find("gold")) + + if not is_gold_stromatolite then + -- Check if Lignumis grass tiles are missing + local has_lignumis_tiles = false + for _, existing_tile in pairs(tree.autoplace.tile_restriction) do + for _, lignumis_tile in pairs(lignumis_grass_tiles) do + if existing_tile == lignumis_tile then + has_lignumis_tiles = true + break + end + end + if has_lignumis_tiles then break end + end + + -- Add Lignumis grass tiles if missing + if not has_lignumis_tiles then + for _, tile_name in pairs(lignumis_grass_tiles) do + table.insert(tree.autoplace.tile_restriction, tile_name) + end + end + end + end +end diff --git a/lignumis/prototypes/compatibility/alien-biomes.lua b/lignumis/prototypes/compatibility/alien-biomes.lua index cd6813c..87581ee 100644 --- a/lignumis/prototypes/compatibility/alien-biomes.lua +++ b/lignumis/prototypes/compatibility/alien-biomes.lua @@ -6,6 +6,7 @@ settings["small-rock"] = nil settings["tiny-rock"] = nil -- Fix trees not being plantable on Alien Biomes tiles +-- Note: Additional tree fixes for Lignumis grass tiles are handled in alien-biomes-final.lua local tile_restriction = data.raw["plant"]["tree-plant"].autoplace.tile_restriction for _, tile in pairs(alien_biomes.all_tiles()) do if tile.tags and (table.contains(tile.tags, "dirt") or table.contains(tile.tags, "grass")) then diff --git a/lignumis/prototypes/compatibility/final.lua b/lignumis/prototypes/compatibility/final.lua index db0c1dd..dfaf912 100644 --- a/lignumis/prototypes/compatibility/final.lua +++ b/lignumis/prototypes/compatibility/final.lua @@ -1,5 +1,6 @@ require("aai-loaders-final") require("any-planet-start-final") +require("alien-biomes-final") if not data.raw.technology["legendary-quality"] then table.removeValue(data.raw.technology["quality-assembler"].prerequisites, "legendary-quality") From b746a7c88ce11ad57b0810c20da0d9a3e6585cf7 Mon Sep 17 00:00:00 2001 From: chromebomb Date: Mon, 1 Sep 2025 12:35:06 +0200 Subject: [PATCH 02/41] fix: add final fixes for Lignumis and Alien Biomes compatibility (#7) refer to: https://discord.com/channels/1327043776715292773/1327045033077248021/1400725705867919371 Added a compatibility fix for alien biomes and lignumis. Changes: - added back the vanilla fertile tiles tha Alien Biomes remove to the tile restrictions of trees for manual and world gen spawning and planting of trees. - retains Lignumis' aesthetics of using the vanilla tiles and Nauvis' Alien Biomes - able to plant and spawn trees in Lignumis now when Alien Biomes is also enabled ps. this is the first time I contributed/made a mod for factorio, if there is anything to be improved on the syntaxes and anything do let me know. Co-authored-by: chromebomb Reviewed-on: https://git.cacklingfiend.info/cacklingfiend/lignumis/pulls/7 Co-authored-by: chromebomb Co-committed-by: chromebomb --- .../compatibility/alien-biomes-final.lua | 67 +++++++++++++++++++ .../prototypes/compatibility/alien-biomes.lua | 1 + lignumis/prototypes/compatibility/final.lua | 1 + 3 files changed, 69 insertions(+) create mode 100644 lignumis/prototypes/compatibility/alien-biomes-final.lua diff --git a/lignumis/prototypes/compatibility/alien-biomes-final.lua b/lignumis/prototypes/compatibility/alien-biomes-final.lua new file mode 100644 index 0000000..d90c64b --- /dev/null +++ b/lignumis/prototypes/compatibility/alien-biomes-final.lua @@ -0,0 +1,67 @@ +-- Lignumis + Alien Biomes Compatibility - Final Fixes +-- +-- This runs AFTER alien-biomes data-updates.lua to ensure our fixes aren't overridden +-- Load order: data.lua -> data-updates.lua -> data-final-fixes.lua (THIS FILE) + +if not mods["alien-biomes"] then + return +end + +-- Define Lignumis grass tiles (from mapgen.lua) +local lignumis_grass_tiles = { + "grass-1", + "grass-2", + "grass-3", + "grass-4", + "natural-gold-soil" +} + +-- Fix tree plant for manual planting on Lignumis grass tiles +local tree_plant = data.raw.plant["tree-plant"] +if mods["Diversitree"] then + tree_plant = data.raw.plant["s6xdvt-fake-tree"] +end + +if tree_plant then + for _, tile in pairs(lignumis_grass_tiles) do + local already_present = false + for _, existing_tile in pairs(tree_plant.autoplace.tile_restriction) do + if existing_tile == tile then + already_present = true + break + end + end + if not already_present then + table.insert(tree_plant.autoplace.tile_restriction, tile) + end + end +end + +-- Fix tree autoplace restrictions for natural tree spawning +for _, tree in pairs(data.raw.tree) do + if tree.autoplace and tree.autoplace.tile_restriction then + -- Skip gold stromatolites - they should remain exclusive to natural-gold-soil + local is_gold_stromatolite = tree.name and (tree.name:find("stromatolite") or tree.name:find("gold")) + + if not is_gold_stromatolite then + -- Check if Lignumis grass tiles are missing + local has_lignumis_tiles = false + for _, existing_tile in pairs(tree.autoplace.tile_restriction) do + for _, lignumis_tile in pairs(lignumis_grass_tiles) do + if existing_tile == lignumis_tile then + has_lignumis_tiles = true + break + end + end + if has_lignumis_tiles then break end + end + + -- Add Lignumis grass tiles if missing + if not has_lignumis_tiles then + for _, tile_name in pairs(lignumis_grass_tiles) do + table.insert(tree.autoplace.tile_restriction, tile_name) + end + end + end + end +end diff --git a/lignumis/prototypes/compatibility/alien-biomes.lua b/lignumis/prototypes/compatibility/alien-biomes.lua index cd6813c..87581ee 100644 --- a/lignumis/prototypes/compatibility/alien-biomes.lua +++ b/lignumis/prototypes/compatibility/alien-biomes.lua @@ -6,6 +6,7 @@ settings["small-rock"] = nil settings["tiny-rock"] = nil -- Fix trees not being plantable on Alien Biomes tiles +-- Note: Additional tree fixes for Lignumis grass tiles are handled in alien-biomes-final.lua local tile_restriction = data.raw["plant"]["tree-plant"].autoplace.tile_restriction for _, tile in pairs(alien_biomes.all_tiles()) do if tile.tags and (table.contains(tile.tags, "dirt") or table.contains(tile.tags, "grass")) then diff --git a/lignumis/prototypes/compatibility/final.lua b/lignumis/prototypes/compatibility/final.lua index db0c1dd..dfaf912 100644 --- a/lignumis/prototypes/compatibility/final.lua +++ b/lignumis/prototypes/compatibility/final.lua @@ -1,5 +1,6 @@ require("aai-loaders-final") require("any-planet-start-final") +require("alien-biomes-final") if not data.raw.technology["legendary-quality"] then table.removeValue(data.raw.technology["quality-assembler"].prerequisites, "legendary-quality") From 3fb93faea514d3e9ae841fc35ca141955a5c3793 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 2 Sep 2025 10:34:22 +0200 Subject: [PATCH 03/41] Lumber mill can be built on Vulcanus --- lignumis/prototypes/content/lumber-mill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/lumber-mill.lua b/lignumis/prototypes/content/lumber-mill.lua index 3ac959d..0bb904c 100644 --- a/lignumis/prototypes/content/lumber-mill.lua +++ b/lignumis/prototypes/content/lumber-mill.lua @@ -25,7 +25,7 @@ LumberMill.EntityBuilder:new() surface_conditions = { { property = has_oxygen and "oxygen" or "pressure", - min = 10 + min = 3 }, { property = "gravity", From e14789ee81a03b181ba26cf21b68b8da6605b9fd Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 2 Sep 2025 10:40:55 +0200 Subject: [PATCH 04/41] 1.0.62 --- lignumis/changelog.txt | 7 +++++++ lignumis/info.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 697635c..7083de4 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.62 +Date: 02.09.2025 + Changes: + - Add spanish locales (thanks DFOXpro) + - Add compatibility for Alien Biomes (thanks Chromebomb) + - The lumber mill can be built on Vulcanus again +--------------------------------------------------------------------------------------------------- Version: 1.0.61 Date: 29.08.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index dcb6c17..14beab0 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.61", + "version": "1.0.62", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 014eed03aa9a9c5300c105e74eea093d9982294f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 9 Sep 2025 19:09:32 +0200 Subject: [PATCH 05/41] Fix vanilla more item weights --- lignumis/prototypes/integrations/vanilla.lua | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index 16b0477..ac6dd49 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -339,11 +339,24 @@ end -- Fix item weights -local function set_default_weight(item, items_per_rocket) - data.raw.item[item].weight = data.raw.item[item].weight or 1000 * kg / items_per_rocket +local function set_default_weight(item, items_per_rocket, type) + data.raw[type or "item"][item].weight = data.raw[type or "item"][item].weight or 1000 * kg / items_per_rocket end set_default_weight("electronic-circuit", 2000) set_default_weight("advanced-circuit", 1000) set_default_weight("processing-unit", 300) set_default_weight("low-density-structure", 200) -set_default_weight("rocket-fuel", 100) \ No newline at end of file +set_default_weight("rocket-fuel", 100) +set_default_weight("inserter", 50) +set_default_weight("fast-inserter", 50) +set_default_weight("electric-mining-drill", 50) +set_default_weight("pumpjack", 20) +set_default_weight("repair-pack", 100, "repair-tool") +set_default_weight("big-electric-pole", 50) +set_default_weight("assembling-machine-1", 50) +set_default_weight("assembling-machine-2", 50) +set_default_weight("oil-refinery", 10) +set_default_weight("accumulator", 50) +set_default_weight("steam-engine", 10) +set_default_weight("substation", 50) +set_default_weight("radar", 50) \ No newline at end of file From 2d327c805dca93c75ce8dd757825ad645456078e Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 9 Sep 2025 19:09:44 +0200 Subject: [PATCH 06/41] Wooden belts have half the weight --- lignumis/prototypes/content/wood-logistics.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lignumis/prototypes/content/wood-logistics.lua b/lignumis/prototypes/content/wood-logistics.lua index a575ba8..78cb353 100644 --- a/lignumis/prototypes/content/wood-logistics.lua +++ b/lignumis/prototypes/content/wood-logistics.lua @@ -33,9 +33,9 @@ Belt.EntityBuilder:new() }) local splitter_item = Belt.ItemBuilder:new() - :itemsPerRocket("transportBelt", 100) - :itemsPerRocket("undergroundBelt", 50) - :itemsPerRocket("splitter", 50) + :itemsPerRocket("transportBelt", 200) + :itemsPerRocket("undergroundBelt", 100) + :itemsPerRocket("splitter", 100) :order("0") :apply() .splitter From 7385751f2da492d8d5fb984778e57b5f4e401343 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 9 Sep 2025 19:11:11 +0200 Subject: [PATCH 07/41] 1.0.63 --- lignumis/changelog.txt | 7 +++++++ lignumis/info.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 7083de4..5bf266a 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.63 +Date: 09.09.2025 + Changes: + - Wooden belts have half the weight + Bug Fixes: + - Fix vanilla more item weights +--------------------------------------------------------------------------------------------------- Version: 1.0.62 Date: 02.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 14beab0..d2bee4d 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.62", + "version": "1.0.63", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 25b396affcbed7ceec38668b7aa81ab014cef6fc Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 10 Sep 2025 23:12:06 +0200 Subject: [PATCH 08/41] Fix more item weights --- lignumis/prototypes/content/gold/pipes.lua | 7 ++++++- lignumis/prototypes/integrations/vanilla.lua | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lignumis/prototypes/content/gold/pipes.lua b/lignumis/prototypes/content/gold/pipes.lua index 4e555a4..766a788 100644 --- a/lignumis/prototypes/content/gold/pipes.lua +++ b/lignumis/prototypes/content/gold/pipes.lua @@ -84,6 +84,7 @@ local pipe_item = { place_result = "gold-pipe", stack_size = 100, weight = 5 * kg, + default_import_location = "lignumis", random_tint_color = item_tints.iron_rust } @@ -159,6 +160,8 @@ local pipe_to_ground_item = { drop_sound = item_sounds.metal_small_inventory_move, place_result = "gold-pipe-to-ground", stack_size = 50, + weight = 5 * kg, + default_import_location = "lignumis", random_tint_color = item_tints.iron_rust } @@ -347,7 +350,9 @@ local tank_item = { pick_sound = item_sounds.metal_large_inventory_pickup, drop_sound = item_sounds.metal_large_inventory_move, place_result = "gold-storage-tank", - stack_size = 10 + stack_size = 10, + weight = 50 * kg, + default_import_location = "lignumis" } local tank_recipe = { diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index ac6dd49..1e27aaa 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -359,4 +359,8 @@ set_default_weight("oil-refinery", 10) set_default_weight("accumulator", 50) set_default_weight("steam-engine", 10) set_default_weight("substation", 50) -set_default_weight("radar", 50) \ No newline at end of file +set_default_weight("radar", 50) +set_default_weight("storage-tank", 50) +set_default_weight("fast-transport-belt", 100) +set_default_weight("fast-underground-belt", 50) +set_default_weight("fast-splitter", 50) \ No newline at end of file From 9cff8c44011cb81f28952cf0b1bac36a2b3e9ec7 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 10 Sep 2025 23:18:41 +0200 Subject: [PATCH 09/41] Fix steam assembler scaling with increased energy usage from modules --- lignumis/prototypes/content/steam-assembling-machine.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lignumis/prototypes/content/steam-assembling-machine.lua b/lignumis/prototypes/content/steam-assembling-machine.lua index ed85a59..da5ef2d 100644 --- a/lignumis/prototypes/content/steam-assembling-machine.lua +++ b/lignumis/prototypes/content/steam-assembling-machine.lua @@ -31,6 +31,7 @@ assembling_machine.energy_usage = "25kW" assembling_machine.energy_source = { type = "fluid", maximum_temperature = 165, + scale_fluid_usage = true, effectivity = 1, emissions_per_minute = { noise = 50 }, fluid_box = { From 8fb0fac8008ee2ae0a69b521739042f5403808f7 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 10 Sep 2025 23:19:31 +0200 Subject: [PATCH 10/41] 1.0.64 --- lignumis/changelog.txt | 6 ++++++ lignumis/info.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 5bf266a..3772a2a 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,10 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.64 +Date: 10.09.2025 + Bug Fixes: + - Fix more item weights + - Fix steam assembler scaling with increased energy usage from modules +--------------------------------------------------------------------------------------------------- Version: 1.0.63 Date: 09.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index d2bee4d..c62aa08 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.63", + "version": "1.0.64", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From c1797dfcfef903c31f80ac9823e333016491d019 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 11 Sep 2025 18:55:08 +0200 Subject: [PATCH 11/41] Remove warning for Alien Biomes --- README.md | 4 ++-- lignumis/scripts/init.lua | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fd55804..c5a282a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/ufvFUJtVwk)[![Forgejo](https://img.shields.io/badge/source%20code-%23f4f4f5?style=for-the-badge&logo=forgejo&logoColor=%23c2410c)](https://git.cacklingfiend.info/cacklingfiend/lignumis)[![Downloads](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmods.factorio.com%2Fapi%2Fmods%2Flignumis&query=%24.downloads_count&suffix=%20Downloads&style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI%2BCjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTIxNnB0IiBoZWlnaHQ9IjEyODBwdCIgdmlld0JveD0iMCAwIDEyMTYgMTI4MCIKIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDEyODApIHNjYWxlKDAuMSwtMC4xKSIKZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTM0NzAgOTYwMCBsMCAtMzIwMCAtMTczMSAwIGMtOTUyIDAgLTE3MjkgLTQgLTE3MjcgLTggNCAtMTIgNjA2MgotNjM5MCA2MDY4IC02MzkwIDYgMCA2MDY0IDYzNzggNjA2OCA2MzkwIDIgNCAtNzc1IDggLTE3MjcgOCBsLTE3MzEgMCAwIDMyMDAKMCAzMjAwIC0yNjEwIDAgLTI2MTAgMCAwIC0zMjAweiIvPgo8L2c%2BCjwvc3ZnPgo%3D&label=&labelColor=%23e39827&color=%23e39827)](https://mods.factorio.com/mod/lignumis/metrics?range=last_two_months&type=mod_downloads) + _________________ ![Lignumis poster](https://git.cacklingfiend.info/cacklingfiend/lignumis-assets/raw/branch/main/sources/readme/poster.jpg) @@ -117,7 +118,6 @@ _________________ ## Problematic / incompatible mods * 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. * 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. _________________ @@ -178,7 +178,7 @@ _________________ - Fix pipe graphics on desiccation furnace and quality assembler - Trees must not die when absorbing noise - - https://lua-api.factorio.com/latest/types/TreeVariation.html + - https://lua-api.factorio.com/latest/types/TreeVariation.html - Add information in Factoriopedia - Compatibility with [On Wayward Seas](https://mods.factorio.com/mod/wayward-seas) - Compatibility with [Exotic Space Industries](https://mods.factorio.com/mod/exotic-space-industries) diff --git a/lignumis/scripts/init.lua b/lignumis/scripts/init.lua index ad58805..75773e3 100644 --- a/lignumis/scripts/init.lua +++ b/lignumis/scripts/init.lua @@ -67,10 +67,6 @@ Init.events[defines.events.on_player_created] = function(event) 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 - if not script.active_mods["Burner-Leech-Fork"] and not script.active_mods["Burner-Leech"] and not script.active_mods["InserterFuelLeech"] then game.print("Lignumis: You are starting a new game without a burner leech mod. The intended experience is to use one of the available options. You can disable such a mod after the burner phase of the game. See the mod page for more details.") end From ee9eb8faf144ee928bb26686490d3ac644beff7d Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sat, 13 Sep 2025 21:38:39 +0200 Subject: [PATCH 12/41] More item weights --- lignumis/prototypes/content/burner-agricultural-tower.lua | 3 ++- lignumis/prototypes/content/burner-lamp.lua | 3 ++- lignumis/prototypes/integrations/vanilla.lua | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lignumis/prototypes/content/burner-agricultural-tower.lua b/lignumis/prototypes/content/burner-agricultural-tower.lua index 32a2234..e76a2da 100644 --- a/lignumis/prototypes/content/burner-agricultural-tower.lua +++ b/lignumis/prototypes/content/burner-agricultural-tower.lua @@ -78,7 +78,8 @@ data:extend({ drop_sound = item_sounds.mechanical_large_inventory_move, place_result = "burner-agricultural-tower", stack_size = 20, - default_import_location = "lignumis" + default_import_location = "lignumis", + weight = 100 * kg }, { type = "recipe", diff --git a/lignumis/prototypes/content/burner-lamp.lua b/lignumis/prototypes/content/burner-lamp.lua index 57add6e..4b52e0a 100644 --- a/lignumis/prototypes/content/burner-lamp.lua +++ b/lignumis/prototypes/content/burner-lamp.lua @@ -146,7 +146,8 @@ data:extend({ subgroup = "circuit-network", -- Copper lamp under circuit-network order = "a[lamp]-b[copper-lamp]", -- Copper lamp after large lamp place_result = "burner-lamp", - stack_size = 50 + stack_size = 50, + weight = 20 * kg }, { name = "burner-lamp", diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index 1e27aaa..c5097b8 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -363,4 +363,5 @@ set_default_weight("radar", 50) set_default_weight("storage-tank", 50) set_default_weight("fast-transport-belt", 100) set_default_weight("fast-underground-belt", 50) -set_default_weight("fast-splitter", 50) \ No newline at end of file +set_default_weight("fast-splitter", 50) +set_default_weight("steel-plate", 400) \ No newline at end of file From 9bf4a5d6ff42ec0d03b12efbdaa481db624910bd Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 14 Sep 2025 13:47:12 +0200 Subject: [PATCH 13/41] Add setting for infinite astroponics productivity research --- lignumis/locale/en/strings.cfg | 2 + .../prototypes/integrations/astroponics.lua | 83 +++++++++++-------- lignumis/settings.lua | 7 ++ 3 files changed, 56 insertions(+), 36 deletions(-) diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 09877f7..a9481d3 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -190,6 +190,7 @@ lignumis-early-robots=Even earlier personal robots lignumis-vanilla-lab=Keep vanilla lab recipe lignumis-double-rocket=Double provisional rocket cargo capacity lignumis-sciences-spoil=Lignumis science packs spoil +lignumis-infinite-astroponics-productivity-research=Infinite productivity research for Astroponics [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. @@ -205,6 +206,7 @@ lignumis-early-robots=Personal robots are moved from steam to wood science and a lignumis-vanilla-lab=Moves the transport belt recipe to Iron processing so the lab can be crafted with the original recipe without requiring to research logistics. lignumis-double-rocket=The provisional rocket can carry 80 instead of 40 slots. lignumis-sciences-spoil=Both wood science packs and steam science packs spoil for additional difficulty. +lignumis-infinite-astroponics-productivity-research=Productivity research for Astroponics is infinite instead of being capped to level 5 (which results in 50% productivity). [autoplace-control-names] lignumis_enemy_base=Lignumis enemy bases diff --git a/lignumis/prototypes/integrations/astroponics.lua b/lignumis/prototypes/integrations/astroponics.lua index b531625..491069f 100644 --- a/lignumis/prototypes/integrations/astroponics.lua +++ b/lignumis/prototypes/integrations/astroponics.lua @@ -1,38 +1,49 @@ -data:extend({ - { - type = "technology", - name = "astroponics-productivity", - icons = { - { icon = "__base__/graphics/icons/wood.png", icon_size = 64 }, - { icon = "__astroponics__/graphics/icons/fluid/liquid-fertilizer.png", shift = { -32, -32 }, scale = 1.2 }, - { - icon = "__core__/graphics/icons/technology/constants/constant-recipe-productivity.png", - icon_size = 128, - scale = 0.5, - shift = { 50, 50 }, - floating = true - } - }, - essential = false, - level = 1, - max_level = 5, - show_levels_info = true, - effects = { - { - type = "change-recipe-productivity", - recipe = "tree-astroponics", - change = 0.1 - } - }, - prerequisites = { "astroponics", "production-science-pack" }, - unit = { - count_formula = "L*250", - ingredients = { - { "wood-science-pack", 1 }, - { "production-science-pack", 1 }, - { "space-science-pack", 1 }, - }, - time = 60 +local infinite = settings.startup["lignumis-infinite-astroponics-productivity-research"].value + +local base_levels = { + type = "technology", + name = "astroponics-productivity", + icons = { + { icon = "__base__/graphics/icons/wood.png", icon_size = 64 }, + { icon = "__astroponics__/graphics/icons/fluid/liquid-fertilizer.png", shift = { -32, -32 }, scale = 1.2 }, + { + icon = "__core__/graphics/icons/technology/constants/constant-recipe-productivity.png", + icon_size = 128, + scale = 0.5, + shift = { 50, 50 }, + floating = true } + }, + essential = false, + level = 1, + max_level = 5, + show_levels_info = true, + effects = { + { + type = "change-recipe-productivity", + recipe = "tree-astroponics", + change = 0.1 + } + }, + prerequisites = { "astroponics", "production-science-pack" }, + unit = { + count_formula = "L*250", + ingredients = { + { "wood-science-pack", 1 }, + { "production-science-pack", 1 }, + { "space-science-pack", 1 }, + }, + time = 60 } -}) +} +data:extend({ base_levels }) + +if infinite then + local infinite_levels = table.deepcopy(base_levels) + infinite_levels.name = "astroponics-productivity-6" + infinite_levels.max_level = "infinite" + infinite_levels.unit.count_formula = "2^(L-6)*1500" + table.insert(infinite_levels.unit.ingredients, { "agricultural-science-pack", 1 }) + infinite_levels.prerequisites = { "astroponics-productivity", "agricultural-science-pack" } + data:extend({ infinite_levels }) +end diff --git a/lignumis/settings.lua b/lignumis/settings.lua index 2a8c02b..ddde9f0 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -90,6 +90,13 @@ data:extend({ default_value = false, order = "m" }, + { + type = "bool-setting", + name = "lignumis-infinite-astroponics-productivity-research", + setting_type = "startup", + default_value = false, + order = "n" + }, { type = "string-setting", name = "lignumis-second-planet", From 607ce9feb8dc75b8fcf47baff0d9ddea9d12b7d4 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 14 Sep 2025 13:48:30 +0200 Subject: [PATCH 14/41] 1.0.65 --- lignumis/changelog.txt | 8 ++++++++ lignumis/info.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 3772a2a..bdcde83 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,12 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.65 +Date: 14.09.2025 + Changes: + - Remove warning for Alien Biomes + - Add setting for infinite Astroponics productivity research + Bug Fixes: + - Fix more item weights +--------------------------------------------------------------------------------------------------- Version: 1.0.64 Date: 10.09.2025 Bug Fixes: diff --git a/lignumis/info.json b/lignumis/info.json index c62aa08..c18fe2b 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.64", + "version": "1.0.65", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 5c556646d9912445ff8a594c93c3d6b9c61c88d9 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 15 Sep 2025 18:13:53 +0200 Subject: [PATCH 15/41] Update Discord link --- lignumis/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lignumis/info.json b/lignumis/info.json index c18fe2b..95b1cea 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -4,7 +4,7 @@ "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", - "homepage": "https://discord.gg/5bevXf5W", + "homepage": "https://discord.gg/ufvFUJtVwk", "factorio_version": "2.0", "space_travel_required": true, "dependencies": [ From 2336ad4d44ff42bf3d479cc886dc1147668a67bc Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 17 Sep 2025 23:21:16 +0200 Subject: [PATCH 16/41] Buff Lignumis enemies --- lignumis/prototypes/content/enemies.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/enemies.lua b/lignumis/prototypes/content/enemies.lua index 76d76d8..eebe2f5 100644 --- a/lignumis/prototypes/content/enemies.lua +++ b/lignumis/prototypes/content/enemies.lua @@ -435,7 +435,7 @@ make_wriggler("lignumis-small-", 0.2, 10, 0.1, space_age_sounds.wriggler_pentapod.small ) -make_wriggler("lignumis-medium-", 0.4, 20, 0.2, +make_wriggler("lignumis-medium-", 0.5, 50, 1, { mask = fade(lerp_color(gleba_small_mask_tint, { 255, 200, 0, 255 }, 0.4), 0.2), body = grey_overlay(lerp_color(gleba_small_body_tint, { 255, 0, 0, 255 }, 0.4), 0.2) From aaea504cef0507ce9be5d2c89b3800ae7ff5a8f7 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 17 Sep 2025 23:21:28 +0200 Subject: [PATCH 17/41] More item weights --- lignumis/prototypes/content/wood-military.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/wood-military.lua b/lignumis/prototypes/content/wood-military.lua index 775245b..1dd775f 100644 --- a/lignumis/prototypes/content/wood-military.lua +++ b/lignumis/prototypes/content/wood-military.lua @@ -76,7 +76,8 @@ data:extend({ pick_sound = item_sounds.wood_inventory_pickup, drop_sound = item_sounds.wood_inventory_move, stack_size = 100, - weight = 10 * kg + weight = 5 * kg, + default_import_location = "lignumis" }, { type = "recipe", From 702e218a6217031de59de02e3e7ac82b7da3200f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 21 Sep 2025 08:42:29 +0200 Subject: [PATCH 18/41] Buff wood liquefaction recipe by 50% for electric assemblers --- lignumis/prototypes/content/wood-liquefaction.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lignumis/prototypes/content/wood-liquefaction.lua b/lignumis/prototypes/content/wood-liquefaction.lua index 8d5f7c6..092692e 100644 --- a/lignumis/prototypes/content/wood-liquefaction.lua +++ b/lignumis/prototypes/content/wood-liquefaction.lua @@ -65,10 +65,10 @@ data:extend({ }, ingredients = { { type = "item", name = "wood", amount = 1 }, - { type = "fluid", name = "steam", amount = 5 } + { type = "fluid", name = "steam", amount = 10 } }, results = { - { type = "fluid", name = "wood-pulp", amount = 10 } + { type = "fluid", name = "wood-pulp", amount = 15 } }, allow_productivity = true }, From a158a42cfe2ec91ac1c90d1edfab9c45eaf7142e Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 21 Sep 2025 09:13:01 +0200 Subject: [PATCH 19/41] Buff Cupriavidus Necator starter recipe --- lignumis/prototypes/content/mid-game-recipes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/mid-game-recipes.lua b/lignumis/prototypes/content/mid-game-recipes.lua index bf57604..6b3c7eb 100644 --- a/lignumis/prototypes/content/mid-game-recipes.lua +++ b/lignumis/prototypes/content/mid-game-recipes.lua @@ -14,7 +14,7 @@ data:extend({ { type = "fluid", name = "wood-pulp", amount = 100 }, { type = "fluid", name = "water", amount = 100 } }, - results = { { type = "item", name = "cupriavidus-necator", amount_min = 4, amount_max = 10, probability = 0.1 } }, + results = { { type = "item", name = "cupriavidus-necator", amount_min = 4, amount_max = 10, probability = 0.15 } }, result_is_always_fresh = true, icons = { { icon = Lignumis.graphics .. "icons/cupriavidus-necator-1.png" }, From 7ccd4d3a82a9f35432e47843dd4c1a740a543a41 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 21 Sep 2025 10:17:52 +0200 Subject: [PATCH 20/41] 1.0.66 --- lignumis/changelog.txt | 9 +++++++++ lignumis/info.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index bdcde83..7344ebd 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,13 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.66 +Date: 21.09.2025 + Changes: + - Buff medium wrigglers + - Buff wood liquefaction recipe by 50% for electric assemblers + - Buff Cupriavidus Necator starter recipe chance + Bug Fixes: + - Fix more item weights +--------------------------------------------------------------------------------------------------- Version: 1.0.65 Date: 14.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 95b1cea..1125009 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.65", + "version": "1.0.66", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 82ea8f38625b4ae2b0764f2f57bf3215e5d34161 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 21 Sep 2025 12:32:22 +0200 Subject: [PATCH 21/41] Reduce energy usage of Active noise cancelling tower --- lignumis/prototypes/content/active-noise-cancelling-tower.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/active-noise-cancelling-tower.lua b/lignumis/prototypes/content/active-noise-cancelling-tower.lua index a9e0d84..a4787cd 100644 --- a/lignumis/prototypes/content/active-noise-cancelling-tower.lua +++ b/lignumis/prototypes/content/active-noise-cancelling-tower.lua @@ -22,7 +22,7 @@ data:extend({ max_health = 150, crafting_speed = 1, crafting_categories = { "active-noise-cancelling" }, - energy_usage = "2MW", + energy_usage = "1MW", energy_source = { type = "electric", usage_priority = "secondary-input", From eb6b0d638462f5321ad8d84d0aa11e8ed069cd6c Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 24 Sep 2025 22:33:32 +0200 Subject: [PATCH 22/41] K2SO: Move K2 starting recipes to Nauvis technologies --- lignumis/prototypes/compatibility/k2so.lua | 40 +++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/lignumis/prototypes/compatibility/k2so.lua b/lignumis/prototypes/compatibility/k2so.lua index afd1849..88637a9 100644 --- a/lignumis/prototypes/compatibility/k2so.lua +++ b/lignumis/prototypes/compatibility/k2so.lua @@ -1,6 +1,44 @@ +local Technology = require("__cf-lib__/data/Technology") + if not mods["Krastorio2-spaced-out"] then return end data.raw.recipe["burner-inserter"].ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 1 }, { type = "item", name = "lumber", amount = 1 } -} \ No newline at end of file +} + +Technology:new("kr-automation-core"):addPrerequisite("iron-processing") + +local function lock_recipes(technology, recipes) + local tech = Technology:new(technology) + for _, recipe in pairs(recipes) do + tech:addRecipe(recipe) + data.raw.recipe[recipe].enabled = false + end +end + +lock_recipes("iron-processing", { + "iron-stick", + "kr-wind-turbine", + "kr-iron-beam", + "kr-inserter-parts" +}) + +lock_recipes("copper-processing", { + "copper-cable", + "small-electric-pole" +}) + +lock_recipes("planet-discovery-nauvis", { + "kr-rare-metals" +}) + +Technology:new("electronics"):removeRecipe("kr-electronic-circuit-wood") + +if settings.startup["kr-realistic-weapons"].value then + local pistol_attack = data.raw.gun["pistol"].attack_parameters + pistol_attack.ammo_categories = pistol_attack.ammo_categories or { pistol_attack.ammo_category } + pistol_attack.ammo_category = nil + table.insert(pistol_attack.ammo_categories, "bullet") + data.raw.recipe["firearm-magazine"].enabled = false +end \ No newline at end of file From e4fdd67bdf40e055355a5f53fa96ddfcfa4f8d5d Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 24 Sep 2025 23:17:53 +0200 Subject: [PATCH 23/41] Fix potential crash when escaping to Nauvis --- lignumis/scripts/to-nauvis.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lignumis/scripts/to-nauvis.lua b/lignumis/scripts/to-nauvis.lua index 5d3d432..0e8a553 100644 --- a/lignumis/scripts/to-nauvis.lua +++ b/lignumis/scripts/to-nauvis.lua @@ -73,10 +73,12 @@ local function transit_player(player_index) -- Give the player the content of the rocket if transition.rocket_entry.rocket_content then local inventory = player.get_main_inventory() - for _, item in pairs(transition.rocket_entry.rocket_content) do - inventory.insert(item) + if inventory then + for _, item in pairs(transition.rocket_entry.rocket_content) do + inventory.insert(item) + end + inventory.sort_and_merge() end - inventory.sort_and_merge() end table.remove(storage.rocket_silos, transition.rocket_entry_index) end From 443eee9e175e5efd837a1b281b08f286fa5d8b01 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 24 Sep 2025 23:19:09 +0200 Subject: [PATCH 24/41] 1.0.67 --- lignumis/changelog.txt | 8 ++++++++ lignumis/info.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 7344ebd..c7ba659 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,12 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.67 +Date: 24.09.2025 + Changes: + - Reduce energy usage of Active noise cancelling tower + - K2SO: Move K2 starting recipes to Nauvis technologies + Bug Fixes: + - Fix potential crash when escaping to Nauvis +--------------------------------------------------------------------------------------------------- Version: 1.0.66 Date: 21.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 1125009..2442272 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.66", + "version": "1.0.67", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 429e8a3a41498fcb1682594a0ecabbe90169d531 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 28 Sep 2025 11:35:25 +0200 Subject: [PATCH 25/41] Readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c5a282a..7c35857 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ Alternatives: [Burner Leech Fork](https://mods.factorio.com/mod/Burner-Leech-For - [Wooden Fulgora: Coralmium Agriculture](https://mods.factorio.com/mod/fulgora-coralmium-agriculture) - [Wooden Aquilo: Seabloom Algaculture](https://mods.factorio.com/mod/aquilo-seabloom-algaculture) +- [Wooden Cerys: Lunaponics](https://mods.factorio.com/mod/cerys-lunaponics) +- [Wooden Moshine: Solaponics](https://mods.factorio.com/mod/moshine-solaponics) #### [Any Planet Start](https://mods.factorio.com/mod/any-planet-start) From 74eb162d9a3da8f22b953bb823a5e7d2462dac7a Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 28 Sep 2025 11:36:00 +0200 Subject: [PATCH 26/41] Remove enemies from starting area when leaving Lignumis --- lignumis/scripts/to-nauvis.lua | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lignumis/scripts/to-nauvis.lua b/lignumis/scripts/to-nauvis.lua index 0e8a553..a3694fa 100644 --- a/lignumis/scripts/to-nauvis.lua +++ b/lignumis/scripts/to-nauvis.lua @@ -25,6 +25,21 @@ local function init_nauvis() end +-- Removes enemies around the crash site to not mess with the player start +local function clear_enemies() + local nauvis = game.planets[storage.target_planet].surface + local enemies = nauvis.find_entities_filtered({ + position = { 0, 0 }, + radius = 200, + force = "enemy" + }) + for _, enemy in pairs(enemies) do + enemy.destroy() + end + +end + + -- Teleport player to Nauvis and show welcome message local function teleport_player(player) local nauvis = game.planets[storage.target_planet].surface @@ -67,6 +82,7 @@ local function transit_player(player_index) end init_nauvis() + clear_enemies() teleport_player(player) init_freeplay() From 0e3c7c48193e8b5b826d5b3f8e6fdd18377ff480 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 28 Sep 2025 11:36:47 +0200 Subject: [PATCH 27/41] 1.0.68 --- lignumis/changelog.txt | 5 +++++ lignumis/info.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index c7ba659..ed7c599 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.68 +Date: 28.09.2025 + Changes: + - Remove enemies from starting area when leaving Lignumis +--------------------------------------------------------------------------------------------------- Version: 1.0.67 Date: 24.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 2442272..f979b9b 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.67", + "version": "1.0.68", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From ab24e7f496d6643dad0fa9e46774928e81bb2fe3 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 2 Oct 2025 22:10:47 +0200 Subject: [PATCH 28/41] Fix more item weights --- lignumis/prototypes/integrations/vanilla.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index c5097b8..63ff70f 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -364,4 +364,5 @@ set_default_weight("storage-tank", 50) set_default_weight("fast-transport-belt", 100) set_default_weight("fast-underground-belt", 50) set_default_weight("fast-splitter", 50) -set_default_weight("steel-plate", 400) \ No newline at end of file +set_default_weight("steel-plate", 400) +set_default_weight("steam-turbine", 10) \ No newline at end of file From a28be675caa4ba308eb893b434aeed4b9cbccd30 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 2 Oct 2025 22:11:18 +0200 Subject: [PATCH 29/41] Readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c35857..0f909da 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Alternatives: [Burner Leech Fork](https://mods.factorio.com/mod/Burner-Leech-For - [Wooden Aquilo: Seabloom Algaculture](https://mods.factorio.com/mod/aquilo-seabloom-algaculture) - [Wooden Cerys: Lunaponics](https://mods.factorio.com/mod/cerys-lunaponics) - [Wooden Moshine: Solaponics](https://mods.factorio.com/mod/moshine-solaponics) +- [Wooden Arig](https://mods.factorio.com/mod/wooden-arig) #### [Any Planet Start](https://mods.factorio.com/mod/any-planet-start) From 9d1d5d8cbd0a1b6fdcc1143bdbc022a19b039f46 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 2 Oct 2025 22:11:31 +0200 Subject: [PATCH 30/41] 1.0.69 --- lignumis/changelog.txt | 5 +++++ lignumis/info.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index ed7c599..392d22e 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.69 +Date: 02.10.2025 + Bug Fixes: + - Fix more item weights +--------------------------------------------------------------------------------------------------- Version: 1.0.68 Date: 28.09.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index f979b9b..2d31d17 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.68", + "version": "1.0.69", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 0d93d1989d091effc4cdb3ecf1703ba8e520afe2 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 7 Oct 2025 21:50:22 +0200 Subject: [PATCH 31/41] Any Planet Start: Prevent crashes --- .../compatibility/any-planet-start-final.lua | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/lignumis/prototypes/compatibility/any-planet-start-final.lua b/lignumis/prototypes/compatibility/any-planet-start-final.lua index c1bcb9c..61c38a7 100644 --- a/lignumis/prototypes/compatibility/any-planet-start-final.lua +++ b/lignumis/prototypes/compatibility/any-planet-start-final.lua @@ -4,29 +4,31 @@ if not mods["any-planet-start"] then return end local target_planet = settings.startup["aps-planet"].value -if target_planet == "none" or target_planet == "nauvis" then return end +if not target_planet or target_planet == "none" or target_planet == "nauvis" then return end Technology:new("tree-seeding"):setPrerequisites({ "wood-science-pack" }) -- Switch planet discovery technology to the new planet local planet_discovery = data.raw.technology["planet-discovery-" .. target_planet] or data.raw.technology["moon-discovery-" .. target_planet] -Technology:new(planet_discovery) - :assign({ - enabled = true, - hidden = false, - unit = { - count = 100, - ingredients = { - { "wood-science-pack", 1 }, - { "steam-science-pack", 1 } - }, - time = 30 - } - }) - :setPrerequisites({ "provisional-rocketry" }) -Technology:new("iron-processing"):replacePrerequisite("planet-discovery-nauvis", planet_discovery.name) -Technology:new("copper-processing"):replacePrerequisite("planet-discovery-nauvis", planet_discovery.name) +if planet_discovery then + Technology:new(planet_discovery) + :assign({ + enabled = true, + hidden = false, + unit = { + count = 100, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + }, + time = 30 + } + }) + :setPrerequisites({ "provisional-rocketry" }) + Technology:new("iron-processing"):replacePrerequisite("planet-discovery-nauvis", planet_discovery.name) + Technology:new("copper-processing"):replacePrerequisite("planet-discovery-nauvis", planet_discovery.name) +end -- Vulcanus From f76c7e65644f62b7e4fbe537c1b49db0011cb341 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 7 Oct 2025 21:50:58 +0200 Subject: [PATCH 32/41] 1.0.70 --- lignumis/changelog.txt | 5 +++++ lignumis/info.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 392d22e..59d7573 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.70 +Date: 07.10.2025 + Bug Fixes: + - Any Planet Start: Prevent crashes +--------------------------------------------------------------------------------------------------- Version: 1.0.69 Date: 02.10.2025 Bug Fixes: diff --git a/lignumis/info.json b/lignumis/info.json index 2d31d17..63764fc 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.69", + "version": "1.0.70", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From f8cfa91b70a5945e17564022b763f290376dd8e4 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 17 Oct 2025 10:22:04 +0200 Subject: [PATCH 33/41] Use 60 sec crafting time for active noise cancelling to visualise progress Reduce energy usage to 500kW --- lignumis/prototypes/content/active-noise-cancelling-tower.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lignumis/prototypes/content/active-noise-cancelling-tower.lua b/lignumis/prototypes/content/active-noise-cancelling-tower.lua index a4787cd..294e5f5 100644 --- a/lignumis/prototypes/content/active-noise-cancelling-tower.lua +++ b/lignumis/prototypes/content/active-noise-cancelling-tower.lua @@ -22,7 +22,7 @@ data:extend({ max_health = 150, crafting_speed = 1, crafting_categories = { "active-noise-cancelling" }, - energy_usage = "1MW", + energy_usage = "500kW", energy_source = { type = "electric", usage_priority = "secondary-input", @@ -113,7 +113,7 @@ data:extend({ name = "active-noise-cancelling", icons = { { icon = Lignumis.graphics .. "icons/active-noise-cancelling.png" } }, enabled = false, - energy_required = 1000000, + energy_required = 60, ingredients = {}, results = {}, category = "active-noise-cancelling", From 03f58c1493e729060ddc52cd22daa2a6f0013a27 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 20 Oct 2025 23:13:55 +0200 Subject: [PATCH 34/41] Move wriggler sources to assets mod --- .../icons/lignumis-medium-wriggler-corpse.png | Bin 8850 -> 0 bytes sources/icons/lignumis-medium-wriggler.png | Bin 9699 -> 0 bytes sources/icons/lignumis-small-wriggler-corpse.png | Bin 7055 -> 0 bytes sources/icons/lignumis-small-wriggler.png | Bin 7623 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sources/icons/lignumis-medium-wriggler-corpse.png delete mode 100644 sources/icons/lignumis-medium-wriggler.png delete mode 100644 sources/icons/lignumis-small-wriggler-corpse.png delete mode 100644 sources/icons/lignumis-small-wriggler.png diff --git a/sources/icons/lignumis-medium-wriggler-corpse.png b/sources/icons/lignumis-medium-wriggler-corpse.png deleted file mode 100644 index 4d78edf05b6d12a11904e699f3a88c37e67048e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8850 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 U%w4B_B>(^b07*qoM6N<$g1uyX$^ZZW diff --git a/sources/icons/lignumis-medium-wriggler.png b/sources/icons/lignumis-medium-wriggler.png deleted file mode 100644 index 55fd48b0bbe767696b77eddbc7f356ccf016c9ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9699 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%0D2Cmi2M7qB*P;a*ip6cylarHfozla48lk6 zwu$g{7w+BKEZ$ueNeM!oN2J$f0<@_R3Xnulsakn`ixZ9y#*Hde*RLq4tqoQpo@~g9`~VD(_3xKP z&uUXZ>?5_sq2(Nx&8=Lj?`Q@+c6K#}M^>O_cRVf3c7eN}cIfZODU&}6+&CPKrA0*9 zpZk~}e11!S+n3kk`Hqc<$&C~cPc~$t@XKe98gzHmm_NQCM5cZyZ?!);G?0w3)A^GA zfo0fU5k(7goZ%Fy87?FE_eJhfxbX>{p8bw%YPW`s6t9cE@$B}(cw#1DYAyHC$3pBl z;<(}DrF4vrtrT~6XVd%YG9k)yfoHT<@b4q|=SwLW5*A13Wo3nPXVQ9@e7t#EStPr@ z-7=}~Tq-WTR7wquEu{~(r9)KUL|cW;_WI*gin4P!NO_g`@e;gkzeDK2$#jgLFQbng zTSM11#vv@n<_nX6x!P0ZRitFg1pzWl>9G)%`@9QBPcOyTaG9j*P!YYOG8z7hxqr8e z&{QJ`c};iPTX1!wpl0+$5eE9!i#rY!NLD=^PV<+UUX~Usq3>t` zwR5{rlCqo+-&NM-@`C*nV7(O$fv)X`qUj4mdGyHOQaV4IPe-ow`jGA=OvT#pA7)MB=_Co+K^935!-c?Uh^ald;xj44-g*<&(GK@$q$caq}jEUc6lY z3x{})vGg-?>z$U6iNuSGiP@KjR6hOqk|zE-#Jt~F!9?EEYTG6(TrPQ?u8^IxIM_MI z>Fv`>)a^ln9^FfzXgTp!SSs64ZoShSz(exhzZS3upYrjy^PF#o_7IXy&nS01?3a@} zT_HQ3|Hf*YPhaPM|HUmQy03~!byqV{`JATUVcuBoo~M2E+}G$O`s{kZxA$&_&<#Zd z)myD`;L4R;1^Ea)L4U${bJ!#A#@K?Z`Eg3w{PZ%md}N-WD4HatudTDj`-MN8Oe5b7 l_(Zzv%Cf{c@;P_v@NdKHU5-s+`GWue002ovPDHLkV1j%TBK80P diff --git a/sources/icons/lignumis-small-wriggler-corpse.png b/sources/icons/lignumis-small-wriggler-corpse.png deleted file mode 100644 index 532e60dedf236cabb43d69b401aa97260f582323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7055 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 From 5cd457fbb80b645a70e8ffaa2a4c631e93556529 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 20 Oct 2025 23:14:10 +0200 Subject: [PATCH 35/41] readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f909da..7745fb7 100644 --- a/README.md +++ b/README.md @@ -263,4 +263,8 @@ _________________ [Larger Lamps](https://mods.factorio.com/mod/DeadlockLargerLamp) -- Burner lamp \ No newline at end of file +- Burner lamp + +Talandar + +- Planet graphics \ No newline at end of file From 50aa8a956dee78f5aac81658b44541739d8f1493 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 20 Oct 2025 23:17:37 +0200 Subject: [PATCH 36/41] 1.0.71 --- lignumis/changelog.txt | 6 ++++++ lignumis/info.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 59d7573..5e202df 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,10 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.71 +Date: 20.10.2025 + Changes: + - Use 60 sec crafting time for active noise cancelling to visualise progress + - Reduce energy usage of noise cancelling tower to 500kW +--------------------------------------------------------------------------------------------------- Version: 1.0.70 Date: 07.10.2025 Bug Fixes: diff --git a/lignumis/info.json b/lignumis/info.json index 63764fc..cb10f6f 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.70", + "version": "1.0.71", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 1e7800e4bb806ff59078bcc29dcf10b9c751d8de Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 20 Oct 2025 23:24:20 +0200 Subject: [PATCH 37/41] thumbnail --- lignumis/thumbnail.png | Bin 35246 -> 38681 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lignumis/thumbnail.png b/lignumis/thumbnail.png index 8c07e6f2bcb2e4ef8f34705c7ea6dc97ffe9c8fe..a7604a5cf6d22b40bb85382fcffcdbeaa24f05b8 100644 GIT binary patch delta 37506 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 mS>LR0);H^$8uc&G`u_o~CHy}Q$-Pqm0000 Date: Tue, 21 Oct 2025 00:16:14 +0200 Subject: [PATCH 38/41] Fix changelog --- lignumis/changelog.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 5e202df..6039303 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -2,18 +2,18 @@ Version: 1.0.71 Date: 20.10.2025 Changes: - - Use 60 sec crafting time for active noise cancelling to visualise progress - - Reduce energy usage of noise cancelling tower to 500kW + - Use 60 sec crafting time for active noise cancelling to visualise progress + - Reduce energy usage of noise cancelling tower to 500kW --------------------------------------------------------------------------------------------------- Version: 1.0.70 Date: 07.10.2025 Bug Fixes: - - Any Planet Start: Prevent crashes + - Any Planet Start: Prevent crashes --------------------------------------------------------------------------------------------------- Version: 1.0.69 Date: 02.10.2025 Bug Fixes: - - Fix more item weights + - Fix more item weights --------------------------------------------------------------------------------------------------- Version: 1.0.68 Date: 28.09.2025 From 9b268afba9468157add859986c8b19980106645d Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sat, 1 Nov 2025 17:14:01 +0100 Subject: [PATCH 39/41] Buff quality assembling --- lignumis/locale/en/strings.cfg | 1 + .../prototypes/content/quality-assembler.lua | 45 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index a9481d3..0ec7456 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -145,6 +145,7 @@ quality-assembler=Quality assembler aai-wood-loader=Wood loader basic-ore-crushing=Basic ore crushing astroponics-productivity=Astroponics productivity +experienced-quality-assembling=Experienced quality assembling [technology-description] wood-science-pack=Allows research of basic technologies based on wood products. diff --git a/lignumis/prototypes/content/quality-assembler.lua b/lignumis/prototypes/content/quality-assembler.lua index 480868c..0b94e6b 100644 --- a/lignumis/prototypes/content/quality-assembler.lua +++ b/lignumis/prototypes/content/quality-assembler.lua @@ -43,7 +43,7 @@ data:extend({ drop_sound = item_sounds.metal_small_inventory_move, stack_size = 50, fuel_category = "quality-catalyst", - fuel_value = "1MJ", + fuel_value = "2MJ", weight = 1000 / 50 * kg, }, { @@ -56,8 +56,8 @@ data:extend({ { type = "item", name = "tungsten-carbide", amount = 2 }, { type = "item", name = "supercapacitor", amount = 2 } }, - results = { { type = "item", name = "gold-quality-catalyst", amount = 2 } }, - allow_productivity = false, + results = { { type = "item", name = "gold-quality-catalyst", amount = 1 } }, + allow_productivity = true, allow_quality = false, enabled = false } @@ -76,8 +76,8 @@ QualityAssembler.EntityBuilder:new() energy_usage = "1MW", crafting_speed = 4, module_slots = 6, - allowed_effects = { "pollution", "quality" }, - effect_receiver = { base_effect = { quality = 2.5 } } + allowed_effects = { "consumption", "pollution", "quality" }, + effect_receiver = { base_effect = { quality = 3.5 } } }) QualityAssembler.ItemBuilder:new():apply() @@ -115,6 +115,41 @@ QualityAssembler.TechnologyBuilder:new() :additionalRecipes({ "gold-quality-catalyst" }) :apply() +data:extend({ + { + type = "technology", + name = "experienced-quality-assembling-1", + icons = { + { icon = "__quality__/graphics/technology/legendary-quality.png", icon_size = 256 }, + { icon = Lignumis.graphics .. "icons/quality-gold-catalyst.png", icon_size = 64, scale = 1, shift = { 50, 50 }, draw_background = true } + }, + level = 1, + max_level = 1, + show_levels_info = true, + effects = { + { type = "change-recipe-productivity", recipe = "gold-quality-catalyst", change = 0.25 } + }, + research_trigger = { type = "craft-item", item = "gold-quality-catalyst", count = 1000 }, + prerequisites = { "quality-assembler" } + }, + { + type = "technology", + name = "experienced-quality-assembling-2", + icons = { + { icon = "__quality__/graphics/technology/legendary-quality.png", icon_size = 256 }, + { icon = Lignumis.graphics .. "icons/quality-gold-catalyst.png", icon_size = 64, scale = 1, shift = { 50, 50 }, draw_background = true } + }, + level = 2, + max_level = 2, + show_levels_info = true, + effects = { + { type = "change-recipe-productivity", recipe = "gold-quality-catalyst", change = 0.5 } + }, + research_trigger = { type = "craft-item", item = "gold-quality-catalyst", count = 10000 }, + prerequisites = { "experienced-quality-assembling-1" } + } +}) + local function convert_category(name) local quality_name = name .. "-or-quality-assembling" data:extend({ From 290993776526dbeb24a2a15c0838a90e441df270 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sat, 1 Nov 2025 17:54:21 +0100 Subject: [PATCH 40/41] Move parent planet calculation to data-updates --- .../prototypes/content/lignumis/planet-updates.lua | 14 ++++++++++++++ lignumis/prototypes/content/lignumis/planet.lua | 9 ++------- lignumis/prototypes/content/updates.lua | 3 ++- 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 lignumis/prototypes/content/lignumis/planet-updates.lua diff --git a/lignumis/prototypes/content/lignumis/planet-updates.lua b/lignumis/prototypes/content/lignumis/planet-updates.lua new file mode 100644 index 0000000..c40262b --- /dev/null +++ b/lignumis/prototypes/content/lignumis/planet-updates.lua @@ -0,0 +1,14 @@ +local target_planet = settings.startup["lignumis-second-planet"].value or "nauvis" +if mods["any-planet-start"] then + target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or target_planet +end + +local lignumis = data.raw.planet["lignumis"] + +-- Set final solar power depending on parent planet +local solar_power = data.raw.planet[target_planet].surface_properties["solar-power"] or 100 +local solar_power_in_space = data.raw.planet[target_planet].solar_power_in_space or 300 +solar_power = solar_power * 1.2 +solar_power_in_space = solar_power_in_space * 1.2 +lignumis.solar_power_in_space = solar_power_in_space +lignumis.surface_properties["solar-power"] = solar_power \ No newline at end of file diff --git a/lignumis/prototypes/content/lignumis/planet.lua b/lignumis/prototypes/content/lignumis/planet.lua index f21ccd1..c4fd03c 100644 --- a/lignumis/prototypes/content/lignumis/planet.lua +++ b/lignumis/prototypes/content/lignumis/planet.lua @@ -21,11 +21,6 @@ local nauvis_lignumis = { } } -local solar_power = data.raw.planet[target_planet].surface_properties["solar-power"] or 100 -local solar_power_in_space = data.raw.planet[target_planet].solar_power_in_space or 300 -solar_power = solar_power * 1.2 -solar_power_in_space = solar_power_in_space * 1.2 - PlanetsLib:extend({ { type = "planet", @@ -53,7 +48,7 @@ PlanetsLib:extend({ map_seed_offset = 100, map_gen_settings = planet_map_gen, pollutant_type = "noise", - solar_power_in_space = solar_power_in_space, + solar_power_in_space = 300, draw_orbit = false, planet_procession_set = { arrival = { "default-b" }, @@ -63,7 +58,7 @@ PlanetsLib:extend({ ["day-night-cycle"] = 2 * minute, ["gravity"] = 4, ["pressure"] = 900, - ["solar-power"] = solar_power + ["solar-power"] = 100 }, asteroid_spawn_influence = 1, asteroid_spawn_definitions = asteroid_util.spawn_definitions(nauvis_lignumis, 0.9), diff --git a/lignumis/prototypes/content/updates.lua b/lignumis/prototypes/content/updates.lua index c6d2a3f..7087806 100644 --- a/lignumis/prototypes/content/updates.lua +++ b/lignumis/prototypes/content/updates.lua @@ -1 +1,2 @@ -require("fuel-category-updates") \ No newline at end of file +require("fuel-category-updates") +require("lignumis/planet-updates") \ No newline at end of file From 48f6b5594d8bc130f6c444020df4c10565bbb56f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sat, 1 Nov 2025 18:09:21 +0100 Subject: [PATCH 41/41] 1.0.72 --- lignumis/changelog.txt | 7 +++++++ lignumis/info.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index 6039303..c8d6233 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.72 +Date: 01.11.2025 + Bug Fixes: + - Move parent planet calculation to data-updates + Changes: + - Buff quality assembling +--------------------------------------------------------------------------------------------------- Version: 1.0.71 Date: 20.10.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index cb10f6f..7e5c940 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.71", + "version": "1.0.72", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend",