And once again

This commit is contained in:
2025-02-18 13:30:48 +01:00
parent 37154955d6
commit 16b06ba642
77 changed files with 581 additions and 199 deletions

View File

@ -0,0 +1,66 @@
extends Control
class_name MainMenu
const MAP_DIR := "res://scenes/maps/maps/"
@onready var map_list: ItemList = $CreateServerMenu/MapList
@onready var create_server_panel: VBoxContainer = $CreateServerMenu
@onready var join_server_panel: VBoxContainer = $JoinServerMenu
var game_root: GameRoot
var chosen_map: String
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
game_root = helpers.get_root_node()
var map_dir := DirAccess.open(MAP_DIR)
if map_dir:
map_dir.list_dir_begin()
var file_name = map_dir.get_next()
while file_name != "":
map_list.add_item(file_name)
file_name = map_dir.get_next()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_join_pressed() -> void:
if create_server_panel.visible:
create_server_panel.visible = false
join_server_panel.visible = true
func _on_create_server_pressed() -> void:
if join_server_panel.visible:
join_server_panel.visible = false
create_server_panel.visible = true
func _on_close_join_pressed() -> void:
join_server_panel.visible = false
func _on_close_create_pressed() -> void:
create_server_panel.visible = false
func _on_map_list_item_selected(index: int) -> void:
chosen_map = map_list.get_item_text(index)
func _on_create_pressed() -> void:
game_root.create_server(27015, 30, false, chosen_map)
var server_data := helpers.get_server_node()
game_root.load_map.emit(server_data.current_map)
visible = false
func _on_join_server_pressed() -> void:
var ip: String = $JoinServerMenu/Host/TextEdit.text
var port: int = $JoinServerMenu/Port/TextEdit.text.to_int()
var err := game_root.join_server(ip, port)
var server_data: ServerData = null
visible = false

View File

@ -0,0 +1,126 @@
[gd_scene load_steps=2 format=3 uid="uid://dnqi0ih2hcpym"]
[ext_resource type="Script" path="res://scenes/interface/main_menu/main_menu.gd" id="1_ogguo"]
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
script = ExtResource("1_ogguo")
[node name="Buttons" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_top = -21.5
offset_right = 38.0
offset_bottom = 21.5
grow_vertical = 2
[node name="CreateServer" type="Button" parent="Buttons"]
layout_mode = 2
text = "Create server"
[node name="Join" type="Button" parent="Buttons"]
layout_mode = 2
text = "Join"
[node name="CreateServerMenu" type="VBoxContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 0
grow_vertical = 2
[node name="Port" type="HBoxContainer" parent="CreateServerMenu"]
layout_mode = 2
[node name="Label" type="Label" parent="CreateServerMenu/Port"]
layout_mode = 2
text = "Port"
[node name="TextEdit" type="TextEdit" parent="CreateServerMenu/Port"]
clip_contents = false
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
tooltip_text = "On which port to run the server
"
text = "27015"
[node name="MapList" type="ItemList" parent="CreateServerMenu"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
[node name="Create" type="Button" parent="CreateServerMenu"]
layout_mode = 2
text = "Create"
[node name="Close" type="Button" parent="CreateServerMenu"]
layout_mode = 2
text = "Close
"
[node name="JoinServerMenu" type="VBoxContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -200.0
offset_bottom = 120.0
grow_horizontal = 0
[node name="Host" type="HBoxContainer" parent="JoinServerMenu"]
layout_mode = 2
[node name="Label" type="Label" parent="JoinServerMenu/Host"]
layout_mode = 2
text = "Host"
[node name="TextEdit" type="TextEdit" parent="JoinServerMenu/Host"]
clip_contents = false
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
tooltip_text = "On which port to run the server
"
text = "127.0.0.1"
[node name="Port" type="HBoxContainer" parent="JoinServerMenu"]
layout_mode = 2
[node name="Label" type="Label" parent="JoinServerMenu/Port"]
layout_mode = 2
text = "Port"
[node name="TextEdit" type="TextEdit" parent="JoinServerMenu/Port"]
clip_contents = false
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
tooltip_text = "On which port to run the server
"
text = "27015"
[node name="Join" type="Button" parent="JoinServerMenu"]
layout_mode = 2
text = "Join"
[node name="Close" type="Button" parent="JoinServerMenu"]
layout_mode = 2
text = "Close
"
[connection signal="pressed" from="Buttons/CreateServer" to="." method="_on_create_server_pressed"]
[connection signal="pressed" from="Buttons/Join" to="." method="_on_join_pressed"]
[connection signal="item_selected" from="CreateServerMenu/MapList" to="." method="_on_map_list_item_selected"]
[connection signal="pressed" from="CreateServerMenu/Create" to="." method="_on_create_pressed"]
[connection signal="pressed" from="CreateServerMenu/Close" to="." method="_on_close_create_pressed"]
[connection signal="pressed" from="JoinServerMenu/Join" to="." method="_on_join_server_pressed"]
[connection signal="pressed" from="JoinServerMenu/Close" to="." method="_on_close_join_pressed"]