This commit is contained in:
Simon Brodtmann 2025-01-02 22:39:57 +01:00
parent e13a5f432a
commit 0ae7768d9f
38 changed files with 209 additions and 70 deletions

View file

@ -4,8 +4,12 @@ Dive into the world of Lignumis, a moon of Nauvis offering only the most basic t
## Todo
- Move wood and lumber to its own fuel category
- Make seeds burnable again
- Make rocket silo work (incl. transition to Nauvis)
- Make enemies work
- Add ammo turret
- Add recipe for moist stromatolite remnants for regular furnace
- ~~Make enemies work~~
- Make mod "Wooden logistics" optional
- Balance pollution (noise)
- Tweak enemies + warfare (add damage research)
- Add vent for steam
@ -16,7 +20,6 @@ Dive into the world of Lignumis, a moon of Nauvis offering only the most basic t
- Balance resources
- Force start with wooden ammo
- Add robots (simple robots inspired by https://mods.factorio.com/mod/copper-construction-robots; gold and copper variant)
- Make mod "Wooden logistics" optional
- Remove stromatolite (non-plant)?
- Guarantee spawn of gold in starting area
- Fix pipe graphics on desiccation furnace

16
lignumis/changelog.txt Normal file
View file

@ -0,0 +1,16 @@
---------------------------------------------------------------------------------------------------
Version: 0.0.2
Date: 02.01.2025
Changes:
- Add Basic gun turret
- Remove Wood to landfill
- Move vanilla landfill to Lignumis
- Prevent deadlock by not using Lignumis science packs after going to Nauvis
Bug Fixes:
- Fix some typos
- Fix item orders
- Fix crafting categories of assemblers
- Fix initial fuel for Long handed inserter
- Fix minable results for gold pipes
- Fix items not shown in filter selection
- Fix enemies not attacking

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View file

@ -1,6 +1,6 @@
{
"name": "lignumis",
"version": "0.0.1",
"version": "0.0.2",
"title": "Lignumis",
"description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.",
"author": "cackling fiend",
@ -14,7 +14,6 @@
"wood-logistics >= 2.1.1",
"Burner-Leech-Fork >= 1.0.0",
"mf-buildings >= 0.1.0",
"mf-logistics >= 0.1.0",
"wood-to-landfill-spaceage >= 1.0.2"
"mf-logistics >= 0.1.0"
]
}

View file

@ -25,6 +25,7 @@ gold-storage-tank=Gold storage tank
desiccation-furnace=Desiccation furnace
steam-assembling-machine=Steam assembling machine
provisional-rocket-silo=Provisional rocket silo
basic-gun-turret=Basic gun turret
[item-name]
wooden-gear-wheel=Wooden gear wheel
@ -62,6 +63,7 @@ steam-automation=Steam automation
steam-science-pack=Steam science pack
wood-liquefaction=Wood liquefaction
provisional-rocketry=Provisional rocketry
basic-gun-turret=Basic gun turret
[tile-name]
wood-floor=Wood floor

View file

