Compare commits

..

1 commit

Author SHA1 Message Date
15d99aa45b Added order to subgroup
Fixes an issue with Recycling in Factoriopedia that expects all subgroups to have an order.
https://mods.factorio.com/mod/recycling-factoriopedia
2025-11-24 18:26:35 +01:00
31 changed files with 320 additions and 454 deletions

View file

@ -1,21 +1,4 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.0.76
Date: 12.12.2025
Changes:
- Add compatibility for "Canal Excavator" (thanks jurgy)
- Add compatibility for "Wood Logistics"
- Diversitree: Improve compatibility
- Use additional_categories for wood processing
---------------------------------------------------------------------------------------------------
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:
@ -100,7 +83,7 @@ Version: 1.0.62
Date: 02.09.2025 Date: 02.09.2025
Changes: Changes:
- Add spanish locales (thanks DFOXpro) - Add spanish locales (thanks DFOXpro)
- Add compatibility for "Alien Biomes" (thanks Chromebomb) - Add compatibility for Alien Biomes (thanks Chromebomb)
- The lumber mill can be built on Vulcanus again - The lumber mill can be built on Vulcanus again
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.0.61 Version: 1.0.61

View file

@ -1,6 +1,6 @@
{ {
"name": "lignumis", "name": "lignumis",
"version": "1.0.76", "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,14 +12,14 @@
"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",
@ -27,24 +27,23 @@
"?aai-loaders", "?aai-loaders",
"?aai-loaders-sane", "?aai-loaders-sane",
"?any-planet-start", "?any-planet-start",
"?atan-nuclear-science",
"?crushing-industry", "?crushing-industry",
"?Diversitree",
"?fulgora-coralmium-agriculture", "?fulgora-coralmium-agriculture",
"?gleba-reborn",
"?hot-metals >= 1.1.0", "?hot-metals >= 1.1.0",
"?Krastorio2-spaced-out",
"?lane-splitters", "?lane-splitters",
"? wood-industry", "?metal-and-stars",
"? wood-military >= 2.3.3",
"? canal-excavator >= 1.9.0",
"? wood-logistics",
"(?) atan-nuclear-science",
"(?) Diversitree",
"(?) gleba-reborn",
"(?) Krastorio2-spaced-out",
"(?) metal-and-stars",
"(?)secretas", "(?)secretas",
"(?)Wood_Gasification_updated", "(?)Wood_Gasification_updated",
"?wood-industry",
"?wood-military >= 2.3.3",
"!apm_power_ldinc", "!apm_power_ldinc",
"!early-agriculture", "!early-agriculture",
"!planet-picker", "!planet-picker",
"!wood-logistics",
"!wood-universe-modpack", "!wood-universe-modpack",
"!rso-mod" "!rso-mod"
] ]

View file

@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Mittelgroßer Lignumis Fünfbein-Zapler
[entity-description] [entity-description]
lumber-mill=Fortschrittliche Maschine zur Holzbearbeitung. lumber-mill=Fortschrittliche Maschine zur Holzbearbeitung.
quality-assembler=High-End-Montagemaschine, die nur die besten Maschinen herstellt. Verleiht 35% zusätzliche Qualität durch den Verbrauch von [item=gold-quality-catalyst]. Die Oberflächenbedingungen und Zutaten bleiben ansonsten unverändert. quality-assembler=High-End-Montagemaschine, die nur die besten Maschinen herstellt. Verleiht 25% zusätzliche Qualität durch den Verbrauch von [item=gold-quality-catalyst]. Die Oberflächenbedingungen und Zutaten bleiben ansonsten unverändert.
gold-stromatolite-plant=Sammle Gold-Stromatolithen für Bakterien, die Gold aus dem Boden anreichern.\n__REMARK_COLOR_BEGIN__Erwarteter Ertrag:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m gold-stromatolite-plant=Sammle Gold-Stromatolithen für Bakterien, die Gold aus dem Boden anreichern.\n__REMARK_COLOR_BEGIN__Erwarteter Ertrag:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m
[equipment-name] [equipment-name]

View file

