Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

26 changed files with 310 additions and 427 deletions

View file

@ -1,13 +1,4 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.0.75
Date: 09.12.2025
Changes:
- Add is_satellite to PlanetsLib:extend
- Remove default item weights as the code has been moved to PlanetsLib
Bug Fixes:
- Recycling in Factoriopedia: Add order to bioprocessing subgroup for compatibility (thanks jvella94)
- Crushing Industry: Use additional_categories for quality assembling so the rocket silo recipe will use concrete mix again
---------------------------------------------------------------------------------------------------
Version: 1.0.74 Version: 1.0.74
Date: 18.11.2025 Date: 18.11.2025
Bug Fixes: Bug Fixes:

View file

@ -1,6 +1,6 @@
{ {
"name": "lignumis", "name": "lignumis",
"version": "1.0.75", "version": "1.0.74",
"title": "Lignumis", "title": "Lignumis",
"description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.\n\nThis planet mod effects other planets and space ships. Make sure to read the description on the mod portal and check the mod settings.", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.\n\nThis planet mod effects other planets and space ships. Make sure to read the description on the mod portal and check the mod settings.",
"author": "cackling fiend", "author": "cackling fiend",
@ -12,40 +12,39 @@
"space-age >= 2.0.53", "space-age >= 2.0.53",
"astroponics >= 1.2.0", "astroponics >= 1.2.0",
"bioprocessing-tab", "bioprocessing-tab",
"cf-lib >= 1.1.0", "cf-lib >= 0.0.13",
"flib", "flib",
"gleba-water-cane", "gleba-water-cane",
"lignumis-assets >= 1.0.3", "lignumis-assets >= 1.0.3",
"mf-buildings >= 1.0.7", "mf-buildings >= 1.0.7",
"mf-core >= 1.0.3", "mf-core >= 1.0.3",
"mf-logistics >= 1.0.1", "mf-logistics >= 1.0.1",
"PlanetsLib >= 1.14.7", "PlanetsLib >= 1.1.26",
"pollution-as-surface-property", "pollution-as-surface-property",
"Wood-Walls >= 1.2.0", "Wood-Walls >= 1.2.0",
"vulcanus-sulfuric-bacteria", "vulcanus-sulfuric-bacteria",
"? aai-industry", "?aai-industry",
"? aai-loaders", "?aai-loaders",
"? aai-loaders-sane", "?aai-loaders-sane",
"? any-planet-start", "?any-planet-start",
"? crushing-industry", "?atan-nuclear-science",
"? fulgora-coralmium-agriculture", "?crushing-industry",
"? hot-metals >= 1.1.0", "?Diversitree",
"? lane-splitters", "?fulgora-coralmium-agriculture",
"? wood-industry", "?gleba-reborn",
"? wood-military >= 2.3.3", "?hot-metals >= 1.1.0",
"? canal-excavator >= 1.9.0", "?Krastorio2-spaced-out",
"? wood-logistics", "?lane-splitters",
"(?) atan-nuclear-science", "?metal-and-stars",
"(?) Diversitree", "(?)secretas",
"(?) gleba-reborn", "(?)Wood_Gasification_updated",
"(?) Krastorio2-spaced-out", "?wood-industry",
"(?) metal-and-stars", "?wood-military >= 2.3.3",
"(?) secretas", "!apm_power_ldinc",
"(?) Wood_Gasification_updated", "!early-agriculture",
"! apm_power_ldinc", "!planet-picker",
"! early-agriculture", "!wood-logistics",
"! planet-picker", "!wood-universe-modpack",
"! wood-universe-modpack", "!rso-mod"
"! rso-mod"
] ]
} }

View file

@ -46,7 +46,7 @@ AAILoaders.make_tier({
order = "d[loader]-a00[aai-wood-loader]" order = "d[loader]-a00[aai-wood-loader]"
}) })
data.raw.recipe["aai-wood-loader"].additional_categories = { "wood-processing" } data.raw.recipe["aai-wood-loader"].category = "wood-processing-or-assembling"
if not basic_circuit_board then if not basic_circuit_board then
local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit") local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit")

View file

@ -1,14 +0,0 @@
if not mods["canal-excavator"] then return end
data:extend({{
type = "mod-data",
name = "canex-lignumis-config",
data_type = "canex-surface-config",
data = {
surfaceName = "lignumis",
localisation = {"space-location-name.lignumis"},
mineResult = "stone",
oreStartingAmount = 10,
tint = {r = 102, g = 78, b = 6}
},
}})

View file