@ -0,0 +1,85 @@
local item_sounds = require("__base__.prototypes.item_sounds")
local turret = table.deepcopy(data.raw["ammo-turret"]["gun-turret"])
turret.name = "basic-gun-turret"
turret.icon = "__lignumis__/graphics/icons/basic-gun-turret.png"
turret.minable.result = "basic-gun-turret"
turret.max_health = 300
turret.rotation_speed = 0.01
turret.attacking_speed = 0.35
turret.folded_animation.layers[1].filename = "__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-raising.png"
turret.preparing_animation.layers[1].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-raising.png"
turret.prepared_animation.layers[1].stripes[1].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-1.png"
turret.prepared_animation.layers[1].stripes[2].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-2.png"
turret.prepared_animation.layers[1].stripes[3].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-3.png"
turret.prepared_animation.layers[1].stripes[4].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-4.png"
turret.attacking_animation.layers[1].stripes[1].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-1.png"
turret.attacking_animation.layers[1].stripes[2].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-2.png"
turret.attacking_animation.layers[1].stripes[3].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-3.png"
turret.attacking_animation.layers[1].stripes[4].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-shooting-4.png"
turret.folding_animation.layers[1].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-raising.png"
turret.graphics_set.base_visualisation.animation.layers[1].filename =
"__lignumis__/graphics/entity/basic-gun-turret/basic-gun-turret-base.png"
turret.attack_parameters.range = 16
local turret_item = {
type = "item",
name = "basic-gun-turret",
icon = "__lignumis__/graphics/icons/basic-gun-turret.png",
subgroup = "turret",
order = "b[turret]-0[basic-gun-turret]",
inventory_move_sound = item_sounds.turret_inventory_move,
pick_sound = item_sounds.turret_inventory_pickup,
drop_sound = item_sounds.turret_inventory_move,
place_result = "basic-gun-turret",
stack_size = 50
}
local turret_recipe = {
type = "recipe",
name = "basic-gun-turret",
enabled = false,
energy_required = 8,
ingredients = {
{ type = "item", name = "wooden-gear-wheel", amount = 10 },
{ type = "item", name = "lumber", amount = 10 },
{ type = "item", name = "gold-plate", amount = 20 }
},
results = { { type = "item", name = "basic-gun-turret", amount = 1 } }
}
local turret_technology = {
type = "technology",
name = "basic-gun-turret",
icon = "__lignumis__/graphics/technology/basic-gun-turret.png",
icon_size = 256,
effects = {
{
type = "unlock-recipe",
recipe = "basic-gun-turret"
}
},
prerequisites = { "wood-science-pack" },
unit = {
count = 10,
ingredients = { { "wood-science-pack", 1 } },
time = 10
}
}
data:extend({
turret,
turret_item,
turret_recipe,
turret_technology
})

View file

