From ac2e341e419fb0ade05e0aa5847c955fe566e686 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 24 Jul 2025 00:37:42 +0200 Subject: [PATCH 01/60] Clean up translations --- lignumis/locale/de/strings.cfg | 1 - lignumis/locale/en/strings.cfg | 1 - lignumis/locale/pl/strings.cfg | 2 -- lignumis/locale/ru/strings.cfg | 1 - lignumis/locale/zh-CN/strings.cfg | 2 -- 5 files changed, 7 deletions(-) diff --git a/lignumis/locale/de/strings.cfg b/lignumis/locale/de/strings.cfg index cae205f..3c723c8 100644 --- a/lignumis/locale/de/strings.cfg +++ b/lignumis/locale/de/strings.cfg @@ -72,7 +72,6 @@ gold-plate=Goldplatte gold-cable=Goldkabel moist-stromatolite-remnant=Feuchte Stromatolithenreste steam-science-pack=Wissenschaftspaket für Dampf -destination-nauvis=Reise nach Nauvis lumber=Holzbrett basic-repair-pack=Grundlegendes Reparaturkit cupriavidus-necator=Cupriavidus necator diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 45d7b68..e2546ce 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -72,7 +72,6 @@ gold-plate=Gold plate gold-cable=Gold cable moist-stromatolite-remnant=Moist stromatolite remnant steam-science-pack=Steam science pack -destination-nauvis=Travel to Nauvis lumber=Lumber basic-repair-pack=Basic repair pack cupriavidus-necator=Cupriavidus necator diff --git a/lignumis/locale/pl/strings.cfg b/lignumis/locale/pl/strings.cfg index 63bbb52..4dfb484 100644 --- a/lignumis/locale/pl/strings.cfg +++ b/lignumis/locale/pl/strings.cfg @@ -66,7 +66,6 @@ gold-plate=Złota płytka gold-cable=Złoty kabel moist-stromatolite-remnant=Wilgotny fragment stromatolitu steam-science-pack=parowy pakiet naukowy -destination-nauvis=Podróż na Nauvis lumber=drewno basic-repair-pack=podstawowy zestaw naprawczy cupriavidus-necator=Cupriavidus necator @@ -78,7 +77,6 @@ wood-darts-magazine=drewniane rzutki (amunicja) [item-description] wooden-wall=Użyj drewnianych ścian, aby chronić swoją bazę przed miejscowymi i zredukować poziom hałasu. stone-wall=Lepsza ochrona akustyczna i fizyczna niż drewniana alternatywa.. -destination-nauvis=Włóż ten przedmiot do rakiety, aby podróżować na Nauvis. Pamiętaj, że nie wrócisz przez dłuższy czas.\n__REMARK_COLOR_BEGIN__BETA notice: Keep at most 40 item stack in your inventory before leaving as the current transition to Nauvis is a temporary implementation. Be sure to take material to jumpstart your iron, copper and wood production.__REMARK_COLOR_END__ [fluid-name] wood-pulp=Miazga drzewna diff --git a/lignumis/locale/ru/strings.cfg b/lignumis/locale/ru/strings.cfg index 77f5612..1d8c517 100644 --- a/lignumis/locale/ru/strings.cfg +++ b/lignumis/locale/ru/strings.cfg @@ -72,7 +72,6 @@ gold-plate=Золотая плита gold-cable=Золотой кабель moist-stromatolite-remnant=Влажный остаток строматолита steam-science-pack=Паровой исследовательский пакет -destination-nauvis=Путешествие на Наувис lumber=Пиломатериалы basic-repair-pack=Базовый ремонтный комплект cupriavidus-necator=Cupriavidus necator diff --git a/lignumis/locale/zh-CN/strings.cfg b/lignumis/locale/zh-CN/strings.cfg index 54a2640..999dfab 100644 --- a/lignumis/locale/zh-CN/strings.cfg +++ b/lignumis/locale/zh-CN/strings.cfg @@ -67,7 +67,6 @@ gold-plate=金板 gold-cable=金缆 moist-stromatolite-remnant=湿叠层石残余物 steam-science-pack=蒸汽科技包 -destination-nauvis=前往新地星 lumber=木料 basic-repair-pack=基础维修包 cupriavidus-necator=钩虫贪铜菌 @@ -78,7 +77,6 @@ wood-darts-magazine=木镖弹匣 [item-description] wooden-wall=使用木墙保护基地,防御土著的侵袭,同时降低噪音。 -destination-nauvis=将此物品放入火箭中,即可前往新地星。注意,你可能一段时间内回不来。\n__REMARK_COLOR_BEGIN__BETA 注意:背包中最多只能持有40堆叠的物品。目前前往新地星的方法是临时实现的。带一些资源有助于你在新地星上快速启动,生产铁板、铜板和木料。 [fluid-name] wood-pulp=木浆 From 1dbe1af301342e72958e6f5f9f36223928a15f6f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 04:13:09 +0200 Subject: [PATCH 02/60] Add setting for keeping the vanilla lab recipe https://mods.factorio.com/mod/lignumis/discussion/68725ff2ad76390859ee01a7 --- lignumis/locale/en/strings.cfg | 2 ++ lignumis/prototypes/integrations/vanilla.lua | 13 ++++++------- lignumis/settings.lua | 7 +++++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index e2546ce..ed9c1a2 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -181,6 +181,7 @@ lignumis-assembler-progression=Enable progressive assembler recipes lignumis-lumber-mill-more-recipes=Enable more recipes for the lumber mill lignumis-fulgora-wood=Add wood to Fulgora lignumis-early-robots=Even earlier personal robots +lignumis-vanilla-lab=Keep vanilla lab recipe [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. @@ -193,6 +194,7 @@ lignumis-assembler-progression=Assembling machine 1 will require burner assembli lignumis-lumber-mill-more-recipes=The lumber mill can also craft basic turrets, burner assemblers and burner inserters. Improves balancing wood usage when all progressive recipes are enabled and helps with marathon games. lignumis-fulgora-wood=This adds wooden gear wheels to scrap recycling as the main source of wood. Disable this is you have a different source of wood or import everything from other planets. lignumis-early-robots=Personal robots are moved from steam to wood science and are a tiny bit faster. +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 [autoplace-control-names] lignumis_enemy_base=Lignumis enemy bases diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index 7a25919..9b33ad5 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -65,7 +65,12 @@ stone_furnace_remnants.animation[1].filename = Lignumis.graphics .. "entity/ston -- Lab -Recipe:new("lab"):replaceIngredient("transport-belt", "wood-transport-belt") +if settings.startup["lignumis-vanilla-lab"].value then + Recipe:new("transport-belt"):unlockedByTechnology("iron-processing") +else + Recipe:new("lab"):replaceIngredient("transport-belt", "wood-transport-belt") + Recipe:new("transport-belt"):unlockedByTechnology("logistics") +end -- Gun turret @@ -185,12 +190,6 @@ end local automation_technology = data.raw.technology["automation"] automation_technology.ignore_tech_cost_multiplier = false -local logistics_technology = data.raw.technology["logistics"] -table.insert(logistics_technology.effects, { - type = "unlock-recipe", - recipe = "transport-belt" -}) - local landfill_technology = data.raw.technology["landfill"] landfill_technology.prerequisites = { "burner-automation" } landfill_technology.unit = { diff --git a/lignumis/settings.lua b/lignumis/settings.lua index 61a92cc..b8f74e1 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -69,6 +69,13 @@ data:extend({ default_value = false, order = "j" }, + { + type = "bool-setting", + name = "lignumis-vanilla-lab", + setting_type = "startup", + default_value = false, + order = "k" + }, { type = "string-setting", name = "lignumis-second-planet", From 75cbfe2083c425805e3fa558bd0f356fca3db52a Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 04:52:53 +0200 Subject: [PATCH 03/60] AAI Industry and Crushing industry: Fix burner crusher gold recipe https://mods.factorio.com/mod/lignumis/discussion/68a70d74b6418d6882e78783 --- lignumis/prototypes/compatibility/crushing-industry.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lignumis/prototypes/compatibility/crushing-industry.lua b/lignumis/prototypes/compatibility/crushing-industry.lua index f716c16..9a88705 100644 --- a/lignumis/prototypes/compatibility/crushing-industry.lua +++ b/lignumis/prototypes/compatibility/crushing-industry.lua @@ -106,3 +106,7 @@ gold_recipe:clone("burner-crusher-copper") }) :unlockedByTechnology("copper-processing") :apply() + +if mods["aai-industry"] then + gold_recipe:replaceIngredient("motor", "wooden-gear-wheel") +end \ No newline at end of file From 14880dbddeb423207978abb2319f96209bbfd1e9 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 07:08:54 +0200 Subject: [PATCH 04/60] Any planet start: Move code to data final fixes --- .../compatibility/any-planet-start-final.lua | 80 ++++++++++++++++++- .../compatibility/any-planet-start.lua | 80 ------------------- lignumis/prototypes/compatibility/updates.lua | 1 - 3 files changed, 79 insertions(+), 82 deletions(-) delete mode 100644 lignumis/prototypes/compatibility/any-planet-start.lua diff --git a/lignumis/prototypes/compatibility/any-planet-start-final.lua b/lignumis/prototypes/compatibility/any-planet-start-final.lua index 072dfbe..c1bcb9c 100644 --- a/lignumis/prototypes/compatibility/any-planet-start-final.lua +++ b/lignumis/prototypes/compatibility/any-planet-start-final.lua @@ -6,10 +6,88 @@ local target_planet = settings.startup["aps-planet"].value if 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 + 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) + + +-- Vulcanus +if target_planet == "vulcanus" then + Technology:new("automation"):addPrerequisite("iron-processing") + Technology:new("steel-processing"):addPrerequisite("iron-processing") + Technology:new("tungsten-carbide"):addPrerequisite("planet-discovery-vulcanus") + Technology:new("iron-processing").prototype.research_trigger.entity = "big-volcanic-rock" + Technology:new("copper-processing").prototype.research_trigger.entity = "big-volcanic-rock" + + data.raw.resource["tungsten-ore"].category = "basic-solid" + + if mods["bztitanium"] and mods["crushing-industry"] then + Technology:new("foundry"):addRecipe("crushed-titanium-ore") + data.raw.recipe["crushed-titanium-ore"].category = "basic-crushing" + end + + if mods["bzcarbon"] then + Technology:new("graphite-processing"):addPrerequisite("planet-discovery-vulcanus") + Technology:new("diamond-processing-2"):addPrerequisite("planet-discovery-vulcanus") + end + + if mods["bzsilicon"] then + Technology:new("silica-processing"):addPrerequisite("planet-discovery-vulcanus") + end + + if mods["bzzirconium"] then + Technology:new("zirconia-processing"):addPrerequisite("planet-discovery-vulcanus") + end +end + + +-- Fulgora +if target_planet == "fulgora" then + data.raw.recipe["medium-electric-pole"].enabled = false + Technology:new("recycling") + :addPrerequisite("planet-discovery-fulgora") + :addRecipe("medium-electric-pole") + Technology:new("iron-processing").prototype.research_trigger.entity = "scrap" + Technology:new("copper-processing").prototype.research_trigger.entity = "scrap" + + if mods["fulgora-coralmium-agriculture"] then + Technology:new("coralmium-recycling") + :addPrerequisite("recycling") + :removeRecipe("agricultural-tower") + end +end + + +-- Gleba +if target_planet == "gleba" then + Technology:new("landfill") + :setPrerequisites({ "burner-automation" }) + :assign({ + unit = { + count = 50, + ingredients = { { "wood-science-pack", 1 } }, + time = 15 + } + }) + .prototype.research_trigger = nil + Technology:new("iron-processing").prototype.research_trigger.entity = "iron-stromatolite" + Technology:new("copper-processing").prototype.research_trigger.entity = "copper-stromatolite" +end diff --git a/lignumis/prototypes/compatibility/any-planet-start.lua b/lignumis/prototypes/compatibility/any-planet-start.lua deleted file mode 100644 index ee57775..0000000 --- a/lignumis/prototypes/compatibility/any-planet-start.lua +++ /dev/null @@ -1,80 +0,0 @@ -local Technology = require("__cf-lib__/data/Technology") - -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 - -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) - - --- Vulcanus -if target_planet == "vulcanus" then - Technology:new("automation"):addPrerequisite("iron-processing") - Technology:new("steel-processing"):addPrerequisite("iron-processing") - Technology:new("tungsten-carbide"):addPrerequisite("planet-discovery-vulcanus") - Technology:new("iron-processing").prototype.research_trigger.entity = "big-volcanic-rock" - Technology:new("copper-processing").prototype.research_trigger.entity = "big-volcanic-rock" - - data.raw.resource["tungsten-ore"].category = "basic-solid" - - if mods["bztitanium"] and mods["crushing-industry"] then - Technology:new("foundry"):addRecipe("crushed-titanium-ore") - data.raw.recipe["crushed-titanium-ore"].category = "basic-crushing" - end -end - - --- Fulgora -if target_planet == "fulgora" then - data.raw.recipe["medium-electric-pole"].enabled = false - Technology:new("recycling") - :addPrerequisite("planet-discovery-fulgora") - :addRecipe("medium-electric-pole") - Technology:new("iron-processing").prototype.research_trigger.entity = "scrap" - Technology:new("copper-processing").prototype.research_trigger.entity = "scrap" - - if mods["fulgora-coralmium-agriculture"] then - Technology:new("coralmium-recycling") - :addPrerequisite("recycling") - :removeRecipe("agricultural-tower") - end -end - - --- Gleba -if target_planet == "gleba" then - Technology:new("landfill") - :setPrerequisites({ "burner-automation" }) - :assign({ - unit = { - count = 50, - ingredients = { { "wood-science-pack", 1 } }, - time = 15 - } - }) - .prototype.research_trigger = nil - Technology:new("iron-processing").prototype.research_trigger.entity = "iron-stromatolite" - Technology:new("copper-processing").prototype.research_trigger.entity = "copper-stromatolite" -end diff --git a/lignumis/prototypes/compatibility/updates.lua b/lignumis/prototypes/compatibility/updates.lua index 3bd7bd3..537ba73 100644 --- a/lignumis/prototypes/compatibility/updates.lua +++ b/lignumis/prototypes/compatibility/updates.lua @@ -1,4 +1,3 @@ require("aai-industry") require("gleba-reborn") -require("any-planet-start") require("crushing-industry-updates") \ No newline at end of file From 87bddaf7d3ed9c74ff7f133d18aa4d93b2888447 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 07:15:55 +0200 Subject: [PATCH 05/60] Add burner lamp --- README.md | 10 +- lignumis/locale/en/strings.cfg | 2 + lignumis/prototypes/content/burner-lamp.lua | 206 ++++++++++++++++++++ lignumis/prototypes/content/data.lua | 1 + 4 files changed, 214 insertions(+), 5 deletions(-) create mode 100644 lignumis/prototypes/content/burner-lamp.lua diff --git a/README.md b/README.md index aff4460..1583855 100644 --- a/README.md +++ b/README.md @@ -226,10 +226,6 @@ _________________ - [Mute icon](https://icons8.com/icon/9414/no-audio) -[_CodeGreen](https://mods.factorio.com/user/_CodeGreen) - -- Lignumis as starting planet inspired by [Any Planet Start](https://mods.factorio.com/mod/any-planet-start) - [Free Music Archive](https://freemusicarchive.org) - [The Owl: telescope](https://freemusicarchive.org/music/The_Owl/Fairy_Forest/the_owl_-_fairy_forest_-_04_the_owl_-_telescope/) (CC BY-NC-ND) @@ -245,4 +241,8 @@ _________________ [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. \ No newline at end of file +- [Wooden Logistics](https://mods.factorio.com/mod/wood-logistics): Code for AAI Loader. + +[Larger Lamps](https://mods.factorio.com/mod/DeadlockLargerLamp) + +- Burner lamp \ No newline at end of file diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index ed9c1a2..2cbe7db 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -49,6 +49,7 @@ wood-lane-splitter=Wood lane splitter lignumis-spawner-small=Lignumis egg raft lignumis-small-wriggler-pentapod=Lignumis small wiggler pentapod lignumis-medium-wriggler-pentapod=Lignumis medium wiggler pentapod +burner-lamp=Burner lamp [entity-description] lumber-mill=Advanced machine to process wood. @@ -107,6 +108,7 @@ active-noise-cancelling=Active noise cancelling casting-gold=Casting gold gold-ore-crushing=Gold ore crushing processing-unit-gold=Processing unit (gold) +burner-lamp-burning=Generating light [recipe-description] moist-stromatolite-remnant-desiccation-without-steam=Used for balancing the production of steam. diff --git a/lignumis/prototypes/content/burner-lamp.lua b/lignumis/prototypes/content/burner-lamp.lua new file mode 100644 index 0000000..4e7f414 --- /dev/null +++ b/lignumis/prototypes/content/burner-lamp.lua @@ -0,0 +1,206 @@ +local Technology = require("__cf-lib__/data/Technology") + +local gfx = Lignumis.graphics .. "entity/burner-lamp/" + +data:extend({ + { + type = "recipe-category", + name = "lamp-burning" + }, + { + name = "burner-lamp", + type = "assembling-machine", + minable = { + mining_time = 2.0, + result = "burner-lamp", + }, + icon = Lignumis.graphics .. "icons/burner-lamp.png", + icon_size = 64, + icon_mipmaps = 4, + fast_replaceable_group = "large-lamp", + --next_upgrade = "lamp", + collision_mask = { layers = { object = true, water_tile = true, meltable = true, player = true } }, + crafting_speed = 1, + crafting_categories = { "lamp-burning" }, + fixed_recipe = "burner-lamp-burning", + dying_explosion = "medium-explosion", + show_recipe_icon = false, + show_recipe_icon_on_map = false, + source_inventory_size = 1, + result_inventory_size = 1, + energy_source = { + emissions_per_minute = { pollution = 0.02 }, + type = "burner", + fuel_inventory_size = 1, + burnt_inventory_size = 1, + fuel_categories = { "chemical" }, + light_flicker = { + color = { 0, 0, 0, 0 }, -- to remove default burner glow + }, + render_no_power_icon = false, + }, + energy_usage = "9.6kW", + max_health = 100, + resistances = { + { + type = "fire", + percent = 95 + }, + }, + corpse = "small-remnants", + flags = { "placeable-player", "placeable-neutral", "player-creation" }, + collision_box = { { -0.15, -0.15 }, { 0.15, 0.15 } }, + selection_box = { { -0.5, -0.5 }, { 0.5, 0.5 } }, + graphics_set = { + animation = { + layers = { + { + draw_as_glow = false, + draw_as_light = false, + draw_as_shadow = false, + filename = gfx .. "burner-lamp-base.png", + height = 128, + priority = "high", + scale = 0.5, + shift = { 0, 0 }, + width = 128, + x = 0, + y = 0 + }, + { + draw_as_glow = false, + draw_as_light = false, + draw_as_shadow = true, + filename = gfx .. "burner-lamp-shadow.png", + height = 128, + priority = "high", + scale = 0.5, + shift = { 0, 0 }, + width = 128, + x = 0, + y = 0 + } + } + }, + working_visualisations = { + { + animation = { + animation_speed = 1, + blend_mode = "additive-soft", + draw_as_glow = true, + draw_as_light = false, + draw_as_shadow = false, + filename = gfx .. "burner-lamp-working.png", + frame_count = 30, + height = 128, + line_length = 6, + priority = "high", + scale = 0.5, + shift = { 0, 0 }, + width = 128, + x = 0, + y = 0 + }, + light = { + color = { 1.0, 0.82, 0.5 }, + intensity = 0.4, + size = 40, + type = "oriented", + picture = { + filename = gfx .. "light.png", + width = 256, + height = 256, + scale = 0.125 + }, + }, + } + } + }, + working_sound = { + sound = { + filename = "__base__/sound/furnace.ogg", + volume = 1.0 + } + }, + open_sound = { + filename = "__base__/sound/machine-open.ogg", + volume = 0.75 + }, + close_sound = { + filename = "__base__/sound/machine-close.ogg", + volume = 0.75 + }, + mined_sound = { + filename = "__base__/sound/deconstruct-bricks.ogg" + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact.ogg", + volume = 0.65 + }, + squeak_behaviour = false, + }, + { + type = "item", + name = "burner-lamp", + icon = Lignumis.graphics .. "icons/burner-lamp.png", + icon_size = 64, + icon_mipmaps = 4, + 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 + }, + { + name = "burner-lamp", + type = "recipe", + enabled = true, + ingredients = { + { type = "item", name = "gold-plate", amount = 4 }, + { type = "item", name = "stone-brick", amount = 2 }, + }, + results = { + { type = "item", name = "burner-lamp", amount = 1 } + }, + subgroup = "circuit-network", -- Copper lamp under circuit-network + order = "a[lamp]-b[copper-lamp]", -- Place after large lamp + category = "crafting" -- Category for crafting + }, + { + name = "burner-lamp-copper", + type = "recipe", + enabled = false, + localised_name = { "entity-name.burner-lamp" }, + icons = { + { icon = Lignumis.graphics .. "icons/burner-lamp.png" }, + { icon = "__base__/graphics/icons/copper-plate.png", scale = 0.25, shift = { 8, 8 } } + }, + ingredients = { + { type = "item", name = "copper-plate", amount = 4 }, + { type = "item", name = "stone-brick", amount = 2 }, + }, + results = { + { type = "item", name = "burner-lamp", amount = 1 } + }, + subgroup = "circuit-network", -- Copper lamp under circuit-network + order = "a[lamp]-b[copper-lamp]", -- Place after large lamp + category = "crafting" -- Category for crafting + }, + -- Define the hidden burning recipe for the copper lamp + { + name = "burner-lamp-burning", -- Make sure this name matches the recipe you are referencing + type = "recipe", + enabled = true, + hidden = true, + hide_from_stats = true, + icon = Lignumis.graphics .. "icons/burner-lamp.png", -- Icon path for the recipe + icon_size = 64, + icon_mipmaps = 4, + category = "lamp-burning", -- Custom category for lamp burning + ingredients = {}, + results = {}, + subgroup = "other", -- Optional: Adjust this if needed + energy_required = 25000 / 60, -- Represents one "Factorio day" + } +}) + +Technology:new("copper-processing"):addRecipe("burner-lamp-copper") \ No newline at end of file diff --git a/lignumis/prototypes/content/data.lua b/lignumis/prototypes/content/data.lua index d3867e7..9dca318 100644 --- a/lignumis/prototypes/content/data.lua +++ b/lignumis/prototypes/content/data.lua @@ -8,6 +8,7 @@ require("wood-lab") require("wood-science") require("burner-agricultural-tower") require("burner-assembling-machine") +require("burner-lamp") require("burner-long-handed-inserter") require("lumber-mill") require("gold") From a17f99a3c6e1321542281ffd5f16075338266868 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 08:23:40 +0200 Subject: [PATCH 06/60] Add compatibility for K2SO --- lignumis/info.json | 1 + lignumis/prototypes/compatibility/k2so.lua | 6 ++++++ lignumis/prototypes/compatibility/updates.lua | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 lignumis/prototypes/compatibility/k2so.lua diff --git a/lignumis/info.json b/lignumis/info.json index 0b50c8e..d183d42 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -33,6 +33,7 @@ "?fulgora-coralmium-agriculture", "?gleba-reborn", "?hot-metals >= 1.1.0", + "?Krastorio2-spaced-out", "?lane-splitters", "?metal-and-stars", "(?)secretas", diff --git a/lignumis/prototypes/compatibility/k2so.lua b/lignumis/prototypes/compatibility/k2so.lua new file mode 100644 index 0000000..afd1849 --- /dev/null +++ b/lignumis/prototypes/compatibility/k2so.lua @@ -0,0 +1,6 @@ +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 diff --git a/lignumis/prototypes/compatibility/updates.lua b/lignumis/prototypes/compatibility/updates.lua index 537ba73..56e0bbe 100644 --- a/lignumis/prototypes/compatibility/updates.lua +++ b/lignumis/prototypes/compatibility/updates.lua @@ -1,3 +1,4 @@ require("aai-industry") require("gleba-reborn") -require("crushing-industry-updates") \ No newline at end of file +require("crushing-industry-updates") +require("k2so") \ No newline at end of file From 18475a7c439f76706de7aae6f11d200db23df3b2 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 11:00:34 +0200 Subject: [PATCH 07/60] 1.0.58 --- lignumis/changelog.txt | 10 ++++++++++ lignumis/info.json | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index c87ddd9..ce55c98 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,14 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.58 +Date: 22.08.2025 + Changes: + - Add setting for keeping the vanilla lab recipe (https://mods.factorio.com/mod/lignumis/discussion/68725ff2ad76390859ee01a7) + - Add burner lamp + - Add compatibility for "Krastorio 2 Spaced Out" + Bug Fixes: + - AAI Industry and Crushing industry: Fix burner crusher gold recipe (https://mods.factorio.com/mod/lignumis/discussion/68a70d74b6418d6882e78783) + - Any planet start: Move code to data final fixes +--------------------------------------------------------------------------------------------------- Version: 1.0.57 Date: 11.07.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index d183d42..acf419b 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.57", + "version": "1.0.58", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From dd22ecb9548f9a296dd312fdb6744f5073ec4514 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 16:07:21 +0200 Subject: [PATCH 08/60] Reduce mining time of the burner lamp --- lignumis/prototypes/content/burner-lamp.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lignumis/prototypes/content/burner-lamp.lua b/lignumis/prototypes/content/burner-lamp.lua index 4e7f414..57add6e 100644 --- a/lignumis/prototypes/content/burner-lamp.lua +++ b/lignumis/prototypes/content/burner-lamp.lua @@ -11,19 +11,17 @@ data:extend({ name = "burner-lamp", type = "assembling-machine", minable = { - mining_time = 2.0, + mining_time = 0.1, result = "burner-lamp", }, icon = Lignumis.graphics .. "icons/burner-lamp.png", icon_size = 64, icon_mipmaps = 4, - fast_replaceable_group = "large-lamp", - --next_upgrade = "lamp", collision_mask = { layers = { object = true, water_tile = true, meltable = true, player = true } }, crafting_speed = 1, crafting_categories = { "lamp-burning" }, fixed_recipe = "burner-lamp-burning", - dying_explosion = "medium-explosion", + dying_explosion = "lamp-explosion", show_recipe_icon = false, show_recipe_icon_on_map = false, source_inventory_size = 1, From a78e3a5886874a0749ecce8be0ae9fe67964bc18 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 16:28:27 +0200 Subject: [PATCH 09/60] Fix possible crash when transitioning to Nauvis --- lignumis/prototypes/content/wooden-rocket-silo.lua | 13 ++++++++++++- lignumis/scripts/to-nauvis.lua | 6 ++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lignumis/prototypes/content/wooden-rocket-silo.lua b/lignumis/prototypes/content/wooden-rocket-silo.lua index 4bfb828..9cfa7c3 100644 --- a/lignumis/prototypes/content/wooden-rocket-silo.lua +++ b/lignumis/prototypes/content/wooden-rocket-silo.lua @@ -115,7 +115,18 @@ local silo_ready = { inventory_type = "normal", quality_affects_inventory_size = false, placeable_by = { item = "provisional-rocket-silo", count = 1 }, - health = 1000, + max_health = 1000, + resistances = { + { + type = "fire", + percent = 100 + }, + { + type = "explosion", + percent = 100 + } + }, + create_ghost_on_death = false, surface_conditions = { { property = "pressure", diff --git a/lignumis/scripts/to-nauvis.lua b/lignumis/scripts/to-nauvis.lua index 27cffdd..5d3d432 100644 --- a/lignumis/scripts/to-nauvis.lua +++ b/lignumis/scripts/to-nauvis.lua @@ -61,8 +61,10 @@ local function transit_player(player_index) local player = game.get_player(player_index) local transition = storage.transitions[player_index] - transition.rocket_entry.cargo_pod.set_passenger(nil) - transition.rocket_entry.cargo_pod.destroy() + if transition.rocket_entry.cargo_pod then + transition.rocket_entry.cargo_pod.set_passenger(nil) + transition.rocket_entry.cargo_pod.destroy() + end init_nauvis() teleport_player(player) From 8415b722d69245408cdd956871f53d3976e0d817 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 22 Aug 2025 16:29:52 +0200 Subject: [PATCH 10/60] 1.0.59 --- 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 ce55c98..2f0c3db 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.59 +Date: 22.08.2025 + Changes: + - Reduce mining time of the burner lamp + Bug Fixes: + - Fix possible crash when transitioning to Nauvis +--------------------------------------------------------------------------------------------------- Version: 1.0.58 Date: 22.08.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index acf419b..1f7fb8e 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.58", + "version": "1.0.59", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From 731deb2a625112decd2b0293f1202e1738c5c5c1 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 24 Aug 2025 18:59:01 +0200 Subject: [PATCH 11/60] Mark RSO as incompatible --- lignumis/info.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lignumis/info.json b/lignumis/info.json index 1f7fb8e..4148764 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -44,6 +44,7 @@ "!early-agriculture", "!planet-picker", "!wood-logistics", - "!wood-universe-modpack" + "!wood-universe-modpack", + "!rso-mod" ] } \ No newline at end of file From 6ea9a3f8e57ec11ba9e6d99ec9207ad2076ba01f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sun, 24 Aug 2025 19:05:00 +0200 Subject: [PATCH 12/60] AAI Loaders: Don't load code when mode is set to graphics only --- lignumis/prototypes/compatibility/aai-loaders-final.lua | 1 + lignumis/prototypes/compatibility/aai-loaders.lua | 1 + 2 files changed, 2 insertions(+) diff --git a/lignumis/prototypes/compatibility/aai-loaders-final.lua b/lignumis/prototypes/compatibility/aai-loaders-final.lua index e44d68d..3953a8b 100644 --- a/lignumis/prototypes/compatibility/aai-loaders-final.lua +++ b/lignumis/prototypes/compatibility/aai-loaders-final.lua @@ -1,6 +1,7 @@ local Recipe = require("__cf-lib__/data/Recipe") if not mods["aai-loaders"] then return end +if settings.startup["aai-loaders-mode"].value == "graphics-only" then return end local recipe = Recipe:new("aai-loader") diff --git a/lignumis/prototypes/compatibility/aai-loaders.lua b/lignumis/prototypes/compatibility/aai-loaders.lua index a3ba668..2137280 100644 --- a/lignumis/prototypes/compatibility/aai-loaders.lua +++ b/lignumis/prototypes/compatibility/aai-loaders.lua @@ -2,6 +2,7 @@ local Recipe = require("__cf-lib__/data/Recipe") local Technology = require("__cf-lib__/data/Technology") if not mods["aai-loaders"] then return end +if settings.startup["aai-loaders-mode"].value == "graphics-only" then return end local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value From 4dd8fda3ce287867f6cd72f38ab4825d9aa12fbe Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 25 Aug 2025 23:04:01 +0200 Subject: [PATCH 13/60] Fix item weights --- .../content/steam-assembling-machine.lua | 3 ++- lignumis/prototypes/integrations/vanilla.lua | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lignumis/prototypes/content/steam-assembling-machine.lua b/lignumis/prototypes/content/steam-assembling-machine.lua index 2a6871e..ed85a59 100644 --- a/lignumis/prototypes/content/steam-assembling-machine.lua +++ b/lignumis/prototypes/content/steam-assembling-machine.lua @@ -76,7 +76,8 @@ data:extend({ pick_sound = item_sounds.mechanical_inventory_pickup, drop_sound = item_sounds.mechanical_inventory_move, place_result = "steam-assembling-machine", - stack_size = 50 + stack_size = 50, + weight = 20 * kg }, { type = "recipe", diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index 9b33ad5..16b0477 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -334,4 +334,16 @@ if settings.startup["lignumis-fulgora-wood"].value then if recycler.result_inventory_size < recycling_result_count then recycler.result_inventory_size = recycling_result_count end -end \ No newline at end of file +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 +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 From a13a3bee15de8cca291de8c1e8bd0368bba1325e Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 25 Aug 2025 23:05:20 +0200 Subject: [PATCH 14/60] 1.0.60 --- 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 2f0c3db..e020342 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,12 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.60 +Date: 25.08.2025 + Changes: + - Mark RSO as incompatible + Bug Fixes: + - AAI Loaders: Don't load code when mode is set to graphics only + - Fix item weights +--------------------------------------------------------------------------------------------------- Version: 1.0.59 Date: 22.08.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 4148764..1baf964 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.59", + "version": "1.0.60", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From f61b41fd07c9a6863593bbc5796c4817836bc28a Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 26 Aug 2025 15:26:42 +0200 Subject: [PATCH 15/60] Readme --- README.md | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1583855..d851ff8 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,41 @@ The duration of the stay on Lignumis will be rather short. The impact of the lat [![Factorio Multiplayer: Planetary Pioneers - Space Age - E01 - 02/06/25 - Laurence Streams](https://i.ytimg.com/vi/OMDpDhZdTmU/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCVQhrlcmwsZbzRDNQo8vgMKtUHaA)](https://www.youtube.com/live/OMDpDhZdTmU?feature=shared&t=290&list=PLALTzJaRcgW97ItZgtZvkqFBcdVjKNVHz&index=2) [![Factorio Multiplayer: Planetary Pioneers - Space Age - E01.5 - 02/06/25 - Laurence Streams](https://i.ytimg.com/vi/d4n1H6Z4KPc/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLA5TNZBTs7GpUFdVB1CG1-hzYw0tw)](https://www.youtube.com/live/d4n1H6Z4KPc?list=PLALTzJaRcgW97ItZgtZvkqFBcdVjKNVHz&index=3) [![Factorio Multiplayer: Planetary Pioneers - Space Age - E02 - 09/06/25 - Laurence Streams](https://i.ytimg.com/vi/guWhjqPrVN0/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAP1kKquScBtrf5w41Eaarp-y5UPA)](https://www.youtube.com/live/guWhjqPrVN0?list=PLALTzJaRcgW97ItZgtZvkqFBcdVjKNVHz&index=4&t=362) _________________ +## Planet perks + +#### Early bots + +Unlock early personal bots with steam science even before reaching Nauvis. Start with 10 construction bots and upgrade to up to 30 with the heavy armor unlocked with automation science. + +There is even a setting to move personal bots to wood science and buff them a bit to get them basically at game start. + +#### New belt tier: Wooden belts + +This new low-fidelity tier of belts is incredibly cheap and can be used for those low throughput applications. + +#### Exported buildings: Lumber mill and burner agricultural tower + +These burner buildings help with wood production on other planets and the lumber mill grants a 50% productivity bonus for wood-based items. + +#### Exported products: Processing units and low density structures + +These items are especially cheap to craft on Lignumis and can be exported to other planets that could use the resources better for other things. + +#### Alternative recipes + +The Lignumis plastic recipe can be used on other planets just with wood and water. Bring some peat and gold stromatolite seeds for the starter culture. Improve it even more by using the biochamber once unlocked. + +Nutrients from wood pulp can be used on all planets for easy nutrients production. + +#### Increased astroids + +Lignumis orbit has increased amounts of astroids that also have an even distribution. That makes it ideal to jumpstart new space ships and for production platforms. + +#### Late game technology: Quality assembler + +Craft selected machines and items with a quality bonus of 25% by providing a special gold quality catalyst. +_________________ + ## Wood production Sources of wood per planet. @@ -79,26 +114,6 @@ For even more complexity after Lignumis. They currently don't change anything on _________________ -## Compatibility with other planet mods - -The following planet mods are tested for (at least technical) compatibility. The ones marked with * have been successfully beaten by me. - -- [Castra](https://mods.factorio.com/mod/castra) -- [Cerys](https://mods.factorio.com/mod/Cerys-Moon-of-Fulgora) + [Wooden Cerys: Lunaponics](https://mods.factorio.com/mod/cerys-lunaponics) -- [Corrundum](https://mods.factorio.com/mod/corrundum) -- [Cubium](https://mods.factorio.com/mod/cubium) -- [Dea Dia System](https://mods.factorio.com/mod/dea-dia-system) -- [Janus](https://mods.factorio.com/mod/janus) -- [Maraxsis](https://mods.factorio.com/mod/maraxsis) -- [Moshine](https://mods.factorio.com/mod/Moshine)* + [Wooden Moshine: Solaponics](https://mods.factorio.com/mod/moshine-solaponics) -- [Muluna](https://mods.factorio.com/mod/planet-muluna)* -- [Terra Palus](https://mods.factorio.com/mod/terrapalus) -- [Secretas & Frozeta](https://mods.factorio.com/mod/secretas) - -This list is probably not up-to-date. In doubt, just try it out. - -_________________ - ## Problematic / incompatible mods * The combination of AAI Industry and Any planet start is currently not supported. From 8b8099ef0681f65baa5f1e70ada66dd0524455c1 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 26 Aug 2025 15:54:07 +0200 Subject: [PATCH 16/60] Increase generation of peat --- lignumis/prototypes/content/lignumis/mapgen.lua | 2 +- lignumis/prototypes/content/peat.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lignumis/prototypes/content/lignumis/mapgen.lua b/lignumis/prototypes/content/lignumis/mapgen.lua index 570d274..f0cd9a2 100644 --- a/lignumis/prototypes/content/lignumis/mapgen.lua +++ b/lignumis/prototypes/content/lignumis/mapgen.lua @@ -13,7 +13,7 @@ return { }, autoplace_controls = { ["lignumis_gold"] = { richness = 1, frequency = 1, size = 1 }, - ["lignumis_peat"] = { richness = 1/2, frequency = 6, size = 2 }, + ["lignumis_peat"] = { richness = 1/6, frequency = 8, size = 2 }, ["stone"] = { richness = 1/6, frequency = 4, size = 4 }, ["water"] = {}, ["trees"] = { richness = 3, frequency = 4, size = 3 }, diff --git a/lignumis/prototypes/content/peat.lua b/lignumis/prototypes/content/peat.lua index e96f8d3..3b29ffb 100644 --- a/lignumis/prototypes/content/peat.lua +++ b/lignumis/prototypes/content/peat.lua @@ -46,7 +46,7 @@ data:extend({ autoplace = resource_autoplace.resource_autoplace_settings { name = "lignumis_peat", order = "b", - base_density = 2, + base_density = 8, base_spots_per_km2 = 5, has_starting_area_placement = true, regular_rq_factor_multiplier = 1, From c40fcdd326033ac226222e78461176b7059cf621 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Thu, 28 Aug 2025 20:11:31 +0200 Subject: [PATCH 17/60] Always show moist stromatolite remnant in filter UI --- lignumis/prototypes/content/gold/stromatolite.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/gold/stromatolite.lua b/lignumis/prototypes/content/gold/stromatolite.lua index d69218c..4e46c2d 100644 --- a/lignumis/prototypes/content/gold/stromatolite.lua +++ b/lignumis/prototypes/content/gold/stromatolite.lua @@ -230,7 +230,8 @@ local remnant = { drop_sound = space_age_item_sounds.agriculture_inventory_move, stack_size = 50, default_import_location = "lignumis", - weight = 1 * kg + weight = 1 * kg, + flags = { "always-show" } } local desiccation_recipe = { From d99e06166ff8c18158e4956c7cf3aac1575e6e34 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 29 Aug 2025 21:58:19 +0200 Subject: [PATCH 18/60] Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d851ff8..fd55804 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![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) +[![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) From 8cb2417f6d17d7bb5c0719197f1d62f6db895633 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 29 Aug 2025 21:58:42 +0200 Subject: [PATCH 19/60] Add setting for double provisional rocket captacity --- lignumis/locale/en/strings.cfg | 4 +++- lignumis/prototypes/content/wooden-rocket-silo.lua | 2 +- lignumis/settings.lua | 7 +++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 2cbe7db..411e017 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -184,6 +184,7 @@ lignumis-lumber-mill-more-recipes=Enable more recipes for the lumber mill lignumis-fulgora-wood=Add wood to Fulgora lignumis-early-robots=Even earlier personal robots lignumis-vanilla-lab=Keep vanilla lab recipe +lignumis-double-rocket=Double provisional rocket cargo capacity [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. @@ -196,7 +197,8 @@ lignumis-assembler-progression=Assembling machine 1 will require burner assembli lignumis-lumber-mill-more-recipes=The lumber mill can also craft basic turrets, burner assemblers and burner inserters. Improves balancing wood usage when all progressive recipes are enabled and helps with marathon games. lignumis-fulgora-wood=This adds wooden gear wheels to scrap recycling as the main source of wood. Disable this is you have a different source of wood or import everything from other planets. lignumis-early-robots=Personal robots are moved from steam to wood science and are a tiny bit faster. -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-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. [autoplace-control-names] lignumis_enemy_base=Lignumis enemy bases diff --git a/lignumis/prototypes/content/wooden-rocket-silo.lua b/lignumis/prototypes/content/wooden-rocket-silo.lua index 9cfa7c3..f4ddba2 100644 --- a/lignumis/prototypes/content/wooden-rocket-silo.lua +++ b/lignumis/prototypes/content/wooden-rocket-silo.lua @@ -111,7 +111,7 @@ local silo_ready = { icon = silo.icon, minable = { mining_time = 1, result = nil }, deconstruction_alternative = "provisional-rocket-silo", - inventory_size = 40, + inventory_size = settings.startup["lignumis-double-rocket"].value and 80 or 40, inventory_type = "normal", quality_affects_inventory_size = false, placeable_by = { item = "provisional-rocket-silo", count = 1 }, diff --git a/lignumis/settings.lua b/lignumis/settings.lua index b8f74e1..e64c71a 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -76,6 +76,13 @@ data:extend({ default_value = false, order = "k" }, + { + type = "bool-setting", + name = "lignumis-double-rocket", + setting_type = "startup", + default_value = false, + order = "l" + }, { type = "string-setting", name = "lignumis-second-planet", From a146b6822058d6ae29b26a52a3c90f954028f386 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 29 Aug 2025 22:26:22 +0200 Subject: [PATCH 20/60] Add setting for spoiling of science packs --- lignumis/locale/en/strings.cfg | 6 +++ lignumis/prototypes/content/steam-science.lua | 44 ++++++++++++++++++- lignumis/prototypes/content/wood-science.lua | 6 ++- lignumis/settings.lua | 7 +++ 4 files changed, 61 insertions(+), 2 deletions(-) diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 411e017..09877f7 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -82,11 +82,13 @@ wood-armor=Wood armor wood-darts-magazine=Wood darts magazine basic-circuit-board=Basic circuit board crushed-gold-ore=Crushed gold ore +steam-science-pack-spoiled=Science flask with water [item-description] wooden-wall=Use wooden walls to protect your base from the locals and to reduce noise levels. stone-wall=Better acoustic and physical protection than the wooden counterpart. gold-stromatolite-seed=Plant the seed to grow gold stromatolites. They house bacteria that enrich gold from the ground.\n__REMARK_COLOR_BEGIN__Expected yield:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m +steam-science-pack-spoiled=Spoiled steam science pack. Put it in a furnace to bring it to the right temperature. [fluid-name] wood-pulp=Wood pulp @@ -109,10 +111,12 @@ casting-gold=Casting gold gold-ore-crushing=Gold ore crushing processing-unit-gold=Processing unit (gold) burner-lamp-burning=Generating light +refresh-steam-science-pack=Refresh steam science pack [recipe-description] moist-stromatolite-remnant-desiccation-without-steam=Used for balancing the production of steam. gold-stromatolite-seed-to-peat=Used for voiding excess gold stromatolite seeds. +refresh-steam-science-pack=Heats a science flask with water to the right temperature to be used as steam science pack. [technology-name] wood-science-pack=Wood science pack @@ -185,6 +189,7 @@ lignumis-fulgora-wood=Add wood to Fulgora 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 [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. @@ -199,6 +204,7 @@ lignumis-fulgora-wood=This adds wooden gear wheels to scrap recycling as the mai lignumis-early-robots=Personal robots are moved from steam to wood science and are a tiny bit faster. 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. [autoplace-control-names] lignumis_enemy_base=Lignumis enemy bases diff --git a/lignumis/prototypes/content/steam-science.lua b/lignumis/prototypes/content/steam-science.lua index e9e672f..31f575c 100644 --- a/lignumis/prototypes/content/steam-science.lua +++ b/lignumis/prototypes/content/steam-science.lua @@ -2,6 +2,8 @@ local item_tints = require("__base__.prototypes.item-tints") local item_sounds = require("__base__.prototypes.item_sounds") local Technology = require("__cf-lib__/data/Technology") +local spoil = settings.startup["lignumis-sciences-spoil"].value + data:extend({ { type = "tool", @@ -21,7 +23,9 @@ data:extend({ factoriopedia_durability_description_key = "description.factoriopedia-science-pack-remaining-amount-key", durability_description_value = "description.science-pack-remaining-amount-value", random_tint_color = item_tints.iron_rust, - default_import_location = "lignumis" + default_import_location = "lignumis", + spoil_result = spoil and "steam-science-pack-spoiled" or nil, + spoil_ticks = spoil and 3600 * 5 or nil }, { type = "recipe", @@ -78,4 +82,42 @@ data:extend({ } }) +if spoil then + data:extend({ + { + type = "item", + name = "steam-science-pack-spoiled", + icon = Lignumis.graphics .. "icons/steam-science-pack-spoiled.png", + subgroup = "science-pack", + color_hint = { text = "A" }, + order = "2[steam-science-pack]", + inventory_move_sound = item_sounds.science_inventory_move, + pick_sound = item_sounds.science_inventory_pickup, + drop_sound = item_sounds.science_inventory_move, + stack_size = 200, + weight = 1 * kg, + random_tint_color = item_tints.iron_rust, + default_import_location = "lignumis" + }, + { + type = "recipe", + name = "refresh-steam-science-pack", + category = "smelting", + enabled = false, + energy_required = 10, + ingredients = { + { type = "item", name = "steam-science-pack-spoiled", amount = 1 } + }, + results = { { type = "item", name = "steam-science-pack", amount = 1 } }, + crafting_machine_tint = { + primary = { r = 0.65, g = 0.27, b = 0.18, a = 1.000 }, + secondary = { r = 0.65, g = 0.27, b = 0.18, a = 1.000 }, + }, + allow_productivity = false + } + }) + + Technology:new("steam-science-pack"):addRecipe("refresh-steam-science-pack") +end + Technology:new("automation-2"):addRecipe("steam-science-pack-steam") \ No newline at end of file diff --git a/lignumis/prototypes/content/wood-science.lua b/lignumis/prototypes/content/wood-science.lua index 1e2e29c..b80cbe5 100644 --- a/lignumis/prototypes/content/wood-science.lua +++ b/lignumis/prototypes/content/wood-science.lua @@ -1,6 +1,8 @@ local item_tints = require("__base__.prototypes.item-tints") local item_sounds = require("__base__.prototypes.item_sounds") +local spoil = settings.startup["lignumis-sciences-spoil"].value + data:extend({ { type = "tool", @@ -20,7 +22,9 @@ data:extend({ factoriopedia_durability_description_key = "description.factoriopedia-science-pack-remaining-amount-key", durability_description_value = "description.science-pack-remaining-amount-value", random_tint_color = item_tints.iron_rust, - default_import_location = "lignumis" + default_import_location = "lignumis", + spoil_result = spoil and "spoilage" or nil, + spoil_ticks = spoil and 3600 * 60 or nil }, { type = "recipe", diff --git a/lignumis/settings.lua b/lignumis/settings.lua index e64c71a..2a8c02b 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -83,6 +83,13 @@ data:extend({ default_value = false, order = "l" }, + { + type = "bool-setting", + name = "lignumis-sciences-spoil", + setting_type = "startup", + default_value = false, + order = "m" + }, { type = "string-setting", name = "lignumis-second-planet", From 501b65018d6e1e9f93f36759e02a8889e8d77621 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Fri, 29 Aug 2025 22:28:57 +0200 Subject: [PATCH 21/60] 1.0.61 --- 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 e020342..697635c 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,13 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.61 +Date: 29.08.2025 + Changes: + - Increase generation of peat + - Add setting for double provisional rocket capacity + - Add setting for spoiling of science packs + Bug Fixes: + - Always show moist stromatolite remnant in filter UI +--------------------------------------------------------------------------------------------------- Version: 1.0.60 Date: 25.08.2025 Changes: diff --git a/lignumis/info.json b/lignumis/info.json index 1baf964..dcb6c17 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.60", + "version": "1.0.61", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.", "author": "cackling fiend", From df822c0e025a9d20107adb323946f3214474daf5 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Sat, 30 Aug 2025 11:28:21 +0200 Subject: [PATCH 22/60] Don't create recycle recipe for refresh-steam-science-pack --- lignumis/prototypes/content/steam-science.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lignumis/prototypes/content/steam-science.lua b/lignumis/prototypes/content/steam-science.lua index 31f575c..cb37493 100644 --- a/lignumis/prototypes/content/steam-science.lua +++ b/lignumis/prototypes/content/steam-science.lua @@ -113,7 +113,8 @@ if spoil then primary = { r = 0.65, g = 0.27, b = 0.18, a = 1.000 }, secondary = { r = 0.65, g = 0.27, b = 0.18, a = 1.000 }, }, - allow_productivity = false + allow_productivity = false, + auto_recycle = false } }) From 14e16c2fdb2bc1dd605fae2aba1c13e7121f09d4 Mon Sep 17 00:00:00 2001 From: DFOXpro Date: Mon, 1 Sep 2025 12:34:11 +0200 Subject: [PATCH 23/60] Add Spanish locales (#6) By DFOXpro Reviewed-on: https://git.cacklingfiend.info/cacklingfiend/lignumis/pulls/6 Co-authored-by: DFOXpro Co-committed-by: DFOXpro --- lignumis/locale/es-ES/strings.cfg | 216 ++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 lignumis/locale/es-ES/strings.cfg diff --git a/lignumis/locale/es-ES/strings.cfg b/lignumis/locale/es-ES/strings.cfg new file mode 100644 index 0000000..5131da5 --- /dev/null +++ b/lignumis/locale/es-ES/strings.cfg @@ -0,0 +1,216 @@ +[mod-name] +lignumis=○ Lignumis + +[mod-description] +lignumis=Sumérgete en el mundo de Lignumis, una luna de Nauvis que ofrece solo las tecnologías más básicas. + +[space-location-name] +lignumis=Lignumis + +[space-location-description] +lignumis=Lignumis es una luna orbitando Nauvis. Es bastante similar a Nauvis, pero parece ser más joven y con menos recursos. + +[airborne-pollutant-name] +noise=Ruido + +[airborne-pollutant-name-with-amount] +noise=__1__ ruido + +[entity-name] +wood-lab=Laboratorio de madera +peat=Turba +burner-agricultural-tower=Torre agrícola a combustión +burner-assembling-machine=Máquina de ensamblaje a combustión +burner-long-handed-inserter=Insertador largo a combustión +lumber-mill=Aserradero +gold-stromatolite=Estromatolita de oro +gold-stromatolite-plant=Planta de estromatolita de oro +gold-stromatolite-lignumis=Estromatolita de oro +gold-patch=Parche de oro +deep-miner=Perforadora profunda +gold-pipe=Tubería de oro +gold-pipe-to-ground=Tubería de oro subterránea +gold-storage-tank=Cisterna de oro +desiccation-furnace=Horno de desecación +steam-assembling-machine=Máquina de ensamblaje a vapor +provisional-rocket-silo=Silo de cohetes provisional +provisional-rocket-silo-ready=Silo de cohetes provisional (listo) +basic-gun-turret=Torreta ametralladora básica +basic-construction-robot-gold=Robot de construcción básico (oro) +basic-construction-robot-copper=Robot de construcción básico (cobre) +wood-transport-belt=Cinta transportadora de madera +wood-underground-belt=Cinta transportadora subterránea de madera +wood-splitter=Divisor de madera +basic-radar=Radar básico +active-noise-cancelling-tower=Torre de cancelación activa de ruido +quality-assembler=Máquina de ensamblaje de calidad +aai-wood-loader=Cargador de madera +wood-lane-splitter=Divisor de carril de madera +lignumis-spawner-small=Balsa de huevos Lignumis +lignumis-small-wriggler-pentapod=Pentápodo reptante pequeño de Lignumis +lignumis-medium-wriggler-pentapod=Pentápodo reptante mediano de Lignumis + +[entity-description] +lumber-mill=Máquina avanzada para procesar madera. +quality-assembler=Ensamblador de alta gama para fabricar solo máquinas de la mejor calidad. Da un 25% de calidad adicional al consumir [item=gold-quality-catalyst]. Por lo demás, las condiciones de la superficie y los ingredientes no cambian. +gold-stromatolite-plant=Recolecte estromatolitos de oro en busca de bacterias que enriquezcan el oro del suelo.\n__REMARK_COLOR_BEGIN__Rendimiento esperado:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m + +[equipment-name] +basic-portable-generator-equipment-gold=Equipo generador portátil básico (oro) +basic-portable-generator-equipment-copper=Equipo generador portátil básico (cobre) +basic-personal-roboport-equipment-gold=Equipo roboport personal básico (oro) +basic-personal-roboport-equipment-copper=Equipo roboport personal básico (cobre) + +[item-name] +wooden-gear-wheel=Engranaje de madera +wood-science-pack=Paquete de ciencia de madera +peat=Turba +gold-stromatolite-seed=Semilla de estromatolita de oro +gold-ore=Mena de oro +gold-bacteria=Bacterias del oro +gold-plate=Placa de oro +gold-cable=Cable de oro +moist-stromatolite-remnant=Remanente de estromatolita húmedo +steam-science-pack=Paquete de ciencia de vapor +destination-nauvis=Viajes a Nauvis +lumber=Madera aserrada +basic-repair-pack=Pack de reparación básico +cupriavidus-necator=Bacterias Cupriavidus necator +dead-cupriavidus-necator=Bacterias Cupriavidus necator muertas +gold-quality-catalyst=Catalizador de calidad de oro +wood-armor=Armadura de madera +wood-darts-magazine=Dardos de madera +basic-circuit-board=Placa de circuito básica +crushed-gold-ore=Mineral de oro triturado + +[item-description] +wooden-wall=Use Paredes de madera para proteger su base de los lugareños y reducir los niveles de ruido. +stone-wall=Mejor protección acústica y física que la contraparte de madera. +gold-stromatolite-seed=Planta la semilla para cultivar estromatolitos de oro. Albergan bacterias que enriquecen el oro del suelo.\n__REMARK_COLOR_BEGIN__Rendimiento esperado: __REMARK_COLOR_END__ 1.5 [item=gold-ore]/m + +[fluid-name] +wood-pulp=Pulpa de madera +molten-gold=Oro fundido + +[recipe-name] +moist-stromatolite-remnant-desiccation=Desecar remanente de estromatolita húmeda +moist-stromatolite-remnant-desiccation-without-steam=Desecar remanente de estromatolita húmeda +gold-stromatolite-seed-to-peat=Procesar semilla de estromatolita de oro +wood-liquefaction=Licuefacción de la madera +provisional-rocket-part=Pieza de cohete provisional +cupriavidus-necator-starter=Bacterias cupriavidus necator (cultivo iniciador) +plastic-from-cupriavidus-necator=Bioplástico +plastic-from-dead-cupriavidus-necator=Bioplástico +low-density-structure-gold=Estructura de baja densidad +rocket-fuel-from-wood-pulp-and-peat=Biocombustible para cohetes +nutrients-from-wood-pulp=Nutrientes de la pulpa de madera +active-noise-cancelling=Cancelación activa de ruido +casting-gold=Fundición de oro +gold-ore-crushing=Trituración de mineral de oro +processing-unit-gold=Unidad de procesamiento (oro) + +[recipe-description] +moist-stromatolite-remnant-desiccation-without-steam=Se utiliza para equilibrar la producción de vapor. +gold-stromatolite-seed-to-peat=Se usa para eliminar el exceso de semillas de estromatolito de oro. + +[technology-name] +wood-science-pack=Paquete de ciencia de madera +burner-automation=Automatización a combustión +planet-discovery-nauvis=Descubrir el planeta Nauvis +planet-discovery-lignumis=Descubrir la luna Lignumis +iron-processing=Procesamiento de hierro +copper-processing=Procesamiento de cobre +lumber-mill=Aserradero +deep-miner=Perforadora profunda +gold-fluid-handling=Manejo de fluidos con oro +steam-automation=Automatización a vapor +steam-science-pack=Paquete de ciencia de vapor +wood-liquefaction=Licuefacción de madera +provisional-rocketry=Cohetería provisional +basic-gun-turret=Torreta ametralladora básica +basic-construction-robotics-gold=Robótica de construcción básica (oro) +basic-construction-robotics-copper=Robótica de construcción básica (cobre) +wood-logistics=Logística con madera +automation=Automatización eléctrica +tree-seeding=Agricultura básica +basic-repair-pack=Pack de reparación básico +basic-radar=Radar básico +active-noise-cancelling=Cancelación activa de ruido +quality-assembler=Máquina de ensamblaje de calidad +aai-wood-loader=Cargador de madera +basic-ore-crushing=Trituración de minerales básica +astroponics-productivity=Productividad astropónica + +[technology-description] +wood-science-pack=Permite la investigación de tecnologías básicas basadas en productos de madera. +burner-automation=Tecnología para la automatización básica mediante combustión. +planet-discovery-nauvis=Un planeta templado que ofrece todos los recursos comunes. +planet-discovery-lignumis=Una luna orbitando Nauvis que no tiene mucho que ofrecer además de algo de vegetación y un metal que podría ser útil. +lumber-mill=Máquina avanzada para procesar madera. +deep-miner=Da acceso a enormes depósitos de oro que antes eran inalcanzables. +steam-automation=Permite la investigación de tecnologías más sofisticadas basadas en productos de madera y oro. +wood-liquefaction=Convertir la madera en líquido ofrece nuevas posibilidades. +provisional-rocketry=Tenemos que salir de esta luna de alguna manera. ¡Esta es nuestra única oportunidad! +basic-gun-turret=La defensa automática más básica. No es mucho, pero tiene que ser suficiente por ahora. +basic-construction-robotics-gold=La asistencia más básica para necesidades personales de construcción. +basic-construction-robotics-copper=La asistencia más básica para necesidades personales de construcción. +wood-logistics=Transporte lento pero automático de bienes. +tree-seeding=[entity=burner-agricultural-tower] permite plantar semillas en suelo sembrable. Las semillas plantadas se convierten en árboles que se pueden cosechar.\n[entity=tree-plant] puede crecer en pasto y tierra. [entity=gold-stromatolite] puede crecer en [tile=natural-gold-soil]. +active-noise-cancelling=Ayuda a manejar el ruido. +quality-assembler=Ensamblador de alta gama para fabricar solo máquinas de la mejor calidad utilizando un recurso especial que solo se encuentra en Lignumis. +automation-science-pack=Deja Lignumis para permitir la investigación de tecnología avanzada. + +[modifier-description] +basic-gun-turret-attack-bonus=Daño de la torreta ametralladora básica: +__1__ + +[tile-name] +wood-floor=Piso de madera +natural-gold-soil=Suelo infundido con oro + +[fuel-category-name] +wood=Combustible de madera +quality-catalyst=Catalizador de calidad + +[mod-setting-name] +lignumis-belt-progression=Habilitar recetas de banda progresivas +lignumis-inserter-progression=Habilitar recetas de insertador progresivas +lignumis-ammo-progression=Habilitar recetas de munición progresivas +lignumis-technology-progression=Habilite tecnologías progresivas +lignumis-basic-circuit-board=Habilite la placa de circuito básica +lignumis-circuit-progression=Habilitar recetas de circuitos progresivos +lignumis-assembler-progression=Habilitar recetas de ensamblador progresivo +lignumis-lumber-mill-more-recipes=Habilite más recetas para el aserradero +lignumis-fulgora-wood=Añadir madera a Fulgora +lignumis-early-robots=Adelantar aun más los Robots personales + +[mod-setting-description] +lignumis-belt-progression=Los cinturones amarillos requerirán cinturones de madera para fabricarlos. +lignumis-inserter-progression=El insertador eléctrico amarillo requerirá un insertador de combustión para elaborar. +lignumis-ammo-progression=Los cargadores de munición requerirán dardos de madera para fabricarlos. +lignumis-technology-progression=Agrega paquetes de ciencia de madera y vapor a la mayoría de las tecnologías de juegos tardíos. Deshabilitar esto elimina la relevancia de los paquetes de ciencia de Lignumis en el juego tardío. +lignumis-basic-circuit-board=Las recetas usan placas de circuito básicas en lugar de cables dorados y placas doradas cuando corresponde. Se agregarán recetas de oro y cobre. +lignumis-circuit-progression=Los circuitos eléctricos requerirán placas de circuito básicos para fabricarlos. +lignumis-assembler-progression=La máquina de ensamblaje 1 requerirá máquinas de ensamblaje de combustión para fabricarla. +lignumis-lumber-mill-more-recipes=El aserradero también puede fabricar torretas básicas, ensambladores de combustión e insertadores de combustión. Mejora el equilibrio del uso de la madera cuando todas las recetas progresivas están habilitadas y ayuda con los juegos maratónicos. +lignumis-fulgora-wood=Esto agrega engranajes de madera al reciclaje de chatarra como fuente principal de madera. Deshabilite esto si tiene una fuente diferente de madera o importa todo de otros planetas. +lignumis-early-robots=Los robots personales se mueven de la ciencia de vapor a la ciencia de madera y son un poquito más rápidos. + +[autoplace-control-names] +lignumis_enemy_base=Bases enemigas en Lignumis + +[entity-status] +no-quality-catalyst=Sin catalizador de calidad + +[description] +accepted-catalysts=Catalizadores aceptados +quality-catalyst-energy-value=Valor de calidad + +[gui] +quality-catalyst=Catalizador de calidad + +[lignumis] +start-new-game=Lignumis está pensado para jugarse en un juego nuevo, ya que extiende el inicio del juego. +provisional-rocket-silo-button=Escapar a __1__ +provisional-rocket-silo-button-tooltip-inventory=¡Tu inventario personal debe estar vacío! +provisional-rocket-silo-button-tooltip-target=¡Aún no sabes a dónde ir! +provisional-rocket-silo-description=Llena el inventario del cohete y lanza el cohete para escapar a __1__.\nAsegúrese de llevar material para impulsar su producción de hierro, cobre y madera. From b746a7c88ce11ad57b0810c20da0d9a3e6585cf7 Mon Sep 17 00:00:00 2001 From: chromebomb Date: Mon, 1 Sep 2025 12:35:06 +0200 Subject: [PATCH 24/60] 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 25/60] 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 26/60] 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 27/60] 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 28/60] 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 29/60] 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 30/60] 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 31/60] 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 32/60] 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 33/60] 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 34/60] 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 35/60] 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 36/60] 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 37/60] 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 38/60] 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 39/60] 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 40/60] 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 41/60] 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 42/60] 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 43/60] 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 44/60] 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 45/60] 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 46/60] 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 47/60] 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 48/60] 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 49/60] 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 50/60] 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 51/60] 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 52/60] 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 53/60] 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 54/60] 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 55/60] 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 56/60] 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 zcmV;A8*t=_P)6f(xjQDDU<}TE$O{mJ+O|+N+2PPd${L(=RJMz z(|e!p@7~|N-~FCQH)UnW?Ck8S*;&%64;vGWMsLX;@@{Ht1y3Sv5@}kX^O>RpRW#KXqx_ zhmAk6SR~%Oyyfpqw0qXu9I|Lfr|H+xm=>&F9w2fi#*?VTH<9>I$$3hyU9aRQ^{TOx zl$>@%dxxw3XMJfY^|m4bOMxmRyAL>ab`2VzMP$5aBH`|Ldo@2J=9866*tf(SJt{r_ zZq&jVudOftiCV||cZ*Flml$%5`-lB&Z=!fr$-Ab3umAkJ>v!#KJ?3eaMYA7Q=Rm$% zTy;1ct9$pM1zWfK-k6@Q|Do9`Iuz^DolZ;{!Br~;v8?PD0wL!&0)+VkV(ijA^G0`u zk=fa3{^k4lnL{JK2Z{5hVO>pp!lAf{-}?x_Wk4SO(xi2EZquny$i{zfg0t-11YJ62 z9jgh&pPW5;>w{m5KakvS0fUSGeW{eoS!RQ)%k&|aKha}dY-lcrrfv;Xg^^T4T)H4t z((xin@fp61(^}VFM8bw095h3P8z zDY=@7+uUpris@jjP`xmFaJ+;7GiNZwF~<-yds|BTCp=W*oX7!I+&b{nTIc0rV(%8) zv4II^#_W~!5}!LeJ8vVd5#i6|H5HS|$Ob~Wk9;j`pPVuEb@w|Tbvo4nM4`};Ncob( zhnwzhYO;Vp#M=HrN++`B`g-#>#46^CY$^G>92xngN{{H3h6XJJ>lJ_~%TlEb@=LcD z-ug^KqaoGU=)6S1Cr>Y~3ErboW;MhM;MoOeRB=NLZ{? z2B>tFM~zB4@0@e~@X)WF{$5=&+2kgX-eI}7+{j|W+&A3PEia$Ze`;>(khZv4?l2O*gZ{n=hAI}mMByykJs-stMq zy5^~R&-*E#0&ME$J=HWxbNABDeA08bYEzDi}q+>4;ryhB1 z;^>L5Z-ULU=$T+#3Kf3w%jKvjL?VQUZJ)4V5f!9f6kUTx>FkL;*5B{hT?>(jDLpV? zhSpAHx}#4A@huvtX-6{Fh%{3-sKshy+!R{D$`lk7Vf3=nc^ZQPbV13F%pNnsf> z18yanz2`^OF=Si+pzp`#DtRmy!>V;T!E0SqWh{0bi&J>f2FR-|@3`^j{tDql`YpttUWKc z_kxrI?$F7x+p{ycb#SZk@X!|fe5~E}yI@dzQK{se6N}4K*9&rP9{cu1Lv1nV_o@T> zS3PbGW--aIpkEIS4MrFpbz~+cJ*k;l7X-pWtg}ahqdGb+)3QMzDgl+2mQkonGaMf6 z0)tLDXEY#-v6%1o!LYOH<1*W)noQ*^sVQl)_K#HHV|O^yu4)x-bx9suHh|?xeOPkw zL6-UKPp1lwJ=E{pccioBz+>%~Xl-C%ph&4xh7mbJDD2j|4g??EH5-PG4*Odb6>>o2 zoF8QSuQ{7vVhPgpbhX#-)20yx2g(G+=V`pcG)Gbbh_)0sVsgsm7D9i&8HPuFm|R+% zjwVp7A}ogja$#yCb>lpZRk%=EN&yPJ2*|VzAd@lR;K9uhZT7vkZe0nT2sIyvVLo+$ zTX&+$?h$)xYPvR)Ee2qLM$Mm?<)X4&Wo3!3Z>_GbUUy|Y4Tr-UM3B1vGKdmnrBvZ?Q7Jks``JLXqZw zyNI{$dlb>eAF*Y{e^jf5&`__3Xon$_HEP^!%YH|b=w2CQ`XF> z4YcRm+6>_H=>d`Qwi7Xw@ZuFyeIGn7%kLO6y%di-FAQ(>yq-u_VJ^SsD>*tEnjRus zoc0ODKtr5JP9vxw9a(@J0OkG9J4@t`gOE#I2J($%^Nm_*Mfv^{-(V*{TL# zlL!X3>eAKqsyPpl8Z+_@{7UO^yXW+W?=wtd#x#9FFh1uLe5W zY=1d&B%V2XG>+}q5zY8(ZNsZqZ!ocW%r-ikZRHBNUX?++r-a5EWAk|KVj8W!q6+oy zI~4lE?)^6G!Bf$U(Zo(EwVcJ+gax-W>Tp|wI)&<4^R_C%g3T_+vfkTU$|hUShxwR7ApoUHxL95;eqAW$UgYptS3#@?jmmE*?~xW}u1wV;6X&SK9MbWAp`9rSby&+dJo<&TL(t2(!q z{mj#}yAydlF=&DAxcv`fW8QQ7_BEY9b!vKXbTk6p-M0TUT9jQP5znw~+VDbmLJJm) z5NtNtsnKEE^V2)5i?K=Le0V?uu}K9CY}ey09Y`t|D#Z{H1#4(Uz);D>wL0-Un@f9{ zLZzIg(W$`UmEmF;7dU)on#Er4rTQJ&a;1SS%Zl8ey^?||WBktX&l};` zJvHek|78@0hy74nt4{?2hV!A23Htgi5QzxW2tqsGJ!DGvXIovnDzj-&iFMt9Vl5*Y zOy%I>rp+kUzNZG*f)b2M$v+<-lcd;430_PoN);6qEEEh{G7=uaAt~pE2(HYbf zSI7W5pZq#QvVlyxLeOe-ozLgsIyxP4-GLTNYor$W#V3#zOND++ONeU{i4Ob83pF7<>O)%dm)=#y+tk|XV_dO zFqoyOl9HmgnH*Z0AuUN4vTm=rlo-`Ixb8@$!xwRH3WU9z-F~;j6ph|~1DA`p%*@n& zFVPzWiHbA6OuK&lZKjH{DlGZ9ytKO=Y6NUX7y^T3FVr7p` z`_6>g(BF_48_4fY&Q{_pGs_zQA0S9MlApyW-D$F zqfnEuf;TDyg;fAbhX8YXM3^@u2en=fs6~u<{cOx+W8sxvHrT98(COKkjRhOd6%^!O zq?eUo0;CK?Dh}`!+$Y^Wcg*IrHKHa|Ng@f?UN7ZdPkHmHQ?u>u{bo>BF?O!VI19O$ z@oufHy8H(Ir9IQ$-ZezmqhFmC|Jw`4`X6{`@Y~y_1B*R9c5GtO0sfExv$!}5O}#cK zHzOd@i-0HRfyyWXj+ln4t$aKj7UK@L82BbRC|zRMyj21%{RkKwbTB(PKxdaOu$Z*- zLWGxQahVyWi188+#`CtnPpl_EJB5k5f zT^%poH?F{25-Q*b*tkf{1sgceRz>-d@97?pq;} zOB9}ddbW6aTTOCcAoz4mjro;$+_5mZH3E8r6x?q0#b6KxzaNE7o9s|uZ@^6^(V2lk z*L-`sDLs^Q%}2s2sE?VTE2)M`2Mg>jK36YB9v!a+ONBP8RM{&woBa104L>DDSZ^v6yw@}u!5O_?oGDlFFPKc? zv(3#q*uK++@4Ul}&Fv1S?!C7WcJKDUfxCUs+@%7CotX&+xY*pCI;aVYpqQMG>pdbU zq|<<0R)SMXH((4_G0@rMbSYyaR!shDJJ%Z1)_I0;x3+|Ujj@gI7mV%W`vn{0I~anw z7;KCo+%GO9+|o1@vIUY1!AP2|ZN`?hi;^r0$r2@PvLD@+rR^%VwVkvnU8}X))NF~g zb!wAl-M9tt?Yuh%EU}h0Nt?6+oyW5L!}fQM^nCC4UY_?oB$Ul%p)5AzzZk(cm`n<) z(}}=rmMsJV1#?)g4fcHNo0?pH>hg(0_$mU;H8+~r(^F!oueW?)waU>fgEYbyuy2Wk zoU0NM`(JzkEhOYKuJd{6AF5QGh}9+ni(QOrble4nf*EqV5qP}MjJ>Uqr=Bj29zW3w z2ge#=bFBcC%G1IXK1KNOb2U)WY5=~71{?_!Qt4RU%ch`Y>PA!`BF}IIsWS{#8p`G| zqD&?u%wVQLI-N8{r<13oQcg$JbHE79?j1EG%YY7j}qC*u(;-nReQAY8t@^}*g= z_Ztp}dI78X-r}(7QI?nrOa&Pj5)!afBw(w_z>=lTbCszJToq}CqbAMJGl^3)2639r zrA}t+IU$Xj6DjvfLXWgNP_a}DnL-K(1*xDj@*{bj22^Mffhj)&WiryjWEydj#!Z{0 zva#G&mOjbmQKxu9R)j&PE>NhXn-os+ER~rOqB2tEm@Lvlj*%Dc=_!Em@m_S#p8Bvx zuL1!g@WkuTIE||SU@54&aG}$5_;5Sq5zXS3J!3zsqfLVhzBXM4V^?$(q5_} zn=}7WCN0E9{ltl%pk_G}EwmDc7Y@_hPMMW~m%@u(; zhYfqj>Y#nJ5*Q33s?sv&j80)lq~QjQF3Aj6#*C23B%smAkVa2IiL4D%M9zjuA~SJ{ z$V$Ay6q3;Las-;2vZ7ciG!_rc+U#o3=%v5I=W*_!^!CCpw+BW>{Nda@&7@K#4vMna zFNxzjUg|bFn>3Qf-uNTT!cJ2d$!8c^;?G3IX;)=t`kdLK1fS0W zSn!2z-|oi5ado7*NegC^2&B?V5(ND?)PnIorW))HtR+o}7>hyH}%Cp;=OC@S}Paf|qpB zS6&(DYH7vvO}p$vodE$Fn?8^b13w{gQD?o=WS-AYWH~8_SV6CKyR$C1TpAeN-vEI? zUdUqQ2TMyc(5h-VMtm;p+EolgL*=N=riL7=ddlTBa6fBlrk=?wt&+T3SF4K@muM#k z2mRA-j|2Fb8M_IDCBYwO^iwSO?Ah*ywzhoKVUy2eG93uStn;gNLB?ybG16n7%K^?( zB)dvZ=yd8lO-=c)2LcYrcS<6qrAV~6L;^ee9k74D2MpN~P^&Yh5LrgZlBe><){)EQ z4=t}9U!S0lsYMuyYBLq(HIk38lx*t!^Mk>oKkfyCMR5iDY6HMxcPH+PSM$LyPYmS^ z4OfDgsI^{%YG~X^9?`YS9}jte0>n z#Tjlc#Zb`0`h&Y$1`-V`XetygZ1QOSQBbP&u4qmm;KwwE=g%BaoH@Jqs$-LGS|Jy` zTUS>`y;lUUJT@CUw3;0QmPlhmPIPRn0ZXIGg2lx~)ND~)6=4mDcX-W}GTlR*vW@$s zE^6537hHAKA|GrWcEa$p4F?t%BH(%QBFPgI6JLMgiEXWZzw;Swj#eC-P`Dpu(U|O5 z)1mrBQ%epUKi(60>7^00xwR0)a^ZDX_1&EsE7LcwH`$K(Q(tQw(ZK1~+u+#wUTEvA z9b2BBe*pKx7*3rU&H6W7BqrP^#I3HTOXKQ!%pN^8-W44`(U02g8dRy5%&F~?jL%VD zCafU(Yn!$s^#h}xiI(QPIeWhG&$%rviFmc^lX&2MN^HGPn>IXo$cwey7DatN+gw$Z z4J?JKIkKG0`@GkWlf2^pnF0YP7egXW=a;8*5(tE)qxw5P^u6|jL+z-q(i*I)vVh&K zxlU3gkiXzP5aLh7A>j7<N0S#?#p2Rus_)I&Ei|ed}Tyv;Tmv)*Er(S z5r+0DD?mU002ovPDHLkV1j|L#l_9Sp`Ittp%EWUm6f(Q?^z>7Fh*aP}xC1K@b6D6B}rDXnLX8 zHyc4gR1~*)(VRFlnPf6Xg|7Q3O@};^F>w+deJA&vKIgCgtNyCG-(9|Y|HAz#ABF$` z9sq}b{W;h?{!eAS=Yn4Z>_-5Uk9fxv3U9n1m5A@U;x>w0L*EmT7DnRMwxK|y3r&%t zf2#5i@Txx?UHnHlpi=p;F}+U62{@T}@{PpKD=773Y>3 zf0dl!aWx=nZ@`}j{V^c_%%iA4VRX|S9#_$h`v6&!}NUM2k%XztJR^kN9mq{PX9eLIYLJ%h@J(oB;BEW8dbhecoDDo< zs%28d>pJph4R8HSO{MAb|UgQh7~5wx!kX zuW4rtAuZnljg2=zqbcfhAyH(Kg8BAqn8;r^>h*tgt~rg z%zInUfE$6q3OsCftg1o)90c|IEchZrh`2_-y)qbz^y59EdBd zqu^d6*%xf%EInkW6%9Xa*0LA8x7+KpoBEdPzV|2kO>Vrd&ESgzl02bzw&wYFpp|Z@WapoCF z&phZ%%sS{A8+vv5UTB{bA!-G zr$g98X0_zb^Ox+O6qOw?;ThsP>abAx7I_!`r}K-)lhc!O%t59-eVA!-p|!%IsLAcXuE2JC(ibX=x?t zi{?77xv+FaE;&&SO|Kw=Z=?(weMBBDEeyDmU!ETx9OCj1W6Q0mv8`_Z?R!(Zn9LUO zUwYPo;S!hJ{E#5burPM~5&qRFhUvH!b*(OcjXz;k1V8BXc!R?Bw085Zi|j}jEbPB) zg7o8Y>3sObnBn4cCvII)u4UJ|bqsgt-ucTNsnV8mbM_G1sC$5=ik-7~OMHRUNN*W z!yq!%2#)3xA&q7T@v$0kG%@H|I3*Hx>TH|!I^Ya(>0$YgAH#~*XmX*&_-cShC=`Bd zNNaSbp2)JP#U_CBip5(rsVy(A3e&(0{H=ovU%>K-yR}Y?zEdK+IRru0^z?LU4G#8d zQya^+@czGXV{CIvZ@Xg+yG9e>sc3a)t#J*DW;#6DuS=&>1%K}GI6P0$cOSMV-~8t( zC>`AkC)%yJj^PSy+)CV5%;LwVhNTO!66OyQ-hJnP0vIEWuh~c&9&iJ8TLhYTP6tXF zT+l|u59QoVhOlToNKdf>vM&L0$_=2Z!U>$*ogg7Cc{Vu4AN1{aJirOzgn1$LP4!#c z;>8X~G!DncSo7p9r>6x4U=MKb-q@On$2Gm9f6arGiyjZ0BAqs4^Id)IyKcq)Vl;t3-p7aP=KNz2?qKVPDb z#+=1X}tksDYWvoRr$95BQ~UFIhGA z{%=b1Zhv1Uc^dJ#x{0(&5KBo5A$buae_P?J^JcCV<9<9;O!#v5XXzX*Tzr`G;r+=~I z^6(*#bp2TO3ABwlXZGE41sW^tU$w0X5TE7$yr}GS5FZ~urhwlC?!tXT1g~FD)*Tu@ z;?~f1Xy5oyUi9!_+F&Ww1&*ZapvNQBz>+8in);u>p$G-AHjo5k$Muj~z7x!xrBMlK z5l~X!h;C9Avcc9P5ODneNpu{$QM$RN{)Emu?-%eqEa?(q&)F_3ZpDx%>Yudxxq#Tq zkjc;JZ#SkfXr#M$Zz&hoopop%Xd`gO`aGLDn+)o^>outi8li@9(V)GLX$=6&OYfB~ zP0rhCNo}@u?qZYn)i$|CRW}@9G}MLM%RT8x(=(Bmz<-4QvG3c**>~>NOa-*ElAe~= z9Y;gsz5n^iCphUvU86Tv=;XkD!RC5$PIivl!;}yu@Dab2;k5#DqG$2mE=nZ zLsWXT7ZqvJE~ziEeE9I8dS_3WMnbk!KvS#d*!0~*7@9Z$eOKHdDPIfj-8lwjMfQ-L zVGm^Tjz@a7Qp%WNO-@n-Mz8%{X<#Dr@|E!%=ov139-HO~VzPogBodYH%>jOuZUB&_ zr6n#Mz6W-Kn(-!(CaeG%o#mjvXDtw%1VPJn6}ZKUfhkD@q!gE-`+X(2rX*32&{zi2 zimO0Wei>{LUjgE>pMc!$C(=sNTd;fl&iwiA0X|W`bAJ=l6YXI{ zJg2uugKv=j1ppA}yWDAAOe;2>`Eo`H%d^b+I(Ohow|5J(KJa44Mboaq4%1t=9*F0b ztF_aIoS<*$FqAiWqPgW}+~jh?T-@p1bCd+y}+Bi2M zQ=H*O9f7FL#(b5Z8}hTnGzAzEHhg{J>Pu%VZ3H1GRsviDHgLTUN}>L4yFf!jd}f2l z@&aL{kB_gC;Sbce5Ns|i(uDF#PjK}l zr<)?zn6w_8gJi*vvK8u^oj_4j3XHU+!NGn9H!@6}TTy0xhf?UP{q48k%61O4xlZ4| zFUPrBUW*{P;2Wg=y|TI#DzEl=B9@0SfPaD@{p^KS`SM_Y_R*=7TCadgDLbUgga zCX0s$VW}nYGdrTgnu*{8o1s3>Xtp5L6!!WUvKFtMQY=x*WO%~KT%Vcw!xcOx{N4l1 zBQuny4eRo%G#@op$3O=wY8L4_1d%a>>4U+++aG@QP`9}5j03%|MK80mk}x&ZXjfF= z+T}yGBVu{FyJZiJ-AUq}syCh^$EySR=vHt)q6le4CUEME8pMRi0?|wqG|j{z*k5X{ zp~?VKPx`ie_Z(EaMp%}^H#-e_`YIlrKko&$d!%2e?ve&cMd1tBbItdDKW=DmkfAkE z2?WaPTY9{G)yXfiMbD4yduHx0e-9^&Tk$fSs^OMkY*Q`kV0obp z72dO*$YE~JKqMrl*$rQ)t~R50)fv_>nY$TCNakRN-BzaelIU~!>x@f6)QN`Z41Ym zt*63Eh*CT!`4I9jo?O0hZxvzyOj7^7j}A0ZB&2jt*Lfecs$h(JQ2HbfXAi>~qQX$I>FFj>Lz6s>)`rww?s2>&VaAI2mx$@)FXfA52>^x)^4K zg_PyImgcVs?-QBv%T4|#js+CX4|zEp|7&R~rFa{4U?2dJ)2v>|5jJS^df7Y>@jooF zEg5H>(5*kyeJ%4J*%^`AJSTbYKMs>4eYP^HT=->O&3b1_gJtF6Q&){+?5AT*NOv!;Wm41JQ6rPfpBM<%4PKh!=*+798FUIw;)+K zU1$x%Gciy|+Y6URli|_h8ko3|0uhP&kX`8sac3NX5^oD(S-auVlrQA95Fzo{Ht_e? zhtL=wNX|G4%)VYQc68v{@3lfLoQN+1!uCH6P4GkaA9kLYZ&$ASiPz%aX3fb1C#PnY z3epwIP0exOiWw|d;f3g5)YS(k*d{h$FGJ$}(SKfw z00!+aUq>OyOy z<6Jk*7cN!#Kyc=EIFu?2wqZKJ9ts9Jb3cqu9)_{U>A)EEgTt`|*syUqkOP(AQjr}T z@-YVq1tDGRMqJIywZL$5WSW17Cig^kKlRX2ODgST&qJ>_lwSn|H zB1Dw!n)g6+D9JJc&j1TBu#thxG9xHxHvl)cO`yE}6Nt{zg-cXxP*T_k%T}%cZ5=^K zqDa8$6b;zxDFtFm>%i1{H%bom0B1LIuC}hsb1}tbAiQIFpPGf*ax5&q!WDQws07cBMV@e*U4d<5l_uP&V0#-*Ixh(;G}fSBVl zaE7uItOzn-PO<~RP4i$mh=94%dLY`Yhm>;$kXvL4PG*~ds4E02T7vU{s{{GiCeSon z4ayo~U`x^iYkLByYKVfQ!U~Yyz8XYSRw3d_!a}^~d)MDW&wN{{&A6WgzNxz_7wX#& zOkVX+e?6~J0r>hyGE~02U+>-A8FZ(r*aBLc{ZYS!op7|k6iU-{fovfOpG%0s4s{W5 zbX*UzYAYZ#Sp}kxt3kY{G6e2X207*BkY1<;KWpgMI$4#$J^U*3uf>iTzFo*H;NzuvTYsF&Ma1RJi9lt zqPab&gGwWJ*IWvwvl~;!`dE~?Z~uk>XE*~WsXBn%%!Y_uGYAgd3Sm(Sa4bp@l7f}N z$5{l7jMsp!wJ?}E3qkBbNw76gg4G*Wf)Y^xoI*E(jr&GOIV}f={&1Bxo_5NSJ-~V@}iHAkzRM<1k z5gh4GL`VBW9PaylT!yeAIhkeqz-xUx=&WtA(hFfhl6!P?x4mkhpmK1q=t57g?1!U$ zML2O|y8Z1XFuD+`^2&5*xz7*9ZZ8Yxw$F!`{ve93LA5 z200^Y2^W&gK%{0xBQ7=ShBzkB>v59|P!=Y+Z(Z9Ib#f^8_Tcd{w09~|QIiNol}KAw z6{Jpjildfh`D#|nf;4OLM4B4;6742s1kuzQiT&qO(0xgY;pvq)qFRRLy|JjO;vp%< z0wH2^Y*PB6X@>}+bSBvTX7KQ$!^xEndoLp}0}S9SGK5F4Fb$s_y3I?Gu_F48AWYz*R}tB`|ByN6_pUdEA3m7F|`&;3G8#FO!C#92!Da(=>uYBQ;M-SG$T#)P9mh zYQDroEljo0_(#(<0$XVqG?{H&8WZAl1Gcb{hSrZJ5CpMzm2iGoH4e8BTlGCB*m}j}$|2 zvkl;tWe85b0XT6q@G@u+mYESGx*{6?qX~P;6~2bw5&4#q&Tv4)NZd`r^JTg+%VQkeTqO-N6!>kC}7L z9e%2H7_iOQPOh#F$sBJx1&3q1+11BpAKS~S#hqu?z|Ez%`>rw>@r}2=$P-$BmMXDC zL7okY%b6N^lP6KSiHlODE9$oSqp>m+&zHwQCKYOvlX(b@U~OkOTO}}jEy8V_ZCtIa ztgI;%A&p1j8B;7xML7z_na;xj*taiM)76uMzTVZ^jmk8LQ-Wl=FGs5Q7YKgmGiBMq zH}g=?5%hyt#sZaK$2^T{B=y? zxo5o5-MR!lFC<{#KqAUYBh*EeIVjvHY0$rZo)nT{%^t6jqr;(iX@835_`n)be+W^~C@9G5(z)9}9jI zW8;!!>uI?0GG?3pVZ%%vdphwi-%X3s?I z^s(4=lzmfmJQ1TOlENL*0nQA`G^bBjU~IgMXzR#AdVUlUl)w&u zpw>CeS48Jj8^+6f>~0=86^3J~0(IY%0!>3%-^sRw7wPXwcaZGPV)Fj{>Yb0zHeu!? z9P4i+p2`gUT-PqDC+Jbl-#Qmi?CM|e{QBhSRfK9_4KX@Wf`cz*qp&m-i(_0;9}ql0 z8gbt*u%TEb?4a(g?(@R)XA;pok)~-Hk)p9DV;e;WGJN`J>aD+jm*=M+jsNk*jv6GT zh{shbmGProB)$3+ZOr|H!||9HE7wfEp+Ha9N=;>TJcKFEg%3N|^I(6cQkc(DBq^Py zw;HBIXuGtM7`pZcj8C+k^$AdUaRZZr?%AB7w^->ppSTA^va_qZ#5I_ zI_#|(JF||MoZdhTkF3>{*Crq=nN|5KTX3lQ9x)1+;t;uq-nR91$v2;T-G|$szJ{Ic z)x)}SHEF7Uo6y?wji7!~8Sn&KBbJH>x$ghgYlDR!2j$%(Yri@UOKD z`c_r(GZtQ5gJnDSzfgRoVT)UVHphiFW(Samp;X<#fuEAx;&z!A6{|UuReO(5T zBf-QAvkr!IFEwa8a`>)~Tgm@(?R}6kofs?nl&B)tgiMW!$FVc1d*pTLVfdgnX06^XIMttApzjffqwc5LRZ6S!Q z^s6Rox=#S~$%yt#l4;dP8_+bm4C$NspQX#w&2*Q^y>|ga-?`a;qsDXk^S$2=e4x}Q zk0cSPRlLu&A3md>(`EL65i#@l#KaSSXHN=KJOEsm9h3-1#lKJ8V41HTwdwZqH zUw`w>B<#k5#R~M@UeC&FlhvUbgZ7l pvLvb8Cmf_hMS=tg5+wdl@h_xU{7u`oMIHbE002ovPDHLkV1n32)tLYQ From 5cd457fbb80b645a70e8ffaa2a4c631e93556529 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 20 Oct 2025 23:14:10 +0200 Subject: [PATCH 57/60] 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 58/60] 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 59/60] 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 60/60] 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