diff options
Diffstat (limited to 'client/scripts/multiplayer.gd')
-rw-r--r-- | client/scripts/multiplayer.gd | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/client/scripts/multiplayer.gd b/client/scripts/multiplayer.gd index 6ac05699..3386d99b 100644 --- a/client/scripts/multiplayer.gd +++ b/client/scripts/multiplayer.gd @@ -8,6 +8,12 @@ signal item_message(player: int, item: int) signal add_player(player: int, name: String, pos: Vector2, character: int) signal remove_player(player: int) signal position(player: int, position: Vector2, rotation: float) +signal take_item(tile: Vector2i, player: int) +signal put_item(tile: Vector2i, player: int) +signal set_tile_item(tile: Vector2i, item: int) +signal remove_tile_item(tile: Vector2i) +signal set_progress(tile: Vector2i, progress: float, warn: bool) +signal set_finished(tile: Vector2i, warn: bool) var connected := false var socket := WebSocketPeer.new() @@ -77,19 +83,26 @@ func handle_packet(bytes: PackedByteArray): var rot = decoded["rot"] emit_signal("position", id, pos_to_vec2(pos), rot) "take_item": - var tile = decoded["tile"] + var tile = pos_to_vec2i(decoded["tile"]) var player_id = decoded["player"] + emit_signal("take_item", tile, player_id) "put_item": - var tile = decoded["tile"] + var tile = pos_to_vec2i(decoded["tile"]) var player_id = decoded["player"] - "produce_item": - var tile = decoded["tile"] - var item = decoded["item"] - "consume_item": - var tile = decoded["tile"] - "set_active": - var tile = decoded["tile"] - var progress = decoded["progress"] + emit_signal("take_item", tile, player_id) + "set_progress": + var tile = pos_to_vec2i(decoded["tile"]) + var warn = decoded["warn"] + if decoded.has("progress"): + emit_signal("set_progress", tile, decoded["progress"], warn) + else: + emit_signal("set_finished", tile, warn) + "set_tile_item": + var tile = pos_to_vec2i(decoded["tile"]) + if decoded.has("item"): + emit_signal("set_tile_item", tile, decoded["tile"]) + else: + emit_signal("remove_tile_name", tile) "update_map": var tile: int = decoded["tile"] var pos: Array = decoded["pos"] @@ -145,3 +158,6 @@ func decode_packet(bytes: PackedByteArray): func pos_to_vec2(pos: Array) -> Vector2: return Vector2(pos[0], pos[1]) + +func pos_to_vec2i(pos: Array) -> Vector2i: + return Vector2i(pos[0], pos[1]) |