@ -5,12 +5,17 @@ assembling_machine.name = "burner-assembling-machine"
assembling_machine.icon = "__lignumis__/graphics/icons/burner-assembling-machine.png"
assembling_machine.minable.result = "burner-assembling-machine"
assembling_machine.next_upgrade = "steam-assembling-machine"
assembling_machine.corpses = "burner-assembling-machine-remnants"
assembling_machine.corpse = "burner-assembling-machine-remnants"
assembling_machine.resistances = nil
assembling_machine.graphics_set.animation.layers[1].filename =
"__lignumis__/graphics/entity/burner-assembling-machine.png"
assembling_machine.crafting_categories = { "crafting", "basic-crafting", "organic-or-assembling",
"wood-processing-or-assembling" }
assembling_machine.crafting_categories = {
"crafting",
"basic-crafting",
"organic-or-assembling",
"wood-processing-or-assembling",
"crafting-or-carpentry"
}
assembling_machine.crafting_speed = 0.25
assembling_machine.energy_source = {
type = "burner",

View file

@ -11,13 +11,15 @@ long_handed_inserter.hand_base_picture.filename = "__lignumis__/graphics/entity/
long_handed_inserter.hand_closed_picture.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-hand-closed.png"
long_handed_inserter.hand_open_picture.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-hand-open.png"
long_handed_inserter.platform_picture.sheet.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-platform.png"
long_handed_inserter.energy_per_movement = "90kJ"
long_handed_inserter.energy_per_rotation = "90kJ"
long_handed_inserter.energy_per_movement = "100kJ"
long_handed_inserter.energy_per_rotation = "100kJ"
long_handed_inserter.energy_source = {
type = "burner",
fuel_categories = { "chemical" },
effectivity = 1,
fuel_inventory_size = 1,
initial_fuel = "wood",
initial_fuel_percent = 0.5,
light_flicker = { color = { 0, 0, 0 } },
smoke = {
{
@ -48,7 +50,7 @@ data:extend({
icon = "__lignumis__/graphics/icons/burner-long-handed-inserter.png",
subgroup = "inserter",
color_hint = { text = "L" },
order = "c[0-burner-long-handed-inserter]",
order = "b0[burner-long-handed-inserter]",
inventory_move_sound = item_sounds.inserter_inventory_move,
pick_sound = item_sounds.inserter_inventory_pickup,
drop_sound = item_sounds.inserter_inventory_move,

View file

@ -15,5 +15,6 @@ require("steam-assembling-machine")
require("steam-science")
require("wood-liquefaction")
require("wooden-rocket-silo")
require("basic-gun-turret")
require("noise")

View file

@ -32,7 +32,7 @@ local furnace_item = {
{ icon = "__base__/graphics/icons/fluid/steam.png", scale = 0.25, shift = { 8, -8 } }
},
subgroup = "smelting-machine",
order = "a[furnace]-ab[desiccation]",
order = "a[stone-furnace]-ab[desiccation]",
inventory_move_sound = item_sounds.brick_inventory_move,
pick_sound = item_sounds.brick_inventory_pickup,
drop_sound = item_sounds.brick_inventory_move,

View file

@ -7,7 +7,7 @@ data:extend({
icon = "__lignumis__/graphics/icons/gold-plate.png",
subgroup = "raw-material",
color_hint = { text = "C" },
order = "a[smelting]-b[gold-plate]",
order = "a[smelting]-0[gold-plate]",
inventory_move_sound = item_sounds.metal_small_inventory_move,
pick_sound = item_sounds.metal_small_inventory_pickup,
drop_sound = item_sounds.metal_small_inventory_move,
@ -27,7 +27,7 @@ data:extend({
name = "gold-cable",
icon = "__lignumis__/graphics/icons/gold-cable.png",
subgroup = "intermediate-product",
order = "a[basic-intermediates]-c[gold-cable]",
order = "a[basic-intermediates]-b0[gold-cable]",
inventory_move_sound = item_sounds.wire_inventory_move,
pick_sound = item_sounds.wire_inventory_pickup,
drop_sound = item_sounds.wire_inventory_move,

View file

@ -42,6 +42,7 @@ pipe.icon = "__lignumis__/graphics/icons/gold-pipe.png"
pipe.corpse = "gold-pipe-remnants"
pipe.next_upgrade = "pipe"
pipe.fluid_box.volume = 50
pipe.minable.result = "gold-pipe"
pipe.fluid_box.pipe_covers.north.layers[1].filename = "__lignumis__/graphics/entity/gold-pipe/gold-pipe-cover-north.png"
pipe.fluid_box.pipe_covers.east.layers[1].filename = "__lignumis__/graphics/entity/gold-pipe/gold-pipe-cover-east.png"
@ -126,6 +127,7 @@ pipe_to_ground.corpse = "gold-pipe-to-ground-remnants"
pipe_to_ground.next_upgrade = "pipe-to-ground"
pipe_to_ground.fluid_box.volume = 50
pipe_to_ground.fluid_box.pipe_connections[2].max_underground_distance = 6
pipe_to_ground.minable.result = "gold-pipe-to-ground"
pipe_to_ground.fluid_box.pipe_covers.north.layers[1].filename =
"__lignumis__/graphics/entity/gold-pipe/gold-pipe-cover-north.png"

View file

@ -59,6 +59,7 @@ data:extend({
{ size = 64, filename = "__lignumis__/graphics/icons/gold-ore-2.png", scale = 0.5, mipmap_count = 4 },
{ size = 64, filename = "__lignumis__/graphics/icons/gold-ore-3.png", scale = 0.5, mipmap_count = 4 },
},
flags = { "always-show" },
subgroup = "raw-resource",
order = "f[gold-ore]",
inventory_move_sound = item_sounds.resource_inventory_move,

View file

@ -174,6 +174,7 @@ local seed = {
{ size = 64, filename = "__lignumis__/graphics/icons/gold-stromatolite-seed-4.png", scale = 0.5, mipmap_count = 4 },
{ size = 64, filename = "__lignumis__/graphics/icons/gold-stromatolite-seed-5.png", scale = 0.5, mipmap_count = 4 }
},
flags = { "always-show" },
subgroup = "agriculture-processes",
order = "a[seeds]-d[gold-stromatolite-seed]",
plant_result = "gold-stromatolite-plant",
@ -196,6 +197,7 @@ local bacteria = {
{ size = 64, filename = "__lignumis__/graphics/icons/gold-bacteria-2.png", scale = 0.5, mipmap_count = 4 },
{ size = 64, filename = "__lignumis__/graphics/icons/gold-bacteria-3.png", scale = 0.5, mipmap_count = 4 },
},
flags = { "always-show" },
subgroup = "agriculture-processes",
order = "b[agriculture]-e[gold-bacteria]",
inventory_move_sound = space_age_item_sounds.agriculture_inventory_move,

View file

@ -40,7 +40,7 @@ data:extend({
surface_properties = {
["day-night-cycle"] = 1 * minute
},
steroid_spawn_influence = 1,
asteroid_spawn_influence = 1,
asteroid_spawn_definitions = asteroid_util.spawn_definitions(nauvis_lignumis, 0.9),
surface_render_parameters = {
clouds = effects.default_clouds_effect_properties()

View file

@ -18,6 +18,14 @@ data:extend({
data.raw["unit-spawner"]["spitter-spawner"].absorptions_per_second.noise = { absolute = 20, proportional = 0.01 }
data.raw["unit-spawner"]["biter-spawner"].absorptions_per_second.noise = { absolute = 20, proportional = 0.01 }
data.raw["unit"]["small-biter"].absorptions_to_join_attack.noise = 4
data.raw["unit"]["medium-biter"].absorptions_to_join_attack.noise = 20
data.raw["unit"]["big-biter"].absorptions_to_join_attack.noise = 80
data.raw["unit"]["behemoth-biter"].absorptions_to_join_attack.noise = 400
data.raw["unit"]["small-spitter"].absorptions_to_join_attack.noise = 4
data.raw["unit"]["medium-spitter"].absorptions_to_join_attack.noise = 12
data.raw["unit"]["big-spitter"].absorptions_to_join_attack.noise = 30
data.raw["unit"]["behemoth-spitter"].absorptions_to_join_attack.noise = 200
for _, tree in pairs(data.raw.tree) do
if tree.emissions_per_second then

View file

@ -11,8 +11,14 @@ assembling_machine.resistances = nil
assembling_machine.graphics_set = util.copy(data.raw["assembling-machine"]["assembling-machine-1"].graphics_set)
assembling_machine.graphics_set.animation.layers[1].filename =
"__lignumis__/graphics/entity/steam-assembling-machine.png"
assembling_machine.crafting_categories = { "crafting", "basic-crafting", "organic-or-assembling",
"wood-processing-or-assembling", "crafting-with-fluid" }
assembling_machine.crafting_categories = {
"crafting",
"basic-crafting",
"organic-or-assembling",
"wood-processing-or-assembling",
"crafting-with-fluid",
"crafting-or-carpentry"
}
assembling_machine.crafting_speed = 0.5
assembling_machine.energy_usage = "25kW"
assembling_machine.energy_source = {

View file

@ -5,19 +5,17 @@ data:extend({
type = "lab",
name = "wood-lab",
icon = "__lignumis__/graphics/icons/wood-lab.png",
flags = {"placeable-player", "player-creation"},
minable = {mining_time = 0.2, result = "wood-lab"},
flags = { "placeable-player", "player-creation" },
minable = { mining_time = 0.2, result = "wood-lab" },
fast_replaceable_group = "lab",
max_health = 150,
corpse = "lab-remnants",
dying_explosion = "lab-explosion",
collision_box = {{-1.2, -1.2}, {1.2, 1.2}},
selection_box = {{-1.5, -1.5}, {1.5, 1.5}},
collision_box = { { -1.2, -1.2 }, { 1.2, 1.2 } },
selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } },
damaged_trigger_effect = util.copy(data.raw.lab["lab"].damaged_trigger_effect),
on_animation =
{
layers =
{
on_animation = {
layers = {
{
filename = "__lignumis__/graphics/entity/wood-lab.png",
width = 194,
@ -63,10 +61,8 @@ data:extend({
}
}
},
off_animation =
{
layers =
{
off_animation = {
layers = {
{
filename = "__lignumis__/graphics/entity/wood-lab.png",
width = 194,
@ -91,8 +87,7 @@ data:extend({
}
}
},
working_sound =
{
working_sound = {
sound = { filename = "__base__/sound/lab.ogg", volume = 0.7, modifiers = { volume_multiplier("main-menu", 2.2), volume_multiplier("tips-and-tricks", 0.8) } },
audible_distance_modifier = 0.7,
fade_in_ticks = 4,
@ -101,34 +96,30 @@ data:extend({
impact_category = "wood",
open_sound = { filename = "__base__/sound/open-close/lab-open.ogg", volume = 0.6 },
close_sound = { filename = "__base__/sound/open-close/lab-close.ogg", volume = 0.6 },
energy_source =
{
energy_source = {
type = "burner",
fuel_categories = {"chemical"},
fuel_categories = { "chemical" },
effectivity = 1,
fuel_inventory_size = 1,
emissions_per_minute = { pollution = 12, noise = 1 },
light_flicker = {color = {0,0,0}},
smoke =
{
light_flicker = { color = { 0, 0, 0 } },
smoke = {
{
name = "smoke",
deviation = {0.1, 0.1},
deviation = { 0.1, 0.1 },
frequency = 3
}
}
},
energy_usage = "150kW",
researching_speed = 0.5,
inputs =
{
inputs = {
"wood-science-pack",
"steam-science-pack"
},
icons_positioning =
{
{inventory_index = defines.inventory.lab_modules, shift = {0, 0.9}},
{inventory_index = defines.inventory.lab_input, shift = {0, 0}, max_icons_per_row = 4, separation_multiplier = 1/1.1}
icons_positioning = {
{ inventory_index = defines.inventory.lab_modules, shift = { 0, 0.9 } },
{ inventory_index = defines.inventory.lab_input, shift = { 0, 0 }, max_icons_per_row = 4, separation_multiplier = 1 / 1.1 }
},
},
{
@ -136,7 +127,7 @@ data:extend({
name = "wood-lab",
icon = "__lignumis__/graphics/icons/wood-lab.png",
subgroup = "production-machine",
order = "z[lab]",
order = "y0[lab]",
inventory_move_sound = item_sounds.lab_inventory_move,
pick_sound = item_sounds.lab_inventory_pickup,
drop_sound = item_sounds.lab_inventory_move,

View file

@ -7,7 +7,7 @@ data:extend({
name = "wooden-gear-wheel",
icon = "__lignumis__/graphics/icons/wooden-gear-wheel.png",
subgroup = "intermediate-product",
order = "a[basic-intermediates]-a[wooden-gear-wheel]",
order = "a[basic-intermediates]-0[wooden-gear-wheel]",
inventory_move_sound = item_sounds.wood_inventory_move,
pick_sound = item_sounds.wood_inventory_pickup,
drop_sound = item_sounds.wood_inventory_move,

View file

@ -1,4 +1,3 @@
require("vanilla")
require("Wood-Walls")
require("wood-logistics")
require("landfill")

View file

@ -1,7 +0,0 @@
local landfill_tech = data.raw.technology["wood_to_landfill"]
landfill_tech.prerequisites = { "burner-automation" }
landfill_tech.unit = {
count = 50,
ingredients = { { "wood-science-pack", 1 } },
time = 15
}

View file

@ -91,12 +91,12 @@ local electronics_technology = data.raw.technology["electronics"]
electronics_technology.prerequisites = { "copper-processing" }
electronics_technology.research_trigger = nil
electronics_technology.unit = {
count = 10,
count = 50,
ingredients = {
{ "wood-science-pack", 1 },
{ "steam-science-pack", 1 }
},
time = 10
time = 15
}
local steam_power_technology = data.raw.technology["steam-power"]
@ -110,3 +110,11 @@ steam_power_technology.unit = {
},
time = 15
}
local landfill_technology = data.raw.technology["landfill"]
landfill_technology.prerequisites = { "burner-automation" }
landfill_technology.unit = {
count = 50,
ingredients = { { "wood-science-pack", 1 } },
time = 15
}

View file

@ -65,11 +65,19 @@ data:extend({
}
},
prerequisites = { "planet-discovery-nauvis" },
research_trigger = {
type = "craft-item",
item = "iron-ore",
count = 10
unit = {
count = 50,
ingredients = {
{ "wood-science-pack", 1 },
{ "steam-science-pack", 1 }
},
time = 15
}
--research_trigger = {
-- type = "craft-item",
-- item = "iron-ore",
-- count = 10
--}
},
{
type = "technology",
@ -88,11 +96,19 @@ data:extend({
}
},
prerequisites = { "planet-discovery-nauvis" },
research_trigger = {
type = "craft-item",
item = "copper-ore",
count = 10
unit = {
count = 50,
ingredients = {
{ "wood-science-pack", 1 },
{ "steam-science-pack", 1 }
},
time = 15
}
--research_trigger = {
-- type = "craft-item",
-- item = "copper-ore",
-- count = 10
--}
},
{
type = "technology",

Binary file not shown.

Binary file not shown.