Added main menu

This commit is contained in:
2025-10-18 16:20:34 +03:00
parent 49f6dfdd23
commit ba81352133
21 changed files with 569 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
extends Node
signal show_main_menu
func _on_main_menu_button_pressed() -> void:
show_main_menu.emit()
+1
View File
@@ -0,0 +1 @@
uid://dclkpithyykju
+42
View File
@@ -0,0 +1,42 @@
[gd_scene load_steps=2 format=3 uid="uid://c3q3g2647qc27"]
[ext_resource type="Script" uid="uid://dclkpithyykju" path="res://menu/credits.gd" id="1_wp78b"]
[node name="Credits" type="Node"]
script = ExtResource("1_wp78b")
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 100.0
offset_top = 100.0
offset_right = 140.0
offset_bottom = 140.0
[node name="VBoxContainer" type="VBoxContainer" parent="Control"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="GridContainer" type="GridContainer" parent="Control/VBoxContainer"]
layout_mode = 2
columns = 2
[node name="ProgrammingLabel" type="Label" parent="Control/VBoxContainer/GridContainer"]
layout_mode = 2
text = "Programming:"
horizontal_alignment = 2
[node name="ProgrammersLabel" type="Label" parent="Control/VBoxContainer/GridContainer"]
layout_mode = 2
text = "Ruslan Ignatov"
[node name="HBoxContainer" type="HBoxContainer" parent="Control/VBoxContainer"]
layout_mode = 2
alignment = 2
[node name="MainMenuButton" type="Button" parent="Control/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Main Menu"
[connection signal="pressed" from="Control/VBoxContainer/HBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
+22
View File
@@ -0,0 +1,22 @@
extends Node
signal continue_game
signal new_game
signal quit_game
signal show_options
func _on_continue_button_pressed() -> void:
continue_game.emit()
func _on_start_button_pressed() -> void:
new_game.emit()
func _on_options_button_pressed() -> void:
show_options.emit()
func _on_quit_button_pressed() -> void:
quit_game.emit()
+1
View File
@@ -0,0 +1 @@
uid://dixdfabe2vfsj
+41
View File
@@ -0,0 +1,41 @@
[gd_scene load_steps=2 format=3 uid="uid://bxlccevt52y70"]
[ext_resource type="Script" uid="uid://dixdfabe2vfsj" path="res://menu/main_menu.gd" id="1_chmv6"]
[node name="MainMenu" type="Node"]
script = ExtResource("1_chmv6")
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="VBoxContainer" type="VBoxContainer" parent="Control"]
layout_mode = 0
offset_left = 100.0
offset_top = 100.0
offset_right = 179.0
offset_bottom = 236.0
[node name="ContinueButton" type="Button" parent="Control/VBoxContainer"]
layout_mode = 2
disabled = true
text = "Continue"
[node name="StartButton" type="Button" parent="Control/VBoxContainer"]
layout_mode = 2
text = "Start"
[node name="OptionsButton" type="Button" parent="Control/VBoxContainer"]
layout_mode = 2
text = "Options"
[node name="QuitButton" type="Button" parent="Control/VBoxContainer"]
layout_mode = 2
text = "Quit"
[connection signal="pressed" from="Control/VBoxContainer/ContinueButton" to="." method="_on_continue_button_pressed"]
[connection signal="pressed" from="Control/VBoxContainer/StartButton" to="." method="_on_start_button_pressed"]
[connection signal="pressed" from="Control/VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="Control/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
+39
View File
@@ -0,0 +1,39 @@
extends Node
signal show_credits
signal show_main_menu
@onready var fullscreen_check := $Control/VBoxContainer/OptionsGridContainer/FullscreenCheckButton
@onready var window_factor := $Control/VBoxContainer/OptionsGridContainer/WindowFactorOptionButton
func _ready() -> void:
_load_current_settings()
func _load_current_settings() -> void:
fullscreen_check.button_pressed = SettingsManager.fullscreen()
window_factor.selected = SettingsManager.window_factor()
_update_window_factor_disabled()
func _update_window_factor_disabled() -> void:
window_factor.disabled = SettingsManager.fullscreen()
func _on_fullscreen_check_button_toggled(toggled: bool) -> void:
SettingsManager.set_fullscreen(toggled)
_update_window_factor_disabled()
func _on_window_factor_option_button_item_selected(index: int) -> void:
if !SettingsManager.fullscreen():
SettingsManager.set_window_factor(index)
func _on_credits_button_pressed() -> void:
show_credits.emit()
func _on_back_button_pressed() -> void:
show_main_menu.emit()
+1
View File
@@ -0,0 +1 @@
uid://ceng1u112aqg0
+69
View File
@@ -0,0 +1,69 @@
[gd_scene load_steps=2 format=3 uid="uid://btr60idiit4y7"]
[ext_resource type="Script" uid="uid://ceng1u112aqg0" path="res://menu/options.gd" id="1_61pji"]
[node name="Options" type="Node"]
script = ExtResource("1_61pji")
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 100.0
offset_top = 100.0
offset_right = 140.0
offset_bottom = 140.0
[node name="VBoxContainer" type="VBoxContainer" parent="Control"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
alignment = 1
[node name="OptionsGridContainer" type="GridContainer" parent="Control/VBoxContainer"]
layout_mode = 2
columns = 2
[node name="FullscreenLabel" type="Label" parent="Control/VBoxContainer/OptionsGridContainer"]
layout_mode = 2
text = "Fullscreen"
[node name="FullscreenCheckButton" type="CheckButton" parent="Control/VBoxContainer/OptionsGridContainer"]
layout_mode = 2
[node name="WindowFactorLabel" type="Label" parent="Control/VBoxContainer/OptionsGridContainer"]
layout_mode = 2
text = "Window Factor"
[node name="WindowFactorOptionButton" type="OptionButton" parent="Control/VBoxContainer/OptionsGridContainer"]
layout_mode = 2
selected = 0
item_count = 6
popup/item_0/text = "×1"
popup/item_0/id = 0
popup/item_1/text = "×2"
popup/item_1/id = 1
popup/item_2/text = "×3"
popup/item_2/id = 2
popup/item_3/text = "×4"
popup/item_3/id = 3
popup/item_4/text = "×5"
popup/item_4/id = 4
popup/item_5/text = "×6"
popup/item_5/id = 5
[node name="HBoxContainer" type="HBoxContainer" parent="Control/VBoxContainer"]
layout_mode = 2
alignment = 2
[node name="CreditsButton" type="Button" parent="Control/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Credits"
[node name="BackButton" type="Button" parent="Control/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Back"
[connection signal="toggled" from="Control/VBoxContainer/OptionsGridContainer/FullscreenCheckButton" to="." method="_on_fullscreen_check_button_toggled"]
[connection signal="item_selected" from="Control/VBoxContainer/OptionsGridContainer/WindowFactorOptionButton" to="." method="_on_window_factor_option_button_item_selected"]
[connection signal="pressed" from="Control/VBoxContainer/HBoxContainer/CreditsButton" to="." method="_on_credits_button_pressed"]
[connection signal="pressed" from="Control/VBoxContainer/HBoxContainer/BackButton" to="." method="_on_back_button_pressed"]