From c232b92e2dde1277324d1f89d0e75ae641e4ac3b Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Wed, 7 Sep 2022 14:07:30 -0400 Subject: reorganized, ladders, vehicle control --- godot/ui/clientmenu/ClientUI.gd | 63 +++++++++++++++++++++++++++++++++++++++ godot/ui/clientmenu/ClientUI.tscn | 46 ++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 godot/ui/clientmenu/ClientUI.gd create mode 100644 godot/ui/clientmenu/ClientUI.tscn (limited to 'godot/ui/clientmenu') diff --git a/godot/ui/clientmenu/ClientUI.gd b/godot/ui/clientmenu/ClientUI.gd new file mode 100644 index 0000000..af80e36 --- /dev/null +++ b/godot/ui/clientmenu/ClientUI.gd @@ -0,0 +1,63 @@ +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") + var _discard = [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() + var cli_stat = client.create_client($IP.text, $Port.value) + if cli_stat != OK: + print("Error creating client. Code: " + str(cli_stat)) + + 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() + 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 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) diff --git a/godot/ui/clientmenu/ClientUI.tscn b/godot/ui/clientmenu/ClientUI.tscn new file mode 100644 index 0000000..08294c0 --- /dev/null +++ b/godot/ui/clientmenu/ClientUI.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://ui/clientmenu/ClientUI.gd" type="Script" id=1] + +[node name="ClientUI" type="Node2D"] +script = ExtResource( 1 ) + +[node name="IP" type="LineEdit" parent="."] +margin_left = 16.0 +margin_top = 64.0 +margin_right = 112.0 +margin_bottom = 88.0 +text = "127.0.0.1" + +[node name="Port" type="SpinBox" parent="."] +margin_left = 128.0 +margin_top = 64.0 +margin_right = 202.0 +margin_bottom = 88.0 +max_value = 65536.0 +value = 25565.0 + +[node name="Name" type="LineEdit" parent="."] +margin_left = 16.0 +margin_top = 96.0 +margin_right = 199.0 +margin_bottom = 120.0 +text = "PlayerName" +max_length = 30 + +[node name="ConnectButton" type="Button" parent="."] +margin_left = 16.0 +margin_top = 128.0 +margin_right = 202.0 +margin_bottom = 153.0 +text = "Connect" + +[node name="BackButton" type="Button" parent="."] +margin_left = 16.0 +margin_top = 16.0 +margin_right = 80.0 +margin_bottom = 36.0 +text = "Back" + +[connection signal="pressed" from="ConnectButton" to="." method="_connect_btn"] +[connection signal="pressed" from="BackButton" to="." method="back_to_main"] -- cgit v1.2.3