extends Node2D onready var peers = $MarginContainer/peers onready var cursors = {} func _ready(): Global.client.signaller.connect("peer_joined", self, "_peer_joined") Global.client.signaller.connect("peer_left", self, "_peer_left") Global.client.signaller.connect("lobby_left", self, "_lobby_left") $MarginContainer/Label.text = "%s (%s)" % [Global.client.signaller.lobby_id, get_tree().get_network_unique_id()] Global.client.signaller.connect("websocket_disconnected", self, "_signaller_disconnected") $shifter.connect("mouse_entered", self, "do_ping") _peer_joined([{ "id": Global.client.signaller.client_id, "peerId": Global.client.signaller.peer_id, "name": "You!", }]) Global.client.signaller.request_peer_list() func _signaller_disconnected(): Global.main_menu() func _draw(): $text.text = JSON.print(Global.client.signaller) func _peer_joined(joined_peers): print("Joined Peers: %s" % joined_peers) for i in range(len(joined_peers)): var id = joined_peers[i]["id"] var exists = false for j in range(peers.get_item_count()): if id == peers.get_item_metadata(j)["id"]: exists = true break if !exists: var peerId = joined_peers[i]["peerId"] var name = joined_peers[i]["name"] print("New Lobby Peer ID: %s, Name: %s, PeerID: %s" % [id, name, peerId]) peers.add_item("%s (%s)" % [name, peerId]) peers.set_item_metadata(peers.get_item_count() - 1, { "id": id }) func _peer_left(ids): for data in ids: var id = data["id"] for i in range(peers.get_item_count()): if id == peers.get_item_metadata(i)["id"]: peers.remove_item(i) return func _on_Button_pressed(): rpc("shift_cursor") # move cursor a bit remotesync func shift_cursor(): print("Shifting cursor...") $shifter.rect_position.x += 10 func do_ping(): print(rpc("ping")) remotesync func ping(): print("pinged") return 0 func _lobby_left(_id): Global.lobby_browser() func _on_leave_button_pressed(): Global.lobby_browser()