online multiplayer chess game (note server currently down)
Diffstat (limited to 'networking/PacketHandler.gd')
-rw-r--r--networking/PacketHandler.gd24
1 files changed, 14 insertions, 10 deletions
diff --git a/networking/PacketHandler.gd b/networking/PacketHandler.gd
index 9ce4a09..571091a 100644
--- a/networking/PacketHandler.gd
+++ b/networking/PacketHandler.gd
@@ -5,25 +5,32 @@ class_name NetManager
signal set_buttons(enabled)
signal set_status(status, err, isok)
signal set_visible(visibility)
-signal set_back_button(disabled)
+signal hosting(newhosting)
signal game_over
signal game_started
-var hosting = false
+var hosting = false setget set_hosting
var leaving = false
var status = ["", true, false]
+
func set_buttons(enabled):
status[2] = enabled
emit_signal("set_buttons", enabled)
+
+func set_hosting(newhosting):
+ hosting = newhosting
+ emit_signal("hosting", newhosting)
+
+
func return():
if hosting:
leaving = true
Globals.network.send_packet(Globals.network.game_code, Network.HEADERS.stopgame) # stop hosting
- hosting = false
+ set_hosting(false)
set_buttons(true)
set_status("", true)
@@ -45,14 +52,12 @@ func _ready():
func requestjoin():
- set_buttons( false)
- emit_signal("set_back_button", true)
+ set_buttons(false)
Globals.network.send_packet(Globals.network.game_code, Globals.network.HEADERS.joinrequest)
func requesthost():
set_buttons(false)
- emit_signal("set_back_button", true)
Globals.network.send_packet(Globals.network.game_code, Globals.network.HEADERS.hostrequest)
@@ -73,17 +78,16 @@ func _on_join_result(accepted: String) -> void:
func _on_host_result(accepted: String) -> void:
- hosting = handle_result(accepted, "Hosted!")
+ set_hosting(handle_result(accepted, "Hosted!"))
func handle_result(accepted: String, resultstring: String, team: bool = true) -> bool:
- emit_signal("set_back_button", false)
Globals.team = team
if accepted == "Y":
set_status(resultstring, true)
return true
set_status(accepted, false)
- set_buttons( true)
+ set_buttons(true)
return false
@@ -97,7 +101,7 @@ func _handle_game_over(error = "game over", isok = true) -> void:
func _start_game() -> void:
- hosting = false
+ set_hosting(false)
var board = load("res://Board.tscn").instance()
get_tree().get_root().add_child(board)
emit_signal("set_visible", false)