summaryrefslogtreecommitdiff
path: root/scripts/ServerBrowser.gd
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2025-08-15 23:04:40 -0700
committerAnson Bridges <bridges.anson@gmail.com>2025-08-15 23:04:40 -0700
commitf087c6a98b1da55525a6e3c1d7c82477f82eb5cd (patch)
tree0e2b517bedb3dd475c2b82a1b05800e5b7593854 /scripts/ServerBrowser.gd
parentd558a9add0e183219a7a9ff482807bdcd677e21a (diff)
Game Coordinator now mostly (~90%) functional
Diffstat (limited to 'scripts/ServerBrowser.gd')
-rw-r--r--scripts/ServerBrowser.gd30
1 files changed, 10 insertions, 20 deletions
diff --git a/scripts/ServerBrowser.gd b/scripts/ServerBrowser.gd
index 2a1492e..3c59b9b 100644
--- a/scripts/ServerBrowser.gd
+++ b/scripts/ServerBrowser.gd
@@ -8,7 +8,7 @@ enum { ANY, GAME_LIST, HOST_RESPONSE, JOIN_RESPONSE, PASSWORD_RESPONSE }
var game_ids = []
# change this!!!
-var game_coordinator_url = "ws://127.0.0.1:8181"
+var game_coordinator_url = "ws://192.168.7.112:8181"
var awaiting_connection = false
var expecting = []
var queued_messages = []
@@ -21,7 +21,7 @@ func join_game():
$HostPopup.visible = false
$HostButton.disabled = true
$RefreshButton.disabled = true
- var message = { "type" : "join_game" }
+ var message = { "type" : "join_lobby" }
if ws_client.state != 2:
ws_client.sock_connect_to_url(game_coordinator_url)
queued_messages.push_back( message )
@@ -37,35 +37,25 @@ func refresh_game_list():
game_ids.clear()
game_list.clear()
- var message = {"type" : "list_open_games"}
+ var message = {"type" : "list_open_lobbies"}
if ws_client.state != 2:
ws_client.sock_connect_to_url(game_coordinator_url)
- queued_messages.push_back( message )
- awaiting_connection = true
+ ws_client.send_json( message )
else:
ws_client.send_json( message )
func add_games_to_list(games):
for game in games:
- var game_str = game["game_name"] + " (" + str(int(game["current_players"])) + "/" + str(int(game["max_players"])) + ") (" +game["state"]+ ")" + (" (PRIVATE)" if game["private"] else "")
+ var game_str = game["lobby_name"] + " (" + str(int(game["current_players"])) + "/" + str(int(game["max_players"])) + ") (" +game["state"]+ ")" + (" (PRIVATE)" if game["private"] else "")
game_list.add_item( game_str, null, true if game["state"] == "LOBBY" else false )
game_ids.append( game["id"] )
-func handle_gc_message(msg):
- if msg == null or msg.error: return
- msg = msg.result
- if msg["type"] == "game_list":
- add_games_to_list(msg["games"])
- ws_client.send_json({"type" : "ack"})
- if msg["type"] == "error":
- print(msg["message"])
func _process(_delta):
$GameCoordinatorStatus.text = "Game Coordinator Connection: " + str(ws_client.state)
if ws_client.state == 2:
- if awaiting_connection:
- awaiting_connection = false
- for queued_message in queued_messages:
- ws_client.send_json( queued_message )
-
- handle_gc_message(ws_client.receive(true))
+ var recv_message = ws_client.receive(true) # true argument means expect + convert to JSON
+ if recv_message:
+ if "type" in recv_message and recv_message["type"] == "lobby_list":
+ add_games_to_list(recv_message["lobbies"])
+