summaryrefslogtreecommitdiff
path: root/network/network.gd
diff options
context:
space:
mode:
Diffstat (limited to 'network/network.gd')
-rw-r--r--network/network.gd21
1 files changed, 20 insertions, 1 deletions
diff --git a/network/network.gd b/network/network.gd
index c6e3351..38eba42 100644
--- a/network/network.gd
+++ b/network/network.gd
@@ -1,6 +1,8 @@
extends Node
+signal connected
+
var local_player: Player
signal current_player_changed
@@ -74,8 +76,25 @@ func _on_peer_connected(id: int):
sync_current_player.rpc_id(id, current_player_id)
player_order.append(id)
else:
- get_player(id).set_initial_values()
+ check_is_connected()
+ #get_player(id).set_initial_values()
func _on_peer_disconnected(id: int):
%Players.remove_child(%Players.get_node(str(id)))
+
+
+# check is connected
+# TODO: check how to correctly do player setup at join
+
+func check_is_connected():
+ server_check_is_connected.rpc_id(1, multiplayer.get_peers().size())
+
+@rpc("any_peer", "call_remote")
+func server_check_is_connected(remote_peers_size: int):
+ if multiplayer.get_peers().size() == remote_peers_size:
+ server_tells_connected.rpc_id(multiplayer.get_remote_sender_id())
+
+@rpc("authority", "call_remote")
+func server_tells_connected():
+ connected.emit()