@ -53,7 +53,7 @@ burner-lamp=Burner lamp
[entity-description] [entity-description]
lumber-mill=Advanced machine to process wood. lumber-mill=Advanced machine to process wood.
quality-assembler=High-end assembler to craft only the finest quality machines. It gives 35% additional quality by consuming [item=gold-quality-catalyst]. Surface conditions and ingredients are otherwise unchanged. quality-assembler=High-end assembler to craft only the finest quality machines. It gives 25% additional quality by consuming [item=gold-quality-catalyst]. Surface conditions and ingredients are otherwise unchanged.
gold-stromatolite-plant=Harvest gold stromatolites for bacteria that enrich gold from the ground.\n__REMARK_COLOR_BEGIN__Expected yield:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m gold-stromatolite-plant=Harvest gold stromatolites for bacteria that enrich gold from the ground.\n__REMARK_COLOR_BEGIN__Expected yield:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m
[equipment-name] [equipment-name]

View file

@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Pentápodo reptante mediano de Lignumis
[entity-description] [entity-description]
lumber-mill=Máquina avanzada para procesar madera. 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 35% de calidad adicional al consumir [item=gold-quality-catalyst]. Por lo demás, las condiciones de la superficie y los ingredientes no cambian. 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 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] [equipment-name]

View file

@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Средний пятиног-ползун Л
[entity-description] [entity-description]
lumber-mill=Продвинутая машина для обработки древесины. lumber-mill=Продвинутая машина для обработки древесины.
quality-assembler=Высококачественный сборочный автомат, создающий только лучшие механизмы. Добавляет 35% дополнительного качества предмету, потребляя [item=gold-quality-catalyst]. Условия поверхности и ингредиенты остаются неизменными. quality-assembler=Высококачественный сборочный автомат, создающий только лучшие механизмы. Добавляет 25% дополнительного качества предмету, потребляя [item=gold-quality-catalyst]. Условия поверхности и ингредиенты остаются неизменными.
gold-stromatolite-plant=Собирайте золотой строматолит для получения бактерий, обогащающих золото из почвы.\n__REMARK_COLOR_BEGIN__Ожидаемая добыча:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m gold-stromatolite-plant=Собирайте золотой строматолит для получения бактерий, обогащающих золото из почвы.\n__REMARK_COLOR_BEGIN__Ожидаемая добыча:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m
[equipment-name] [equipment-name]

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,5 +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")
require("diversitree")

View file

@ -1,12 +0,0 @@
if not mods["Diversitree"] then
return
end
data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900
local tree_plant = data.raw.plant["s6xdvt-fake-tree"]
tree_plant.growth_ticks = 5 * minute
tree_plant.minable.results = { { type = "item", name = "wood", amount = 5 } }
tree_plant.minable.count = nil
tree_plant.surface_conditions[1].min = 900
table.insert(tree_plant.autoplace.tile_restriction, "natural-gold-soil")

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 = {
@ -50,7 +50,7 @@ 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()
@ -72,7 +72,7 @@ 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 } }
@ -80,71 +80,3 @@ if not mods["wood-logistics"] then
}) })
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,7 +1,5 @@
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",
@ -25,8 +23,7 @@ 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 } },
@ -34,6 +31,3 @@ if not mods["wood-logistics"] then
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,11 +1,8 @@
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("")
@ -61,13 +58,13 @@ 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"
} }
}) })
@ -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
@ -105,47 +102,3 @@ if not mods["wood-logistics"] then
recipe = "wood-splitter-electronic-circuit" recipe = "wood-splitter-electronic-circuit"
}) })
end 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

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
@ -111,7 +110,7 @@ for _, tree in pairs(data.raw.tree) do
if not isRegularTree then goto continue end if not isRegularTree then goto continue end
tree.minable.result = nil tree.minable.result = nil
tree.minable.count = nil tree.minable.count = nil
local woodResult = { type = "item", name = "wood", amount = nil, amount_min = 2, amount_max = 8 } local woodResult = { type = "item", name = "wood", amount = nil, amount_min = 2, amount_max = 10 }
if minable.results and #woodResults > 0 then if minable.results and #woodResults > 0 then
table.assign(woodResults[1], woodResult) table.assign(woodResults[1], woodResult)
woodResults[1].amount = nil woodResults[1].amount = nil
@ -128,7 +127,14 @@ tree_plant.minable.count = nil
tree_plant.surface_conditions[1].min = 900 tree_plant.surface_conditions[1].min = 900
table.insert(tree_plant.autoplace.tile_restriction, "natural-gold-soil") table.insert(tree_plant.autoplace.tile_restriction, "natural-gold-soil")
if mods["Diversitree"] then
data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900
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
@ -330,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)