forked from cacklingfiend/lignumis
		
	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
		Add a link
		
	
		Reference in a new issue
	
	 Simon Brodtmann
						Simon Brodtmann