summaryrefslogtreecommitdiff
path: root/godot/ui/MainMenu.gd
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-09-07 14:07:30 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-09-07 14:07:30 -0400
commitc232b92e2dde1277324d1f89d0e75ae641e4ac3b (patch)
treee11a5dd52f259c1cc7345baa40b372b304417f00 /godot/ui/MainMenu.gd
parenta0967ebe815cd229b69fb9578f2288b95b2ddb28 (diff)
reorganized, ladders, vehicle control
Diffstat (limited to 'godot/ui/MainMenu.gd')
-rw-r--r--godot/ui/MainMenu.gd63
1 files changed, 63 insertions, 0 deletions
diff --git a/godot/ui/MainMenu.gd b/godot/ui/MainMenu.gd
new file mode 100644
index 0000000..888d401
--- /dev/null
+++ b/godot/ui/MainMenu.gd
@@ -0,0 +1,63 @@
+extends Node2D
+
+var client : NetworkedMultiplayerENet
+var world
+var local_server_tree = null
+
+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")
+ var _discard = [get_tree().connect("connected_to_server", self, "_local_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 to_host_menu():
+ var host_menu = preload("res://ui/servermenu/ServerUI.tscn").instance()
+ get_tree().get_root().add_child(host_menu)
+ queue_free()
+
+func to_join_menu():
+ var client_menu = preload("res://ui/clientmenu/ClientUI.tscn").instance()
+ get_tree().get_root().add_child(client_menu)
+ 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)
+ client = NetworkedMultiplayerENet.new()
+ var cli_stat = client.create_client("127.0.0.1", 25565)
+ if cli_stat != OK:
+ print("Error creating client. Code: " + str(cli_stat))
+ get_tree().set_network_peer(client)
+
+func _local_connection_failed():
+ pass
+
+func _local_connection_successful():
+ get_tree().get_root().add_child(world)
+ world.client = client
+ world.client_id = get_tree().get_network_unique_id()
+ world.player_name = "Player"
+ world.is_local = true
+ world.local_server_tree = local_server_tree
+ print("Connected to local server.")
+ queue_free()
+
+func _process(delta):
+ local_server_tree.idle(delta)
+
+func _physics_process(delta):
+ local_server_tree.iteration(delta)
+
+func quit_game():
+ get_tree().quit()