59 lines
1.7 KiB
GDScript
59 lines
1.7 KiB
GDScript
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")
|
|
|
|
_peer_joined([{
|
|
"id": Global.client.signaller.client_id,
|
|
"peerId": Global.client.signaller.peer_id,
|
|
"name": "You!",
|
|
}])
|
|
|
|
func _signaller_disconnected():
|
|
Global.main_menu()
|
|
|
|
func _draw():
|
|
$text.text = JSON.print(Global.client.signaller)
|
|
|
|
func _peer_joined(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(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 _lobby_left(_id):
|
|
Global.lobby_browser()
|
|
|
|
func _on_leave_button_pressed():
|
|
Global.lobby_browser()
|