mirror of
https://github.com/kristoferssolo/FuncIt.git
synced 2025-10-21 19:30:35 +00:00
52 lines
1.6 KiB
GDScript
52 lines
1.6 KiB
GDScript
extends Control
|
|
|
|
var player = load("res://scenes/player.tscn")
|
|
|
|
onready var multiplayer_config_ui = $multiplayer_configure
|
|
onready var username_text_edit = $multiplayer_configure/username_text_edit
|
|
onready var device_ip_address = $CanvasLayer/device_ip_address
|
|
|
|
|
|
func _ready():
|
|
get_tree().connect("network_peer_connected", self, "_player_connected")
|
|
get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
|
|
get_tree().connect("connected_to_server", self, "_connected_to_server")
|
|
|
|
device_ip_address.text = Network.ip_address
|
|
|
|
func _player_connected(id) -> void:
|
|
print("Player " + str(id) + " has connected")
|
|
instance_player(id)
|
|
|
|
|
|
func _player_disconnected(id) -> void:
|
|
print("Player " + str(id) + " has disconnected")
|
|
if Players.has_node(str(id)):
|
|
Players.get_node(str(id)).queue_free()
|
|
|
|
|
|
func _on_create_server_pressed():
|
|
if username_text_edit.text != "":
|
|
Network.current_player_username = username_text_edit.text
|
|
multiplayer_config_ui.hide()
|
|
Network.create_server()
|
|
instance_player(get_tree().get_network_unique_id())
|
|
|
|
|
|
func _on_join_server_pressed():
|
|
if username_text_edit.text != "":
|
|
multiplayer_config_ui.hide()
|
|
username_text_edit.hide()
|
|
Global.instance_node(load("res://scenes/server_browser.tscn"), self)
|
|
|
|
|
|
func _connected_to_server() -> void:
|
|
yield(get_tree().create_timer(0.1), "timeout")
|
|
instance_player(get_tree().get_network_unique_id())
|
|
|
|
|
|
func instance_player(id) -> void:
|
|
var player_instance = Global.instance_node_at_location(player, Players, Vector2(rand_range(0, 1920), rand_range(0, 1080)))
|
|
player_instance.name = str(id)
|
|
player_instance.set_network_master(id)
|