From 43528e61419b639049799b5e5de19c727d508dbc Mon Sep 17 00:00:00 2001 From: nokoe Date: Thu, 20 Jun 2024 14:54:41 +0200 Subject: implement communicate --- client/scripts/multiplayer.gd | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'client/scripts/multiplayer.gd') diff --git a/client/scripts/multiplayer.gd b/client/scripts/multiplayer.gd index bd488900..7b62907d 100644 --- a/client/scripts/multiplayer.gd +++ b/client/scripts/multiplayer.gd @@ -1,6 +1,9 @@ extends Node -signal update_map +signal update_map(tile: int, pos: Array, neighbors: Array) +signal clear_message(player: int) +signal text_message(player: int, text: String) +signal item_message(player: int, item: int) var connected := false var socket := WebSocketPeer.new() @@ -31,7 +34,7 @@ func _process(_delta): elif state == WebSocketPeer.STATE_CLOSED: var code = socket.get_close_code() var reason = socket.get_close_reason() - print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != -1]) + print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != - 1]) func handle_packet(bytes: PackedByteArray): var decoded = decode_packet(bytes) @@ -74,10 +77,20 @@ func handle_packet(bytes: PackedByteArray): var tile = decoded["tile"] var progress = decoded["progress"] "update_map": - var tile = decoded["tile"] - var pos = decoded["pos"] - var neighbors = decoded["neighbors"] + var tile: int = decoded["tile"] + var pos: Array = decoded["pos"] + var neighbors: Array = decoded["neighbors"] emit_signal("update_map", pos, tile_names[tile], neighbors) + "communicate": + var player = decoded["player"] + if decoded.has("message"): + var message: Dictionary = decoded["message"] + if message.has("item"): + emit_signal("item_message", player, message["item"]) + else: + emit_signal("text_message", player, message["text"]) + else: + emit_signal("clear_message", player) _: push_error("Unrecognized packet type: %s" % packet_type) -- cgit v1.2.3-70-g09d2