diff options
author | nokoe <nokoe@mailbox.org> | 2024-06-20 14:54:41 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:24:14 +0200 |
commit | 43528e61419b639049799b5e5de19c727d508dbc (patch) | |
tree | 5335508a9d3d81f287b57eabc1cf69fbb50d253d | |
parent | 870b572f3edf33825d1b74010baae935d3439d95 (diff) | |
download | hurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar hurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar.bz2 hurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar.zst |
implement communicate
-rw-r--r-- | client/scripts/multiplayer.gd | 23 |
1 files changed, 18 insertions, 5 deletions
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) |