This commit is contained in:
Simon Brodtmann 2025-01-02 14:56:19 +01:00
parent 7f09f1a44b
commit e13a5f432a
361 changed files with 3962 additions and 1 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
*.zip
.idea

View file

@ -1,2 +1,50 @@
# Lignumis # Lignumis
Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies. Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.
## Todo
- Move wood and lumber to its own fuel category
- Make rocket silo work (incl. transition to Nauvis)
- Make enemies work
- Balance pollution (noise)
- Tweak enemies + warfare (add damage research)
- Add vent for steam
- Add recipe to void gold seeds
- Adjust vanilla technologies
- Add end-game stuff
- Add burner radar
- 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
- Change color of gold soil
- Ban huge rocks with coal from Nauvis
- Increase default moisture bias
## Credits
Hurricane:
- Lumber mill
- Core extractor
malcolmriley (https://github.com/malcolmriley/unused-renders)
- Gold seed
- Moist stromatolite remnant
PreLeyZero (https://mods.factorio.com/mod/exotic-industries)
- Gold patch
planetfall (https://mods.factorio.com/mod/ThemTharHills)
- Gold ore
- Gold wire
CG-Matt (https://mods.factorio.com/mod/simple-wood-liquefaction)
- Wood liquefaction

153
lignumis/control.lua Normal file
View file

@ -0,0 +1,153 @@
local crash_site = require("crash-site")
local util = require("util")
local e = defines.events
local function chart_starting_area()
local r = 200
local force = game.forces.player
local surface = storage.surface
local origin = force.get_spawn_position(surface)
force.chart(surface, { { origin.x - r, origin.y - r }, { origin.x + r, origin.y + r } })
end
local function correct_space_locations()
local force = game.forces.player
force.unlock_space_location("lignumis")
if not force.technologies["planet-discovery-nauvis"].researched then
force.lock_space_location("nauvis")
end
end
script.on_init(function()
if game.tick > 0 then
storage.init = true
game.print { "", { "lignumis.start-new-game" } }
return
end
if remote.interfaces.freeplay then
storage.disable_crashsite = remote.call("freeplay", "get_disable_crashsite")
remote.call("freeplay", "set_disable_crashsite", true)
remote.call("freeplay", "set_skip_intro", true)
end
correct_space_locations()
storage.surface = game.planets["lignumis"].create_surface()
storage.surface.request_to_generate_chunks({ 0, 0 }, 3)
storage.surface.force_generate_chunk_requests()
end)
script.on_event(e.on_player_created, function(event)
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
local surface = storage.surface
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1) --[[@as MapPosition]], "lignumis")
if not storage.nauvis_visited then
local nauvis = game.get_surface("nauvis") --[[@as LuaSurface]]
nauvis.clear()
end
if not storage.init then
storage.init = true
storage.crashed_ship_items = remote.call("freeplay", "get_ship_items")
storage.crashed_debris_items = remote.call("freeplay", "get_debris_items")
storage.crashed_ship_parts = remote.call("freeplay", "get_ship_parts")
storage.starting_message = remote.call("freeplay", "get_custom_intro_message")
log(serpent.block(storage.crashed_ship_items))
log(serpent.block(storage.crashed_debris_items))
log(serpent.block(storage.crashed_ship_parts))
local ship_items = { ["wood-darts-magazine"] = 8 }
local debris_items = { ["lumber"] = 8 }
surface.daytime = 0.7
crash_site.create_crash_site(surface, { -5, -6 }, ship_items, debris_items, util.copy(storage.crashed_ship_parts))
util.remove_safe(player, storage.crashed_ship_items)
util.remove_safe(player, storage.crashed_debris_items)
player.get_main_inventory().sort_and_merge()
if player.character then
player.character.destructible = false
end
storage.crash_site_cutscene_active = true
crash_site.create_cutscene(player, { -5, -4 })
chart_starting_area()
end
end)
script.on_event(e.on_player_changed_surface, function(event)
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
if player.surface.name == "nauvis" then
storage.nauvis_visited = true
end
end)
local get_starting_message = function()
if storage.custom_intro_message then
return storage.custom_intro_message
end
if script.active_mods["space-age"] then
return { "msg-intro-space-age" }
end
return { "msg-intro" }
end
local function show_intro_message(player)
if storage.skip_intro then
return
end
if game.is_multiplayer() then
player.print(get_starting_message())
else
game.show_message_dialog { text = get_starting_message() }
end
end
script.on_event(e.on_cutscene_waypoint_reached, function(event)
if not storage.crash_site_cutscene_active then
return
end
if not crash_site.is_crash_site_cutscene(event) then
return
end
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
player.exit_cutscene()
show_intro_message(player)
end)
script.on_event("crash-site-skip-cutscene", function(event)
if not storage.crash_site_cutscene_active then
return
end
if event.player_index ~= 1 then
return
end
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
if player.controller_type == defines.controllers.cutscene then
player.exit_cutscene()
end
end)
script.on_event(e.on_cutscene_cancelled, function(event)
if not storage.crash_site_cutscene_active then
return
end
if event.player_index ~= 1 then
return
end
storage.crash_site_cutscene_active = nil
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
if player.gui.screen.skip_cutscene_label then
player.gui.screen.skip_cutscene_label.destroy()
end
if player.character then
player.character.destructible = true
end
player.zoom = 1.5
end)

3
lignumis/data.lua Normal file
View file

@ -0,0 +1,3 @@
require("prototypes/content/data")
require("prototypes/integrations/data")
require("prototypes/technology")

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Some files were not shown because too many files have changed in this diff Show more