extends Control onready var ws_client = $GameCoordinator onready var game_list = $GameList enum { ANY, GAME_LIST, HOST_RESPONSE, JOIN_RESPONSE, PASSWORD_RESPONSE } var game_ids = [] # change this!!! var game_coordinator_url = "ws://192.168.7.112:8181" var awaiting_connection = false var expecting = [] var queued_messages = [] func _ready(): refresh_game_list() $RefreshButton.connect("pressed", self, "refresh_game_list") func join_game(): $HostPopup.visible = false $HostButton.disabled = true $RefreshButton.disabled = true var message = { "type" : "join_lobby" } if ws_client.state != 2: ws_client.sock_connect_to_url(game_coordinator_url) queued_messages.push_back( message ) awaiting_connection = true else: ws_client.send_json( message ) func host_game(): pass func refresh_game_list(): $JoinButton.disabled = true game_ids.clear() game_list.clear() var message = {"type" : "list_open_lobbies"} if ws_client.state != 2: ws_client.sock_connect_to_url(game_coordinator_url) 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["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 _process(_delta): $GameCoordinatorStatus.text = "Game Coordinator Connection: " + str(ws_client.state) if ws_client.state == 2: 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"])