aboutsummaryrefslogtreecommitdiff
path: root/client/scripts/multiplayer.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/scripts/multiplayer.gd')
-rw-r--r--client/scripts/multiplayer.gd18
1 files changed, 15 insertions, 3 deletions
diff --git a/client/scripts/multiplayer.gd b/client/scripts/multiplayer.gd
index d7dd9d1b..79c5df76 100644
--- a/client/scripts/multiplayer.gd
+++ b/client/scripts/multiplayer.gd
@@ -1,9 +1,13 @@
extends Node
+signal init(player_id: int)
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)
+signal add_player(player: int, name: String, pos: Vector2, character: int)
+signal remove_player(player: int)
+signal position(player: int, position: Vector2, rotation: float)
var connected := false
var socket := WebSocketPeer.new()
@@ -48,20 +52,24 @@ func handle_packet(bytes: PackedByteArray):
player_id = decoded["id"]
item_names = decoded["data"]["item_names"]
tile_names = decoded["data"]["tile_names"]
+ emit_signal("init", player_id)
"add_player":
var id = decoded["id"]
var player_name = decoded["name"]
- #var item = decoded["item"]
var pos = decoded["position"]
var char = decoded["character"]
+
other_players[id] = [player_name, char]
+ emit_signal("add_player", id, player_name, pos_to_vec2(pos), char)
"remove_player":
var id = decoded["id"]
other_players.erase(id)
+ emit_signal("remove_player", id)
"position":
var id = decoded["player"]
var pos = decoded["pos"]
var rot = decoded["rot"]
+ emit_signal("position", id, pos_to_vec2(pos), rot)
"take_item":
var tile = decoded["tile"]
var player_id = decoded["player"]
@@ -94,10 +102,11 @@ func handle_packet(bytes: PackedByteArray):
_:
push_error("Unrecognized packet type: %s" % packet_type)
-func send_join(player_name: String):
+func send_join(player_name: String, character: int):
send_packet({
"type": "join",
- "name": player_name
+ "name": player_name,
+ "character": character
})
func send_position(pos: Vector2, rotation: float):
@@ -127,3 +136,6 @@ func decode_packet(bytes: PackedByteArray):
else:
print("Decode of packet failed: %s in %s" % [json.get_error_message(), in_str])
return null
+
+func pos_to_vec2(pos: Array) -> Vector2:
+ return Vector2(pos[0], pos[1])