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/servermenu | |
| parent | a0967ebe815cd229b69fb9578f2288b95b2ddb28 (diff) | |
reorganized, ladders, vehicle control
Diffstat (limited to 'godot/ui/servermenu')
| -rw-r--r-- | godot/ui/servermenu/CmdPrompt.gd | 26 | ||||
| -rw-r--r-- | godot/ui/servermenu/Console.gd | 14 | ||||
| -rw-r--r-- | godot/ui/servermenu/ServerUI.gd | 43 | ||||
| -rw-r--r-- | godot/ui/servermenu/ServerUI.tscn | 108 |
4 files changed, 191 insertions, 0 deletions
diff --git a/godot/ui/servermenu/CmdPrompt.gd b/godot/ui/servermenu/CmdPrompt.gd new file mode 100644 index 0000000..965631b --- /dev/null +++ b/godot/ui/servermenu/CmdPrompt.gd @@ -0,0 +1,26 @@ +extends LineEdit + +export var console_path := @""; onready var console := get_node(console_path) as ScrollContainer +var server_ref = null +var ui_ref = null + +func enter_cmd(new_text: String): + console.add_line(new_text) + text = "" + if new_text.substr(0,1) == "/": #PROCESS COMMAND + var end_ind = new_text.find(" ")-1 + if end_ind < -1: end_ind = -1 + var cmd : String = new_text.substr(1, end_ind) + var args = new_text.substr(end_ind+1, -1).split(" ", false) + + if cmd == "say": + if server_ref != null: + var m_args = {"name" : "SERVER", "msg" : args.join(" ")} + server_ref._send_chat(m_args) + elif cmd == "start": + if server_ref == null: + ui_ref.start_server() + elif cmd == "stop": + if server_ref != null: + ui_ref.stop_server() + diff --git a/godot/ui/servermenu/Console.gd b/godot/ui/servermenu/Console.gd new file mode 100644 index 0000000..ac73525 --- /dev/null +++ b/godot/ui/servermenu/Console.gd @@ -0,0 +1,14 @@ +extends ScrollContainer + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +func add_line(text): + var lbl = Label.new() + lbl.autowrap = true + lbl.text = text + text = "" + $ConsoleLines.add_child(lbl) + yield(get_tree().create_timer(0.05), "timeout") + ensure_control_visible(lbl) diff --git a/godot/ui/servermenu/ServerUI.gd b/godot/ui/servermenu/ServerUI.gd new file mode 100644 index 0000000..d065b21 --- /dev/null +++ b/godot/ui/servermenu/ServerUI.gd @@ -0,0 +1,43 @@ +extends Node2D + + +var server +onready var console = get_node("Console") + +var is_running :bool = false + +func _ready(): + $CmdPrompt.ui_ref = self + +func hide_init_fields(): + for node in get_tree().get_nodes_in_group("init_fields"): + node.visible = false + $StopButton.visible = true + +func show_init_fields(): + for node in get_tree().get_nodes_in_group("init_fields"): + node.visible = true + $StopButton.visible = false + +func start_server(): + console.add_line("Server starting...") + is_running = true + + server = preload("res://scenes/Server.tscn").instance() + $CmdPrompt.server_ref = server + server.start_server($ServerName.text, $MOTD.text, $PlayerCount.value, $MapPath.text, $IP.text, $Port.value, get_tree(), console, "add_line") + + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + hide_init_fields() + +func stop_server(): + server.stop_server() + is_running = false + $CmdPrompt.server_ref = null + + show_init_fields() + +func back_to_main(): + var main_menu = load("res://ui/MainMenu.tscn").instance() + get_tree().get_root().add_child(main_menu) + queue_free() diff --git a/godot/ui/servermenu/ServerUI.tscn b/godot/ui/servermenu/ServerUI.tscn new file mode 100644 index 0000000..f7ed009 --- /dev/null +++ b/godot/ui/servermenu/ServerUI.tscn @@ -0,0 +1,108 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://ui/servermenu/CmdPrompt.gd" type="Script" id=1] +[ext_resource path="res://ui/servermenu/Console.gd" type="Script" id=2] +[ext_resource path="res://ui/servermenu/ServerUI.gd" type="Script" id=4] + +[sub_resource type="StyleBoxFlat" id=1] +bg_color = Color( 0.0705882, 0.0705882, 0.0705882, 1 ) + +[node name="ServerUI" type="Node2D"] +script = ExtResource( 4 ) + +[node name="StartButton" type="Button" parent="." groups=["init_fields"]] +margin_left = 24.0 +margin_top = 56.0 +margin_right = 109.0 +margin_bottom = 76.0 +text = "Start Server" + +[node name="BackButton" type="Button" parent="." groups=["init_fields"]] +margin_left = 24.0 +margin_top = 24.0 +margin_right = 112.0 +margin_bottom = 44.0 +text = "Back" + +[node name="StopButton" type="Button" parent="."] +visible = false +margin_left = 24.0 +margin_top = 88.0 +margin_right = 108.0 +margin_bottom = 108.0 +text = "Stop Server" + +[node name="MapPath" type="LineEdit" parent="." groups=["init_fields"]] +margin_left = 120.0 +margin_top = 24.0 +margin_right = 337.0 +margin_bottom = 48.0 +text = "res://maps/Main.tscn" + +[node name="Console" type="ScrollContainer" parent="."] +margin_left = 588.0 +margin_top = 19.0 +margin_right = 1004.0 +margin_bottom = 383.0 +custom_styles/bg = SubResource( 1 ) +scroll_horizontal_enabled = false +script = ExtResource( 2 ) + +[node name="ConsoleLines" type="VBoxContainer" parent="Console"] +margin_right = 406.0 +margin_bottom = 14.0 + +[node name="Label" type="Label" parent="Console/ConsoleLines"] +margin_right = 406.0 +margin_bottom = 14.0 +text = "----------------------------------CONSOLE-----------------------------------" + +[node name="CmdPrompt" type="LineEdit" parent="."] +margin_left = 588.0 +margin_top = 402.0 +margin_right = 1004.0 +margin_bottom = 426.0 +script = ExtResource( 1 ) +console_path = NodePath("../Console") + +[node name="PlayerCount" type="SpinBox" parent="." groups=["init_fields"]] +margin_left = 344.0 +margin_top = 24.0 +margin_right = 418.0 +margin_bottom = 48.0 +min_value = 1.0 +value = 4.0 + +[node name="Port" type="SpinBox" parent="." groups=["init_fields"]] +margin_left = 264.0 +margin_top = 56.0 +margin_right = 338.0 +margin_bottom = 80.0 +max_value = 65536.0 +value = 25565.0 + +[node name="IP" type="LineEdit" parent="." groups=["init_fields"]] +margin_left = 120.0 +margin_top = 56.0 +margin_right = 250.0 +margin_bottom = 80.0 +text = "127.0.0.1" + +[node name="MOTD" type="TextEdit" parent="." groups=["init_fields"]] +margin_left = 120.0 +margin_top = 120.0 +margin_right = 337.0 +margin_bottom = 160.0 +text = "MOTD" + +[node name="ServerName" type="LineEdit" parent="." groups=["init_fields"]] +margin_left = 120.0 +margin_top = 88.0 +margin_right = 337.0 +margin_bottom = 112.0 +text = "Server Name" + +[connection signal="pressed" from="StartButton" to="." method="start_server"] +[connection signal="pressed" from="BackButton" to="." method="back_to_main"] +[connection signal="pressed" from="StopButton" to="." method="stop_server"] +[connection signal="text_entered" from="CmdPrompt" to="CmdPrompt" method="enter_cmd"] |
