online multiplayer chess game (note server currently down)
Diffstat (limited to 'networking/Network.gd')
| -rw-r--r-- | networking/Network.gd | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/networking/Network.gd b/networking/Network.gd index 4e6c329..7db31cf 100644 --- a/networking/Network.gd +++ b/networking/Network.gd @@ -14,7 +14,8 @@ const HEADERS := { "signin": ">", "relay": "R", # relay goes to both "signal": "S", # signal is one way - "loadpgn": "L" # server telling me to load a pgn + "loadpgn": "L", # server telling me to load a pgn + "info": "I" } const MOVEHEADERS := { # subheaders for HEADERS.move @@ -26,7 +27,7 @@ const MOVEHEADERS := { # subheaders for HEADERS.move } const RELAYHEADERS := {"chat": "C"} -const SIGNALHEADERS := {"takeback": "T", "draw": "D", "resign": "R"} # subheaders for HEADERS.signal +const SIGNALHEADERS := {"takeback": "T", "draw": "D", "resign": "R", "info": "I"} # subheaders for HEADERS.signal var notation := "" @@ -38,6 +39,7 @@ signal game_over(problem, isok) signal connection_established signal signal_recieved(what) signal chat(text) +signal info_recieved(info) ## for accounts(mostly) signal signinresult(what) @@ -85,32 +87,30 @@ func _connection_error() -> void: emit_signal("game_over", "Connection error", false) -func signal(body, header: String, keyname := "body", _mainheader := HEADERS.signal) -> Dictionary: - var data := {"type": header, "gamecode": game_code, keyname: body} +func signal(body: Dictionary, header: String, _mainheader := HEADERS.signal) -> Dictionary: + var data: Dictionary = Utils.append_dict({"type": header, "gamecode": game_code}, body) send_packet(data, _mainheader) - Log.debug("sending signal %s of type %s" % [body, header]) return data func join_game(game: String) -> void: - send_packet({"gamecode": game, "id": SaveLoad.files.id.data.id}, HEADERS.joinrequest) + send_packet(Utils.append_dict({"gamecode": game}, SaveLoad.get_public_info()), HEADERS.joinrequest) func host_game(game: String) -> void: - send_packet({"gamecode": game, "id": SaveLoad.files.id.data.id}, HEADERS.hostrequest) + send_packet(Utils.append_dict({"gamecode": game}, SaveLoad.get_public_info()), HEADERS.hostrequest) -func relay_signal(body, header: String, keyname := "body") -> Dictionary: # its really the same thing as signal() - return signal(body, header, keyname, HEADERS.relay) +func relay_signal(body: Dictionary, header: String) -> Dictionary: # its really the same thing as signal() + return signal(body, header, HEADERS.relay) func send_mov(mov: Move): - relay_signal(mov.compile(), MOVEHEADERS.move, "move") + relay_signal({"move": mov.compile()}, MOVEHEADERS.move) func stopgame(reason: String) -> void: - var packet := {"reason": reason, "gamecode": game_code} - send_packet(packet, HEADERS.stopgame) + send_packet({"reason": reason, "gamecode": game_code}, HEADERS.stopgame) func _data_recieved() -> void: @@ -126,11 +126,14 @@ func _data_recieved() -> void: var relay: Dictionary = text match relay.type: RELAYHEADERS.chat: - emit_signal("chat", relay.body) + emit_signal("chat", relay) MOVEHEADERS.move: emit_signal("move_data", text.move) HEADERS.joinrequest: emit_signal("join_result", text) + HEADERS.info: + yield(get_tree().create_timer(.5), "timeout") + emit_signal("info_recieved", text) HEADERS.loadpgn: emit_signal("start_game") yield(get_tree().create_timer(.5), "timeout") |