diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-09-07 14:07:30 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-09-07 14:07:30 -0400 |
| commit | c232b92e2dde1277324d1f89d0e75ae641e4ac3b (patch) | |
| tree | e11a5dd52f259c1cc7345baa40b372b304417f00 /godot/ui/MainMenu.gd | |
| parent | a0967ebe815cd229b69fb9578f2288b95b2ddb28 (diff) | |
reorganized, ladders, vehicle control
Diffstat (limited to 'godot/ui/MainMenu.gd')
| -rw-r--r-- | godot/ui/MainMenu.gd | 63 |
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() |
