summaryrefslogtreecommitdiff
path: root/ui/clientmenu/ClientUI.gd
blob: 8b9fbcc3a8a8acc258b68e85aa5d198460997d72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
extends Node2D

var client : NetworkedMultiplayerENet
var world
var local_server_tree = null
var is_local = false

func _ready():
	world = preload("res://scenes/GameBase.tscn").instance()
	#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, "_connection_successful")
	get_tree().connect("connection_failed", self, "_connected_fail")
	get_tree().connect("server_disconnected", world, "_connection_lost")
	set_process(false)
	set_physics_process(false)
	
func _connect_btn():
	client = NetworkedMultiplayerENet.new()
	client.create_client($IP.text, $Port.value)
	
	get_tree().set_network_peer(client)
	
func _connection_successful():
	get_tree().get_root().add_child(world)
	world.client = client
	world.client_id = get_tree().get_network_unique_id()
	world.player_name = $Name.text
	if is_local:
		world.is_local = true
		world.local_server_tree = local_server_tree
	print("Connected.")
	queue_free()

func _run_local_server():
	local_server_tree = SceneTree.new()
	local_server_tree.init()
	local_server_tree.get_root().set_update_mode(Viewport.UPDATE_DISABLED)
	var server_script = preload("res://scenes/Server.tscn").instance()

	#CHANGE LEVEL HERE
	server_script.start_server("Local Server", "Local Singleplayer Server", 3, "res://maps/Main.tscn", "127.0.0.1", 25565, local_server_tree, null, "print")
	set_process(true)
	set_physics_process(true)
	is_local = true
	client = NetworkedMultiplayerENet.new()
	client.create_client("127.0.0.1", 25565)
	get_tree().set_network_peer(client)

func back_to_main():
	var main_menu = load("res://ui/MainMenu.tscn").instance()
	get_tree().get_root().add_child(main_menu)
	queue_free()

func _process(delta):
	local_server_tree.idle(delta)

func _physics_process(delta):
	local_server_tree.iteration(delta)