Fix errors with initialization
This commit is contained in:
parent
c660647341
commit
87b36d88d1
1 changed files with 45 additions and 35 deletions
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue