forked from cacklingfiend/lignumis
Compare commits
16 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
aaea504cef | ||
![]() |
2336ad4d44 | ||
![]() |
5c556646d9 | ||
![]() |
607ce9feb8 | ||
![]() |
9bf4a5d6ff | ||
![]() |
ee9eb8faf1 | ||
![]() |
c1797dfcfe | ||
![]() |
8fb0fac800 | ||
![]() |
9cff8c4401 | ||
![]() |
25b396affc | ||
![]() |
7385751f2d | ||
![]() |
2d327c805d | ||
![]() |
014eed03aa | ||
![]() |
e14789ee81 | ||
![]() |
3fb93faea5 | ||
b746a7c88c |
19 changed files with 196 additions and 56 deletions
|
@ -1,4 +1,5 @@
|
|||
[](https://discord.gg/ufvFUJtVwk)[](https://git.cacklingfiend.info/cacklingfiend/lignumis)[](https://mods.factorio.com/mod/lignumis/metrics?range=last_two_months&type=mod_downloads)
|
||||
|
||||
_________________
|
||||

|
||||
|
||||
|
@ -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)
|
||||
|
|
|
@ -1,4 +1,32 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
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:
|
||||
- Fix more item weights
|
||||
- Fix steam assembler scaling with increased energy usage from modules
|
||||
---------------------------------------------------------------------------------------------------
|
||||
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:
|
||||
- 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:
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": "lignumis",
|
||||
"version": "1.0.61",
|
||||
"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",
|
||||
"homepage": "https://discord.gg/5bevXf5W",
|
||||
"homepage": "https://discord.gg/ufvFUJtVwk",
|
||||
"factorio_version": "2.0",
|
||||
"space_travel_required": true,
|
||||
"dependencies": [
|
||||
|
|
|
@ -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
|
||||
|
|
67
lignumis/prototypes/compatibility/alien-biomes-final.lua
Normal file
67
lignumis/prototypes/compatibility/alien-biomes-final.lua
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -25,7 +25,7 @@ LumberMill.EntityBuilder:new()
|
|||
surface_conditions = {
|
||||
{
|
||||
property = has_oxygen and "oxygen" or "pressure",
|
||||
min = 10
|
||||
min = 3
|
||||
},
|
||||
{
|
||||
property = "gravity",
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -339,11 +339,29 @@ 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)
|
||||
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)
|
||||
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)
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue