From 9c41eaa3b41e7a7771a5222ea1a108065c856373 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Fri, 10 Dec 2021 12:53:13 -0600 Subject: [PATCH] Still need to centralize a lot of stuff into the new module --- scripts/global/global.gd | 7 +---- .../global/signalled_webrtc_multiplayer.gd | 14 ++++----- scripts/screens/lobby_browser.gd | 26 ++++++++++------- scripts/screens/multiplayer_lobby.gd | 29 ++++++++++--------- 4 files changed, 37 insertions(+), 39 deletions(-) diff --git a/scripts/global/global.gd b/scripts/global/global.gd index 87bf87f..46a7cc6 100644 --- a/scripts/global/global.gd +++ b/scripts/global/global.gd @@ -11,9 +11,7 @@ onready var onetime_cmd_flags = { } func _ready(): - client.connect("signaller_connected", self, "_signaller_connected") add_child(client) - for flag in onetime_cmd_flags.keys(): if flag in OS.get_cmdline_args(): onetime_cmd_flags[flag] = true @@ -37,12 +35,9 @@ func start_singleplayer_game(): func goto_game(): goto_scene("game") -func _signaller_connected(): - goto_scene("lobby_browser") - func lobby_browser(): client.close() - client.connect_to_signaller() + goto_scene("lobby_browser") func lobby(): goto_scene("multiplayer_lobby") diff --git a/scripts/global/signalled_webrtc_multiplayer.gd b/scripts/global/signalled_webrtc_multiplayer.gd index 3086351..f2e4f57 100644 --- a/scripts/global/signalled_webrtc_multiplayer.gd +++ b/scripts/global/signalled_webrtc_multiplayer.gd @@ -18,7 +18,7 @@ signal lobby_delete(id) signal peer_data(peers) signal peer_left(id) -signal peer_init(peer_id) +signal peer_init(id) signal candidate_received(cand) signal offer_received(data) @@ -61,12 +61,6 @@ func _ready(): websocket.connect("connection_error", self, "_signaller_error", [false]) websocket.connect("connection_failed", self, "_signaller_error", [false]) - print(self) - print(websocket) - print(webrtc) - add_child(websocket) - add_child(webrtc) - func connect_to_signaller(url = signaller_url): signaller_url = url close() @@ -89,6 +83,9 @@ func request_lobby_list(): func join_lobby(id: String): return _send("lobby_join:%s" % id) +func get_lobby_name(): + return current_lobby.name + func create_lobby(): return _send("lobby_create") @@ -172,7 +169,8 @@ func _process_signaller_message(data: Dictionary): emit_signal("lobby_joined", data) "lobby_left": emit_signal("lobby_left", data.id) - "peer_data": emit_signal("peer_data", [data] if data.has("id") else data.data) + "peer_data": + emit_signal("peer_data", [data] if data.has("id") else data.data) "peer_left": emit_signal("peer_left", data.data) "candidate": diff --git a/scripts/screens/lobby_browser.gd b/scripts/screens/lobby_browser.gd index d4b9048..91ae1a5 100644 --- a/scripts/screens/lobby_browser.gd +++ b/scripts/screens/lobby_browser.gd @@ -13,15 +13,16 @@ onready var lobby = preload("res://objects/lobby.tscn") func _ready(): display_name_edit.text = Global.client.display_name - Global.signaller_client.connect("lobby_data", self, "_lobby_data") - Global.signaller_client.connect("lobby_delete", self, "_lobby_delete") - Global.signaller_client.connect("lobby_joined", self, "_lobby_joined") - Global.signaller_client.connect("lobby_left", self, "_lobby_left") - Global.signaller_client.connect("disconnected", self, "_signaller_disconnected") - Global.signaller_client.request_lobby_list() + Global.client.connect("lobby_data", self, "_lobby_data") + Global.client.connect("lobby_delete", self, "_lobby_delete") + Global.client.connect("lobby_joined", self, "_lobby_joined") + Global.client.connect("lobby_left", self, "_lobby_left") + Global.client.connect("signaller_connected", self, "_signaller_connected") + Global.client.connect("signaller_disconnected", self, "_signaller_disconnected") + Global.client.connect_to_signaller() if Global.check_onetime_flag("create-lobby"): - Global.signaller_client.create_lobby() + Global.client.create_lobby() # TODO: add search func _input(ev): @@ -37,6 +38,9 @@ func _input(ev): func _signaller_disconnected(): Global.main_menu() +func _signaller_connected(): + Global.client.request_lobby_list() + func _lobby_joined(data): print("Lobby Joined: %s" % data) Global.lobby() @@ -48,12 +52,12 @@ func _on_back_pressed(): Global.main_menu() func _on_create_lobby_pressed(): - Global.signaller_client.create_lobby() + Global.client.create_lobby() func _on_join_pressed(): var items = lobbies.get_selected_items() if len(items) > 0: - Global.signaller_client.join_lobby(lobbies.get_item_metadata(items[0])["id"]) + Global.client.join_lobby(lobbies.get_item_metadata(items[0])["id"]) func _lobby_data(new_lobbies: Array): for l in new_lobbies: @@ -61,7 +65,7 @@ func _lobby_data(new_lobbies: Array): else: _add_lobby(l.id, l) if Global.check_onetime_flag("join-first-available-lobby"): - Global.signaller_client.join_lobby(l.id) + Global.client.join_lobby(l.id) func _lobby_delete(id: String): print("Lobby Deleted: %s" % id) @@ -100,4 +104,4 @@ func _update_lobbies_text(): lobbies_grid.remove_child(zero_state) func _on_display_name_text_changed(new_text): - Global.signaller_client.display_name = new_text + Global.client.display_name = new_text diff --git a/scripts/screens/multiplayer_lobby.gd b/scripts/screens/multiplayer_lobby.gd index aa86eeb..3320f15 100644 --- a/scripts/screens/multiplayer_lobby.gd +++ b/scripts/screens/multiplayer_lobby.gd @@ -18,21 +18,21 @@ onready var peers_id_mappings = {} onready var is_host = false func _ready(): - Global.signaller_client.connect("peer_data", self, "_peer_data") - Global.signaller_client.connect("peer_left", self, "_peer_left") - Global.signaller_client.connect("lobby_left", self, "_lobby_left") - Global.signaller_client.connect("lobby_data", self, "_lobby_data") + Global.client.connect("peer_data", self, "_peer_data") + Global.client.connect("peer_left", self, "_peer_left") + Global.client.connect("lobby_left", self, "_lobby_left") + Global.client.connect("lobby_data", self, "_lobby_data") - Global.signaller_client.connect("disconnected", self, "_signaller_disconnected") - Global.negotiator.connect("connection_succeeded", self, "_connection_succeeded") + Global.client.connect("signaller_disconnected", self, "_signaller_disconnected") + Global.client.connect("webrtc_connection_succeeded", self, "_connection_succeeded") - # lobby_name.text = "%s" % Global.signaller_client.lobby_name + # lobby_name.text = "%s" % Global.client.lobby_name - Global.signaller_client.call_deferred("request_peer_list") - call_deferred("add_chat", "# Connected to %s" % Global.signaller_client.get_lobby_name()) + Global.client.call_deferred("request_peer_list") + call_deferred("add_chat", "# Connected to %s" % Global.client.get_lobby_name()) # hide/show controls depending on whether or not we're the host - is_host = Global.signaller_client.is_host() + is_host = Global.client.is_host() if is_host: ready_up.queue_free() else: @@ -43,13 +43,14 @@ func _ready(): # until we fully connect ready_up.disabled = true - chat_edit.disabled = true + chat_edit.editable = false send_button.disabled = true - print("Setting up lobby... %s %s" % [Global.signaller_client.peer_id, is_host]) + print("Setting up lobby... %s %s" % [get_tree().get_network_unique_id(), is_host]) func _connection_succeeded(): ready_up.disabled = false send_button.disabled = false + chat_edit.editable = true func _lobby_update(l): for u in l: @@ -118,7 +119,7 @@ func preserve_chat_scroll(n, tl, fl, tc, fc): func send_chat_message(): var message = chat_edit.text if message != "": - rpc("add_chat", "%s: %s" % [Global.signaller_client.display_name, message]) + rpc("add_chat", "%s: %s" % [Global.client.display_name, message]) chat_edit.text = "" func update_can_start(): @@ -154,5 +155,5 @@ func _on_leave_button_pressed(): Global.lobby_browser() func update_player_count(): peers_list_label.text = "Players: %d" % peers.size() func _on_Button_pressed(): send_chat_message() func _on_ready_up_toggled(button_pressed: bool): rpc("set_ready", button_pressed) -func _on_lobby_info_text_changed(new_text: String): Global.signaller_client.set_lobby_name(new_text) +func _on_lobby_info_text_changed(new_text: String): Global.client.set_lobby_name(new_text) func _signaller_disconnected(): Global.main_menu()