summaryrefslogtreecommitdiff
path: root/UI/Start.gd
diff options
context:
space:
mode:
Diffstat (limited to 'UI/Start.gd')
-rw-r--r--UI/Start.gd46
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")