aboutsummaryrefslogtreecommitdiff
path: root/client/scripts
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-20 14:54:41 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-23 19:24:14 +0200
commit43528e61419b639049799b5e5de19c727d508dbc (patch)
tree5335508a9d3d81f287b57eabc1cf69fbb50d253d /client/scripts
parent870b572f3edf33825d1b74010baae935d3439d95 (diff)
downloadhurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar
hurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar.bz2
hurrycurry-43528e61419b639049799b5e5de19c727d508dbc.tar.zst
implement communicate
Diffstat (limited to 'client/scripts')
-rw-r--r--client/scripts/multiplayer.gd23
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)