Fix errors with initialization

This commit is contained in:
Simon Brodtmann 2025-01-20 23:14:42 +01:00
parent c660647341
commit 87b36d88d1

View file

@ -22,7 +22,10 @@ end
script.on_init(function()
if game.tick > 0 then
storage.init = true
storage.init = {}
for _, player in pairs(game.players) do
storage.init[player.index] = true
end
game.print { "", { "lignumis.start-new-game" } }
return
end
@ -59,43 +62,50 @@ script.on_event(e.on_player_created, function(event)
nauvis.clear()
end
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
local surface = storage.surface
if player then
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis")
if player.character then
player.character.destructible = false
local main_inventory = player.character.get_main_inventory()
main_inventory.insert({ name = "burner-mining-drill", count = 1 })
main_inventory.insert({ name = "burner-agricultural-tower", count = 2 })
end
if remote.interfaces.freeplay then
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")
local ship_items = { ["wood-darts-magazine"] = 2 }
local debris_items = { ["lumber"] = 8 }
crash_site.create_crash_site(surface, { -5, -6 }, ship_items, debris_items,
table.deepcopy(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()
storage.crash_site_cutscene_active = true
crash_site.create_cutscene(player, { -5, -4 })
end
if storage.init and type(storage.init) == "boolean" then
storage.init = {
[event.player_index] = true
}
else
storage.init = {}
end
if not storage.init then
storage.init = true
local player = game.get_player(event.player_index) --[[@as LuaPlayer]]
local surface = storage.surface or game.planets["lignumis"].surface
if not storage.init[event.player_index] then
storage.init[event.player_index] = true
chart_starting_area()
if player then
if player.character then
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis")
player.character.destructible = false
local main_inventory = player.character.get_main_inventory()
main_inventory.insert({ name = "burner-mining-drill", count = 1 })
main_inventory.insert({ name = "burner-agricultural-tower", count = 2 })
end
if remote.interfaces.freeplay then
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")
local ship_items = { ["wood-darts-magazine"] = 2 }
local debris_items = { ["lumber"] = 8 }
crash_site.create_crash_site(surface, { -5, -6 }, ship_items, debris_items,
table.deepcopy(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()
storage.crash_site_cutscene_active = true
crash_site.create_cutscene(player, { -5, -4 })
end
end
end
end)