@ -90,9 +90,10 @@ end
local gold_recipe = Recipe:new("burner-crusher") local gold_recipe = Recipe:new("burner-crusher")
:replaceIngredient("iron-gear-wheel", "wooden-gear-wheel") :replaceIngredient("iron-gear-wheel", "wooden-gear-wheel")
:replaceIngredient("iron-plate", "gold-plate") :replaceIngredient("iron-plate", "gold-plate")
if settings.startup["lignumis-lumber-mill-more-recipes"].value then :assign({
gold_recipe.prototype.additional_categories = { "wood-processing" } category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or
end "crafting"
})
gold_recipe:clone("burner-crusher-copper") gold_recipe:clone("burner-crusher-copper")
:replaceIngredient("gold-plate", "copper-plate") :replaceIngredient("gold-plate", "copper-plate")

View file

@ -7,4 +7,3 @@ require("nuclear-science")
require("lane-splitters") require("lane-splitters")
require("wood-industry") require("wood-industry")
require("crushing-industry") require("crushing-industry")
require("canal-excavator")

View file

@ -23,7 +23,7 @@ lane_splitter.prototype.structure_patch.west.filename = data.raw.splitter["wood-
lane_splitter.prototype.structure_patch.north.filename = data.raw.splitter["wood-splitter"].structure_patch.north.filename lane_splitter.prototype.structure_patch.north.filename = data.raw.splitter["wood-splitter"].structure_patch.north.filename
lane_splitter.item.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png" lane_splitter.item.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png"
lane_splitter.item.order = "d[lane-splitter]-0[wood-lane-splitter]" lane_splitter.item.order = "d[lane-splitter]-0[wood-lane-splitter]"
lane_splitter.recipe.additional_categories = { "wood-processing" } lane_splitter.recipe.category = "wood-processing-or-assembling"
data:extend({ data:extend({
lane_splitter.prototype, lane_splitter.prototype,

View file

@ -19,8 +19,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "basic-circuit-board", name = "basic-circuit-board",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
icons = { icons = {
{ icon = Lignumis.graphics .. "icons/basic-circuit-board.png" }, { icon = Lignumis.graphics .. "icons/basic-circuit-board.png" },
{ icon = Lignumis.graphics .. "icons/gold-cable.png", scale = 0.25, shift = { 8, 8 } } { icon = Lignumis.graphics .. "icons/gold-cable.png", scale = 0.25, shift = { 8, 8 } }
@ -37,8 +36,7 @@ data:extend({
type = "recipe", type = "recipe",
name = "basic-circuit-board-copper", name = "basic-circuit-board-copper",
localised_name = { "item-name.basic-circuit-board" }, localised_name = { "item-name.basic-circuit-board" },
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
icons = { icons = {
{ icon = Lignumis.graphics .. "icons/basic-circuit-board.png" }, { icon = Lignumis.graphics .. "icons/basic-circuit-board.png" },
{ icon = "__base__/graphics/icons/copper-cable.png", scale = 0.25, shift = { 8, 8 } } { icon = "__base__/graphics/icons/copper-cable.png", scale = 0.25, shift = { 8, 8 } }

View file

@ -58,7 +58,7 @@ local turret_recipe = {
results = { { type = "item", name = "basic-gun-turret", amount = 1 } } results = { { type = "item", name = "basic-gun-turret", amount = 1 } }
} }
if settings.startup["lignumis-lumber-mill-more-recipes"].value then if settings.startup["lignumis-lumber-mill-more-recipes"].value then
turret_recipe.additional_categories = { "wood-processing" } turret_recipe.category = "wood-processing-or-assembling"
end end
local turret_technology = { local turret_technology = {

View file

@ -84,8 +84,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "burner-agricultural-tower", name = "burner-agricultural-tower",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
energy_required = 10, energy_required = 10,
ingredients = { ingredients = {
{ type = "item", name = "stone-brick", amount = 5 }, { type = "item", name = "stone-brick", amount = 5 },
@ -117,8 +116,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "burner-agricultural-tower-copper", name = "burner-agricultural-tower-copper",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
localised_name = { "entity-name.burner-agricultural-tower" }, localised_name = { "entity-name.burner-agricultural-tower" },
icons = { icons = {
{ icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" }, { icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" },

View file

@ -17,6 +17,7 @@ assembling_machine.crafting_categories = {
"crafting", "crafting",
"electronics", "electronics",
"pressing", "pressing",
"wood-processing-or-assembling",
"organic-or-assembling", "organic-or-assembling",
"electronics-or-assembling", "electronics-or-assembling",
"metallurgy-or-assembling" "metallurgy-or-assembling"
@ -49,6 +50,8 @@ remnants.animation[2].filename = gfx .. "burner-assembling-machine-remnants.png"
remnants.animation[3].filename = gfx .. "burner-assembling-machine-remnants.png" remnants.animation[3].filename = gfx .. "burner-assembling-machine-remnants.png"
remnants.order = "0[burner-assembling-machine]" remnants.order = "0[burner-assembling-machine]"
local crafting_category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or "crafting"
data:extend({ data:extend({
assembling_machine, assembling_machine,
remnants, remnants,
@ -67,8 +70,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "burner-assembling-machine", name = "burner-assembling-machine",
category = "crafting", category = crafting_category,
additional_categories = settings.startup["lignumis-lumber-mill-more-recipes"].value and { "wood-processing" } or nil,
enabled = false, enabled = false,
ingredients = { ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 5 }, { type = "item", name = "wooden-gear-wheel", amount = 5 },

View file

@ -44,6 +44,8 @@ remnants.animation[3].filename = gfx .. "burner-long-handed-inserter-remnants.pn
remnants.animation[4].filename = gfx .. "burner-long-handed-inserter-remnants.png" remnants.animation[4].filename = gfx .. "burner-long-handed-inserter-remnants.png"
remnants.order = "a-c-0" remnants.order = "a-c-0"
local crafting_category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or "crafting"
data:extend({ data:extend({
long_handed_inserter, long_handed_inserter,
remnants, remnants,
@ -63,8 +65,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "burner-long-handed-inserter", name = "burner-long-handed-inserter",
category = "crafting", category = crafting_category,
additional_categories = settings.startup["lignumis-lumber-mill-more-recipes"].value and { "wood-processing" } or nil,
enabled = false, enabled = false,
ingredients = { ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 1 }, { type = "item", name = "wooden-gear-wheel", amount = 1 },

View file

@ -1,4 +1,3 @@
local Recipe = require("__cf-lib__/data/Recipe")
local Technology = require("__cf-lib__/data/Technology") local Technology = require("__cf-lib__/data/Technology")
local LumberMillFactory = require(MF.buildings .. "LumberMill") local LumberMillFactory = require(MF.buildings .. "LumberMill")
local LumberMill = LumberMillFactory() local LumberMill = LumberMillFactory()
@ -8,18 +7,19 @@ local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].val
data:extend({ data:extend({
{ {
type = "recipe-category", type = "recipe-category",
name = "wood-processing" name = "wood-processing-or-assembling"
} }
}) })
table.insert(data.raw["character"]["character"].crafting_categories, "wood-processing-or-assembling")
local has_oxygen = data.raw["surface-property"]["oxygen"] ~= nil local has_oxygen = data.raw["surface-property"]["oxygen"] ~= nil
if not mods["wood-logistics"] then LumberMill.EntityBuilder:new()
LumberMill.EntityBuilder:new()
:burnerEnergySource({ emissions_per_minute = { noise = 100 } }) :burnerEnergySource({ emissions_per_minute = { noise = 100 } })
:baseProductivity(0.5) :baseProductivity(0.5)
:apply({ :apply({
crafting_categories = { "wood-processing" }, crafting_categories = { "wood-processing-or-assembling" },
crafting_speed = 2, crafting_speed = 2,
energy_usage = "1000kW", energy_usage = "1000kW",
surface_conditions = { surface_conditions = {
@ -34,13 +34,13 @@ if not mods["wood-logistics"] then
} }
}) })
local lumber_mill_item = LumberMill.ItemBuilder:new() local lumber_mill_item = LumberMill.ItemBuilder:new()
:apply({ :apply({
default_import_location = "lignumis", default_import_location = "lignumis",
order = "2[lumber-mill]" order = "2[lumber-mill]"
}) })
LumberMill.RecipeBuilder:new() LumberMill.RecipeBuilder:new()
:ingredients(table.trim({ :ingredients(table.trim({
{ type = "item", name = "stone-brick", amount = 40 }, { type = "item", name = "stone-brick", amount = 40 },
{ type = "item", name = "lumber", amount = 50 }, { type = "item", name = "lumber", amount = 50 },
@ -50,17 +50,17 @@ if not mods["wood-logistics"] then
{ type = "item", name = "burner-assembling-machine", amount = 2 } { type = "item", name = "burner-assembling-machine", amount = 2 }
})) }))
:apply({ :apply({
additional_categories = { "wood-processing" } category = "wood-processing-or-assembling"
}) })
LumberMill.TechnologyBuilder:new() LumberMill.TechnologyBuilder:new()
:prerequisites({ "steam-science-pack" }) :prerequisites({ "steam-science-pack" })
:count(250) :count(250)
:time(15) :time(15)
:ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }) :ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } })
:apply() :apply()
LumberMill.RecipeBuilder:new() LumberMill.RecipeBuilder:new()
:ingredients({ :ingredients({
{ type = "item", name = "stone-brick", amount = 40 }, { type = "item", name = "stone-brick", amount = 40 },
{ type = "item", name = "lumber", amount = 50 }, { type = "item", name = "lumber", amount = 50 },
@ -72,79 +72,11 @@ if not mods["wood-logistics"] then
:apply({ :apply({
name = "lumber-mill-copper", name = "lumber-mill-copper",
localised_name = { "entity-name.lumber-mill" }, localised_name = { "entity-name.lumber-mill" },
additional_categories = { "wood-processing" }, category = "wood-processing-or-assembling",
icons = { icons = {
{ icon = lumber_mill_item.icon }, { icon = lumber_mill_item.icon },
{ icon = basic_circuit_board and "__base__/graphics/icons/copper-plate.png" or "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } { icon = basic_circuit_board and "__base__/graphics/icons/copper-plate.png" or "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
} }
}) })
Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("lumber-mill-copper") Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("lumber-mill-copper")
else
table.assign(data.raw["assembling-machine"]["lumber-mill"], {
energy_source = {
type = "burner",
fuel_categories = { "chemical" },
effectivity = 1,
fuel_inventory_size = 3,
emissions_per_minute = { pollution = 10, noise = 100 },
},
crafting_categories = { "wood-processing" },
energy_usage = "1000kW",
module_slots = 4,
max_health = 500,
surface_conditions = {
{
property = has_oxygen and "oxygen" or "pressure",
min = 3
},
{
property = "gravity",
min = 1
}
}
})
data.raw.item["lumber-mill"].default_import_location = "lignumis"
table.assign(data.raw.recipe["lumber-mill"], {
additional_categories = { "wood-processing" },
ingredients = table.trim({
{ type = "item", name = "stone-brick", amount = 40 },
{ type = "item", name = "lumber", amount = 50 },
{ type = "item", name = "wooden-gear-wheel", amount = 50 },
{ type = "item", name = "gold-plate", amount = basic_circuit_board and 20 or 40 },
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 20 } or nil,
{ type = "item", name = "burner-assembling-machine", amount = 2 }
})
})
table.assign(data.raw.technology["advanced-carpentry"], {
prerequisites = { "steam-science-pack" },
unit = {
count = 250,
time = 15,
ingredients = {
{ "wood-science-pack", 1 },
{ "steam-science-pack", 1 }
}
}
})
Recipe:new("lumber-mill")
:clone("lumber-mill-copper")
:assign({
localised_name = { "entity-name.lumber-mill" },
icons = {
{ icon = data.raw.item["lumber-mill"].icon },
{ icon = basic_circuit_board and "__base__/graphics/icons/copper-plate.png" or "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
}
})
:replaceIngredient("gold-plate", "copper-plate")
:apply()
Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("lumber-mill-copper")
end
Recipe:new("wooden-chest"):addCategory("wood-processing")
Recipe:new("small-electric-pole"):addCategory("wood-processing")

View file

@ -1,8 +1,6 @@
local item_sounds = require("__base__.prototypes.item_sounds") local item_sounds = require("__base__.prototypes.item_sounds")
local Recipe = require("__cf-lib__/data/Recipe")
if not mods["wood-logistics"] then data:extend({
data:extend({
{ {
type = "item", type = "item",
name = "lumber", name = "lumber",
@ -25,15 +23,11 @@ if not mods["wood-logistics"] then
{ {
type = "recipe", type = "recipe",
name = "lumber", name = "lumber",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
allow_productivity = true, allow_productivity = true,
allow_as_intermediate = true, allow_as_intermediate = true,
ingredients = { { type = "item", name = "wood", amount = 2 } }, ingredients = { { type = "item", name = "wood", amount = 2 } },
results = { { type = "item", name = "lumber", amount = 1 } }, results = { { type = "item", name = "lumber", amount = 1 } },
energy_required = 1 energy_required = 1
} }
}) })
else
Recipe:new("lumber"):addCategory("wood-processing")
end

View file

@ -100,17 +100,17 @@ emit("lab", "biolab", 20)
emit("locomotive", "locomotive", 200) emit("locomotive", "locomotive", 200)
emit_constant("locomotive", "locomotive", 10) emit_constant("locomotive", "locomotive", 10)
emit_constant("transport-belt", "wood-transport-belt", 2) --emit_constant("transport-belt", "wood-transport-belt", 2)
emit_constant("transport-belt", "transport-belt", 3) emit_constant("transport-belt", "transport-belt", 3)
emit_constant("transport-belt", "fast-transport-belt", 4) emit_constant("transport-belt", "fast-transport-belt", 4)
emit_constant("transport-belt", "express-transport-belt", 6) emit_constant("transport-belt", "express-transport-belt", 6)
emit_constant("transport-belt", "turbo-transport-belt", 8) emit_constant("transport-belt", "turbo-transport-belt", 8)
emit_constant("underground-belt", "wood-underground-belt", 7.5) --emit_constant("underground-belt", "wood-underground-belt", 7.5)
emit_constant("underground-belt", "underground-belt", 10) emit_constant("underground-belt", "underground-belt", 10)
emit_constant("underground-belt", "fast-underground-belt", 20) emit_constant("underground-belt", "fast-underground-belt", 20)
emit_constant("underground-belt", "express-underground-belt", 30) emit_constant("underground-belt", "express-underground-belt", 30)
emit_constant("underground-belt", "turbo-underground-belt", 40) emit_constant("underground-belt", "turbo-underground-belt", 40)
emit_constant("splitter", "wood-splitter", 20) --emit_constant("splitter", "wood-splitter", 20)
emit_constant("splitter", "splitter", 30) emit_constant("splitter", "splitter", 30)
emit_constant("splitter", "fast-splitter", 40) emit_constant("splitter", "fast-splitter", 40)
emit_constant("splitter", "express-splitter", 50) emit_constant("splitter", "express-splitter", 50)

View file

@ -77,8 +77,7 @@ QualityAssembler.EntityBuilder:new()
crafting_speed = 4, crafting_speed = 4,
module_slots = 6, module_slots = 6,
allowed_effects = { "consumption", "pollution", "quality" }, allowed_effects = { "consumption", "pollution", "quality" },
effect_receiver = { base_effect = { quality = 3.5 } }, effect_receiver = { base_effect = { quality = 3.5 } }
crafting_categories = { "quality-assembling" }
}) })
QualityAssembler.ItemBuilder:new():apply() QualityAssembler.ItemBuilder:new():apply()
@ -92,8 +91,7 @@ QualityAssembler.RecipeBuilder:new()
{ type = "item", name = "quantum-processor", amount = 10 } { type = "item", name = "quantum-processor", amount = 10 }
}) })
:apply({ :apply({
category = "electromagnetics", category = "electromagnetics-or-quality-assembling",
additional_categories = { "quality-assembling" }
}) })
QualityAssembler.TechnologyBuilder:new() QualityAssembler.TechnologyBuilder:new()
@ -149,49 +147,71 @@ data:extend({
}, },
research_trigger = { type = "craft-item", item = "gold-quality-catalyst", count = 10000 }, research_trigger = { type = "craft-item", item = "gold-quality-catalyst", count = 10000 },
prerequisites = { "experienced-quality-assembling-1" } prerequisites = { "experienced-quality-assembling-1" }
},
{
type = "recipe-category",
name = "quality-assembling"
} }
}) })
local function qa(recipeName) local function convert_category(name)
local recipe = data.raw.recipe[recipeName] local quality_name = name .. "-or-quality-assembling"
recipe.additional_categories = recipe.additional_categories or {} data:extend({
table.insert(recipe.additional_categories, "quality-assembling") {
type = "recipe-category",
name = quality_name
}
})
for _, assembler in pairs(data.raw["assembling-machine"]) do
if assembler.crafting_categories and table.contains(assembler.crafting_categories, name) then
table.insert(assembler.crafting_categories, quality_name)
end
end
for _, character in pairs(data.raw["character"]) do
if character.crafting_categories and table.contains(character.crafting_categories, name) then
table.insert(character.crafting_categories, quality_name)
end
end
table.insert(data.raw["assembling-machine"]["quality-assembler"].crafting_categories, quality_name)
end end
convert_category("wood-processing-or-assembling")
convert_category("metallurgy-or-assembling")
convert_category("metallurgy")
convert_category("electronics")
convert_category("electronics-or-assembling")
convert_category("electromagnetics")
convert_category("organic-or-assembling")
convert_category("crafting")
convert_category("cryogenics-or-assembling")
-- Lignumis -- Lignumis
qa("lumber-mill") data.raw.recipe["lumber-mill"].category = "wood-processing-or-assembling-or-quality-assembling"
-- Nauvis -- Nauvis
qa("logistic-robot") data.raw.recipe["logistic-robot"].category = "crafting-or-quality-assembling"
qa("construction-robot") data.raw.recipe["construction-robot"].category = "crafting-or-quality-assembling"
qa("roboport") data.raw.recipe["roboport"].category = "crafting-or-quality-assembling"
qa("speed-module-3") data.raw.recipe["speed-module-3"].category = "electronics-or-quality-assembling"
qa("productivity-module-3") data.raw.recipe["productivity-module-3"].category = "electronics-or-quality-assembling"
qa("efficiency-module-3") data.raw.recipe["efficiency-module-3"].category = "electronics-or-quality-assembling"
qa("rocket-silo") data.raw.recipe["rocket-silo"].category = "crafting-or-quality-assembling"
qa("cargo-bay") data.raw.recipe["cargo-bay"].category = "crafting-or-quality-assembling"
qa("asteroid-collector") data.raw.recipe["asteroid-collector"].category = "crafting-or-quality-assembling"
qa("thruster") data.raw.recipe["thruster"].category = "crafting-or-quality-assembling"
-- Vulcanus -- Vulcanus
qa("foundry") data.raw.recipe["foundry"].category = "metallurgy-or-assembling-or-quality-assembling"
qa("big-mining-drill") data.raw.recipe["big-mining-drill"].category = "metallurgy-or-quality-assembling"
-- Fulgora -- Fulgora
qa("electromagnetic-plant") data.raw.recipe["electromagnetic-plant"].category = "electronics-or-assembling-or-quality-assembling"
qa("lightning-collector") data.raw.recipe["lightning-collector"].category = "electromagnetics-or-quality-assembling"
qa("mech-armor") data.raw.recipe["mech-armor"].category = "crafting-or-quality-assembling"
qa("quality-module-3") data.raw.recipe["quality-module-3"].category = "electronics-or-quality-assembling"
qa("recycler") data.raw.recipe["recycler"].category = "crafting-or-quality-assembling"
-- Gleba -- Gleba
qa("biochamber") data.raw.recipe["biochamber"].category = "organic-or-assembling-or-quality-assembling"
qa("stack-inserter") data.raw.recipe["stack-inserter"].category = "crafting-or-quality-assembling"
qa("spidertron") data.raw.recipe["spidertron"].category = "crafting-or-quality-assembling"
-- Aquilo -- Aquilo
qa("cryogenic-plant") data.raw.recipe["cryogenic-plant"].category = "cryogenics-or-assembling-or-quality-assembling"

View file

@ -20,6 +20,7 @@ assembling_machine.crafting_categories = {
"crafting", "crafting",
"electronics", "electronics",
"pressing", "pressing",
"wood-processing-or-assembling",
"organic-or-assembling", "organic-or-assembling",
"electronics-or-assembling", "electronics-or-assembling",
"metallurgy-or-assembling", "metallurgy-or-assembling",

View file

@ -144,8 +144,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "wood-lab", name = "wood-lab",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
energy_required = 2, energy_required = 2,
ingredients = { ingredients = {
{ type = "item", name = "lumber", amount = 6 }, { type = "item", name = "lumber", amount = 6 },

View file

@ -1,12 +1,9 @@
local BeltFactory = require(MF.logistics .. "Belts") local BeltFactory = require(MF.logistics .. "Belts")
local Belt = BeltFactory("wood", "brown", "slow") local Belt = BeltFactory("wood", "brown", "slow")
local Recipe = require("__cf-lib__/data/Recipe")
local Item = require("__cf-lib__/data/Item")
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
if not mods["wood-logistics"] then Belt.EntityBuilder:new()
Belt.EntityBuilder:new()
:itemsPerSecond(7.5) :itemsPerSecond(7.5)
:nextTier("") :nextTier("")
:undergroundDistance(4) :undergroundDistance(4)
@ -35,7 +32,7 @@ if not mods["wood-logistics"] then
} }
}) })
local splitter_item = Belt.ItemBuilder:new() local splitter_item = Belt.ItemBuilder:new()
:itemsPerRocket("transportBelt", 200) :itemsPerRocket("transportBelt", 200)
:itemsPerRocket("undergroundBelt", 100) :itemsPerRocket("undergroundBelt", 100)
:itemsPerRocket("splitter", 100) :itemsPerRocket("splitter", 100)
@ -43,7 +40,7 @@ if not mods["wood-logistics"] then
:apply() :apply()
.splitter .splitter
Belt.RecipeBuilder:new() Belt.RecipeBuilder:new()
:beltAmount(2) :beltAmount(2)
:ingredients("transportBelt", { :ingredients("transportBelt", {
{ type = "item", name = "lumber", amount = 1 }, { type = "item", name = "lumber", amount = 1 },
@ -61,24 +58,24 @@ if not mods["wood-logistics"] then
}) })
:apply({ :apply({
transportBelt = { transportBelt = {
additional_categories = { "wood-processing" } category = "wood-processing-or-assembling"
}, },
undergroundBelt = { undergroundBelt = {
additional_categories = { "wood-processing" } category = "wood-processing-or-assembling"
}, },
splitter = { splitter = {
additional_categories = { "wood-processing" } category = "wood-processing-or-assembling"
} }
}) })
Belt.TechnologyBuilder:new() Belt.TechnologyBuilder:new()
:prerequisites({ "wood-science-pack" }) :prerequisites({ "wood-science-pack" })
:ingredients({ { "wood-science-pack", 1 } }) :ingredients({ { "wood-science-pack", 1 } })
:count(10) :count(10)
:time(10) :time(10)
:apply() :apply()
if not basic_circuit_board then if not basic_circuit_board then
data:extend({ data:extend({
Belt.RecipeBuilder:new() Belt.RecipeBuilder:new()
:ingredients("splitter", { :ingredients("splitter", {
@ -94,7 +91,7 @@ if not mods["wood-logistics"] then
{ icon = splitter_item.icon }, { icon = splitter_item.icon },
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
}, },
additional_categories = { "wood-processing" } category = "wood-processing-or-assembling"
} }
}) })
.splitter .splitter
@ -104,48 +101,4 @@ if not mods["wood-logistics"] then
type = "unlock-recipe", type = "unlock-recipe",
recipe = "wood-splitter-electronic-circuit" recipe = "wood-splitter-electronic-circuit"
}) })
end
else
Recipe:new("wood-transport-belt")
:replaceIngredient("copper-cable", "wooden-gear-wheel", 1)
:assign({
additional_categories = { "wood-processing" }
})
Recipe:new("wood-underground-belt")
:assign({
additional_categories = { "wood-processing" }
})
Recipe:new("wood-splitter")
:replaceIngredient("copper-cable", basic_circuit_board and "basic-circuit-board" or "gold-cable", basic_circuit_board and 5 or nil)
:assign({
additional_categories = { "wood-processing" }
})
if not basic_circuit_board then
Recipe:new("wood-splitter")
:clone("wood-splitter-electronic-circuit")
:replaceIngredient(basic_circuit_board and "gold-cable" or "basic-circuit-board", "electronic-circuit", 2)
:assign({
localised_name = { "entity-name.wood-splitter" },
icons = {
{ icon = data.raw.item["wood-splitter"].icon },
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
}
})
:unlockedByTechnology("electronics")
:apply()
end
Item:new("wood-transport-belt")
:itemsPerRocket(200)
:defaultImportLocation("lignumis")
Item:new("wood-underground-belt")
:itemsPerRocket(100)
:defaultImportLocation("lignumis")
Item:new("wood-splitter")
:itemsPerRocket(100)
:defaultImportLocation("lignumis")
end end

View file

@ -82,8 +82,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "wood-darts-magazine", name = "wood-darts-magazine",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
energy_required = 1, energy_required = 1,
ingredients = { { type = "item", name = "wood", amount = 2 } }, ingredients = { { type = "item", name = "wood", amount = 2 } },
results = { { type = "item", name = "wood-darts-magazine", amount = 1 } } results = { { type = "item", name = "wood-darts-magazine", amount = 1 } }

View file

@ -17,8 +17,7 @@ data:extend({
{ {
type = "recipe", type = "recipe",
name = "wooden-gear-wheel", name = "wooden-gear-wheel",
category = "crafting", category = "wood-processing-or-assembling",
additional_categories = { "wood-processing" },
ingredients = { { type = "item", name = "lumber", amount = 1 } }, ingredients = { { type = "item", name = "lumber", amount = 1 } },
results = { { type = "item", name = "wooden-gear-wheel", amount = 2 } }, results = { { type = "item", name = "wooden-gear-wheel", amount = 2 } },
allow_productivity = true allow_productivity = true

View file

@ -1,4 +1,4 @@
local recipe = data.raw.recipe["wooden-wall"] local recipe = data.raw.recipe["wooden-wall"]
recipe.ingredients = { { type = "item", name = "lumber", amount = 4 } } recipe.ingredients = { { type = "item", name = "lumber", amount = 4 } }
recipe.results = { { type = "item", name = "wooden-wall", amount = 1 } } recipe.results = { { type = "item", name = "wooden-wall", amount = 1 } }
recipe.additional_categories = { "wood-processing" } recipe.category = "wood-processing-or-assembling"

View file

@ -21,8 +21,7 @@ local drill_item = data.raw["item"]["burner-mining-drill"]
drill_item.icon = Lignumis.graphics .. "icons/burner-mining-drill.png" drill_item.icon = Lignumis.graphics .. "icons/burner-mining-drill.png"
local drill_recipe = data.raw["recipe"]["burner-mining-drill"] local drill_recipe = data.raw["recipe"]["burner-mining-drill"]
drill_recipe.category = "crafting" drill_recipe.category = "wood-processing-or-assembling"
drill_recipe.additional_categories = { "wood-processing" }
drill_recipe.ingredients = { drill_recipe.ingredients = {
{ type = "item", name = "stone-furnace", amount = 1 }, { type = "item", name = "stone-furnace", amount = 1 },
{ type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 2 or 3 }, { type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 2 or 3 },
@ -49,7 +48,7 @@ burner_inserter_recipe.ingredients = {
{ type = "item", name = "lumber", amount = 1 } { type = "item", name = "lumber", amount = 1 }
} }
if settings.startup["lignumis-lumber-mill-more-recipes"].value then if settings.startup["lignumis-lumber-mill-more-recipes"].value then
burner_inserter_recipe.additional_categories = { "wood-processing" } burner_inserter_recipe.category = "wood-processing-or-assembling"
end end
@ -132,7 +131,10 @@ if mods["Diversitree"] then
data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900 data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900
end end
table.insert(data.raw["assembling-machine"]["assembling-machine-1"].crafting_categories, "wood-processing-or-assembling")
table.insert(data.raw["assembling-machine"]["assembling-machine-1"].crafting_categories, "organic-or-assembling") table.insert(data.raw["assembling-machine"]["assembling-machine-1"].crafting_categories, "organic-or-assembling")
table.insert(data.raw["assembling-machine"]["assembling-machine-2"].crafting_categories, "wood-processing-or-assembling")
table.insert(data.raw["assembling-machine"]["assembling-machine-3"].crafting_categories, "wood-processing-or-assembling")
-- Disable vanilla early game recipes -- Disable vanilla early game recipes
@ -334,3 +336,35 @@ if settings.startup["lignumis-fulgora-wood"].value then
recycler.result_inventory_size = recycling_result_count recycler.result_inventory_size = recycling_result_count
end end
end end
-- Fix item weights
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("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)
set_default_weight("steam-turbine", 10)
set_default_weight("battery", 400)

View file

@ -1,2 +1 @@
require("wood-logistics")
require("wood-military") require("wood-military")

View file

@ -1,20 +0,0 @@
if not mods["wood-logistics"] then
return
end
local Settings = require("__cf-lib__/settings/Settings")
local force = Settings.force
local default = Settings.default
force("wood-logistics-lumber", true)
force("wood-logistics-lumber-mill", true)
force("wood-logistics-woodtronics", false)
force("wood-logistics-belts", true)
force("wood-logistics-belts-modify", false)
default("wood-logistics-belts-circuits", true)
force("wood-logistics-inserter", false)
default("wood-logistics-rail-cost", 0)
default("wood-logistics-cargo-wagon", false)
force("wood-logistics-assembling-machine", false)
default("wood-logistics-nerf-small-electric-pole", false)
force("wood-logistics-repair-pack-cost", 0)

View file

@ -2,12 +2,10 @@ if not mods["wood-military"] then
return return
end end
local Settings = require("__cf-lib__/settings/Settings") data.raw["bool-setting"]["wood-military-rockets"].default_value = false
local force = Settings.force data.raw["bool-setting"]["wood-military-artillery"].default_value = false
local default = Settings.default data.raw["bool-setting"]["wood-military-damage-buff"].default_value = false
data.raw["bool-setting"]["wood-military-armor"].hidden = true
default("wood-military-rockets", false) data.raw["bool-setting"]["wood-military-armor"].forced_value = true
default("wood-military-artillery", false) data.raw["bool-setting"]["wood-military-nerf-start"].hidden = true
default("wood-military-damage-buff", false) data.raw["bool-setting"]["wood-military-nerf-start"].forced_value = true
force("wood-military-armor", true)
force("wood-military-nerf-start", true)