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() | script.on_init(function() | ||||||
|     if game.tick > 0 then |     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" } } |         game.print { "", { "lignumis.start-new-game" } } | ||||||
|         return |         return | ||||||
|     end |     end | ||||||
|  | @ -59,43 +62,50 @@ script.on_event(e.on_player_created, function(event) | ||||||
|         nauvis.clear() |         nauvis.clear() | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     local player = game.get_player(event.player_index) --[[@as LuaPlayer]] |     if storage.init and type(storage.init) == "boolean" then | ||||||
|     local surface = storage.surface |         storage.init = { | ||||||
| 
 |             [event.player_index] = true | ||||||
|     if player then |         } | ||||||
|         player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis") |     else | ||||||
| 
 |         storage.init = {} | ||||||
|         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 |  | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     if not storage.init then |     local player = game.get_player(event.player_index) --[[@as LuaPlayer]] | ||||||
|         storage.init = true |     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() |         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 | ||||||
| end) | end) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Brodtmann
						Simon Brodtmann