Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Node
- signal connection_status
- var loading_screen = preload("res://ui/loading_screen.tscn")
- func change_scene(next: String, lobby_id: int = 0):
- var screen = loading_screen.instantiate()
- ResourceLoader.load_threaded_request(next)
- get_tree().root.add_child(screen)
- await _fade(screen, "IN")
- _load_progress(lobby_id, next, screen)
- func _load_progress(lobby_id: int, next: String, screen):
- var progress = []
- while true:
- var status = ResourceLoader.load_threaded_get_status(next, progress)
- if status == ResourceLoader.THREAD_LOAD_FAILED:
- print("[LOADER] Loading failed, returning to previous scene.")
- _fade(screen, "OUT")
- break
- if status == ResourceLoader.THREAD_LOAD_LOADED:
- var loaded_scene = ResourceLoader.load_threaded_get(next).instantiate()
- get_tree().root.add_child(loaded_scene)
- _connect_players(loaded_scene, lobby_id)
- await self.connection_status #ISSUE HERE
- print(loaded_scene.status)
- get_tree().current_scene.queue_free()
- get_tree().set_deferred("current_scene", loaded_scene)
- _fade(screen, "OUT")
- break
- return
- func _fade(node, dir: String):
- var tween = get_tree().create_tween().set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_QUINT)
- if dir == "IN":
- tween.tween_property(node.get_node("ColorRect"), "modulate", Color(1,1,1,1), 1.0).from(Color(1,1,1,0))
- await tween.finished
- return
- if dir == "OUT":
- tween.tween_property(node.get_node("ColorRect"), "modulate", Color(1,1,1,0), 1.0).from(Color(1,1,1,1))
- await tween.finished
- node.queue_free()
- func _connect_players(loaded_scene: Node, lobby_id: int):
- var host_id = Steam.getLobbyOwner(lobby_id)
- loaded_scene.connection_status.connect(_connection_status)
- loaded_scene.lobby_id = lobby_id
- if host_id == SteamInit.steam_id:
- loaded_scene.create_socket()
- else:
- loaded_scene.connect_socket(host_id)
- func _connection_status():
- emit_signal("connection_status")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement