0.0.1
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
*.zip
|
||||||
|
.idea
|
50
README.md
|
@ -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
|
@ -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
|
@ -0,0 +1,3 @@
|
||||||
|
require("prototypes/content/data")
|
||||||
|
require("prototypes/integrations/data")
|
||||||
|
require("prototypes/technology")
|
BIN
lignumis/graphics/entity/burner-agricultural-tower-base.png
Normal file
After Width: | Height: | Size: 3.8 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-1-1.png
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-1-2.png
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-10.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-3.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-4.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-5-1.png
Normal file
After Width: | Height: | Size: 4.3 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-5-2.png
Normal file
After Width: | Height: | Size: 4.3 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-5.png
Normal file
After Width: | Height: | Size: 4.3 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-6.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-7-1.png
Normal file
After Width: | Height: | Size: 3 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-7-2.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-7.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-8.png
Normal file
After Width: | Height: | Size: 389 KiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-crane-9.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
BIN
lignumis/graphics/entity/burner-agricultural-tower-remnants.png
Normal file
After Width: | Height: | Size: 131 KiB |
BIN
lignumis/graphics/entity/burner-assembling-machine-remnants.png
Normal file
After Width: | Height: | Size: 244 KiB |
BIN
lignumis/graphics/entity/burner-assembling-machine.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
lignumis/graphics/entity/burner-inserter-hand-base.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
lignumis/graphics/entity/burner-inserter-hand-closed.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/burner-inserter-hand-open.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/burner-inserter-platform.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
lignumis/graphics/entity/burner-inserter-remnants.png
Normal file
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 48 KiB |
BIN
lignumis/graphics/entity/burner-mining-drill-E.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
lignumis/graphics/entity/burner-mining-drill-N.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
lignumis/graphics/entity/burner-mining-drill-S.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
lignumis/graphics/entity/burner-mining-drill-W.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
lignumis/graphics/entity/gold-patch.png
Normal file
After Width: | Height: | Size: 756 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 8.1 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-corner-up-left.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-corner-up-right.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-cover-east.png
Normal file
After Width: | Height: | Size: 4 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-cover-north.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-cover-south.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-cover-west.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-cross.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-ending-down.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-ending-left.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-ending-right.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-ending-up.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-remnants.png
Normal file
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-t-down.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-t-left.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-t-right.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-t-up.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-to-ground-down.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-to-ground-left.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 13 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-to-ground-right.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
lignumis/graphics/entity/gold-pipe/gold-pipe-to-ground-up.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
lignumis/graphics/entity/gold-storage-tank-remnants.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
lignumis/graphics/entity/gold-storage-tank-window-background.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
lignumis/graphics/entity/gold-storage-tank.png
Normal file
After Width: | Height: | Size: 186 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-01.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-02.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-03.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-04.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-05.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-06.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-07.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-08.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-09.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-10.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-11.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-12.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-13.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-14.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-15.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
lignumis/graphics/entity/gold-stromatolite-16.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
lignumis/graphics/entity/lumber-mill-animation-1.png
Normal file
After Width: | Height: | Size: 29 MiB |
BIN
lignumis/graphics/entity/lumber-mill-animation-2.png
Normal file
After Width: | Height: | Size: 7.3 MiB |
BIN
lignumis/graphics/entity/lumber-mill-shadow.png
Normal file
After Width: | Height: | Size: 285 KiB |
BIN
lignumis/graphics/entity/steam-assembling-machine-remnants.png
Normal file
After Width: | Height: | Size: 243 KiB |
BIN
lignumis/graphics/entity/steam-assembling-machine.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
lignumis/graphics/entity/wood-lab-light.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
lignumis/graphics/entity/wood-lab.png
Normal file
After Width: | Height: | Size: 1 MiB |
BIN
lignumis/graphics/entity/wood-splitter-east-top_patch.png
Normal file
After Width: | Height: | Size: 408 KiB |
BIN
lignumis/graphics/entity/wood-splitter-east.png
Normal file
After Width: | Height: | Size: 411 KiB |
BIN
lignumis/graphics/entity/wood-splitter-north.png
Normal file
After Width: | Height: | Size: 619 KiB |
BIN
lignumis/graphics/entity/wood-splitter-remnants.png
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
lignumis/graphics/entity/wood-splitter-south.png
Normal file
After Width: | Height: | Size: 555 KiB |
BIN
lignumis/graphics/entity/wood-splitter-west-top_patch.png
Normal file
After Width: | Height: | Size: 392 KiB |
BIN
lignumis/graphics/entity/wood-splitter-west.png
Normal file
After Width: | Height: | Size: 441 KiB |
BIN
lignumis/graphics/entity/wood-transport-belt-remnants.png
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
lignumis/graphics/entity/wood-transport-belt.png
Normal file
After Width: | Height: | Size: 1.6 MiB |