godot-webrtc-mplayer-testing/lobby.gd
2021-11-17 16:24:00 -06:00

41 lines
1.1 KiB
GDScript

extends Node2D
onready var peers = $MarginContainer/peers
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 = Global.client.signaller.lobby_id
Global.client.signaller.connect("websocket_disconnected", self, "_signaller_disconnected")
Global.client.signaller.request_peer_list()
func _signaller_disconnected():
Global.main_menu()
func _draw():
pass
func _process(_delta):
pass
func _peer_joined(joined_peers):
for i in range(len(joined_peers)):
var id = joined_peers[i]["id"]
var name = joined_peers[i]["name"]
print("New Lobby Peer ", id, name)
peers.add_item("%s" % name)
peers.set_item_metadata(peers.get_item_count() - 1, { "id": id })
func _peer_left(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():
Global.lobby_browser()
func _lobby_left(_id):
Global.lobby_browser()