diff options
Diffstat (limited to 'UI/Start.gd')
-rw-r--r-- | UI/Start.gd | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/UI/Start.gd b/UI/Start.gd index c9a0342..53b18fb 100644 --- a/UI/Start.gd +++ b/UI/Start.gd @@ -2,13 +2,18 @@ extends Control func _ready(): + multiplayer.peer_connected.connect(_on_peer_connected) + multiplayer.peer_disconnected.connect(_on_peer_disconnected) + if OS.has_environment("USER"): - %Name.text = OS.get_environment("USER") + %Username.text = OS.get_environment("USER") elif OS.has_environment("USERNAME"): - %Name.text = OS.get_environment("USERNAME") + %Username.text = OS.get_environment("USERNAME") + + %GameName.text = "%s's Game" % [%Username.text] -func get_ip(): +func get_ip() -> String: var ip := "127.0.0.1" if %IP.text: ip = %IP.text @@ -16,20 +21,41 @@ func get_ip(): return ip -func get_port(): - var port := 1234 +func get_port() -> int: + var port: int = Client.get_config().get_value("general", "host_default_port") if %Port.text: - port = %Port.text + port = int(%Port.text) return port + +func _on_peer_connected(id): + Network._on_peer_connected(id) + +func _on_peer_disconnected(id): + Network._on_peer_disconnected(id) + + func _on_host_pressed() -> void: - Client.player.username = %Name.text + Client.player.username = %Username.text + + var response = await GameLobby.request_post("/host", {"port": get_port(), "name" : %GameName.text}) + if response.result_code == HTTPRequest.RESULT_SUCCESS: + var result = response.parse_json() + if result["success"]: + GameLobby.current_game_id = result["data"]["id"] + GameLobby.current_secret = result["data"]["secret"] + Network.host_game(get_port()) - get_tree().change_scene_to_file("res://UI/Lobby.tscn") + get_tree().change_scene_to_file("res://UI/PlayerLobby/Lobby.tscn") func _on_join_pressed() -> void: - Client.player.username = %Name.text + Client.player.username = %Username.text Network.join_game(get_ip(), get_port()) - get_tree().change_scene_to_file("res://UI/Lobby.tscn") + get_tree().change_scene_to_file("res://UI/PlayerLobby/Lobby.tscn") + + +func _on_search_pressed() -> void: + Client.player.username = %Username.text + get_tree().change_scene_to_file("res://UI/GamesLobby/games_lobby.tscn") |