diff --git a/Main_menu/main_menu.gd b/Main_menu/main_menu.gd index 021aa67..81f0210 100644 --- a/Main_menu/main_menu.gd +++ b/Main_menu/main_menu.gd @@ -5,19 +5,35 @@ extends Control @onready var start_button: Button = $MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Button @onready var settings_button: Button = $MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Button2 @onready var exit_button: Button = $MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Button3 +@onready var settings_menu: Control = $Settings_Menu +@onready var margin_container: MarginContainer = $MarginContainer + + @onready var start_level = preload("res://Main_menu/main_menu.tscn") as PackedScene func _ready(): - start_button.button_down.connect(on_start_pressed) - settings_button.button_down.connect(on_settings_pressed) - exit_button.button_down.connect(on_exit_pressed) + hanlde_signal_connections() func on_start_pressed()-> void: print("scene changed!") get_tree().change_scene_to_packed(start_level) func on_settings_pressed()->void: - pass + margin_container.visible = false + settings_menu.set_process(true) + settings_menu.visible = true -func on_exit_pressed() ->void: +func exited_game() ->void: get_tree().quit() + +func exited_settings() -> void: + margin_container.visible = true + settings_menu.visible = false + + + +func hanlde_signal_connections() ->void: + start_button.button_down.connect(on_start_pressed) + settings_button.button_down.connect(on_settings_pressed) + exit_button.button_down.connect(exited_game) + settings_menu.exit_options_menu.connect(exited_settings) diff --git a/Main_menu/main_menu.tscn b/Main_menu/main_menu.tscn index 2515b69..b981892 100644 --- a/Main_menu/main_menu.tscn +++ b/Main_menu/main_menu.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=6 format=3 uid="uid://s4dt2nklh1ef"] +[gd_scene load_steps=7 format=3 uid="uid://s4dt2nklh1ef"] [ext_resource type="Texture2D" uid="uid://cpykl56e4h7q1" path="res://Main_menu/background.jpg" id="1_3skw3"] [ext_resource type="Script" path="res://Main_menu/main_menu.gd" id="1_mhyy3"] [ext_resource type="FontFile" uid="uid://c3jp6yk6l8gei" path="res://Main_menu/KnightWarrior-w16n8.otf" id="2_7dnc6"] +[ext_resource type="PackedScene" uid="uid://bd2tk3epl8hbw" path="res://Settings_menu/options_menu.tscn" id="4_xieoo"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ii5ra"] bg_color = Color(0.6, 0.6, 0.6, 0) @@ -94,3 +95,7 @@ layout_mode = 2 theme_override_fonts/font = SubResource("SystemFont_e8c4f") theme_override_font_sizes/font_size = 24 text = "Exit" + +[node name="Settings_Menu" parent="." instance=ExtResource("4_xieoo")] +visible = false +layout_mode = 1 diff --git a/Settings_menu/options_menu.tscn b/Settings_menu/options_menu.tscn new file mode 100644 index 0000000..d9b8f67 --- /dev/null +++ b/Settings_menu/options_menu.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=5 format=3 uid="uid://bd2tk3epl8hbw"] + +[ext_resource type="FontFile" uid="uid://c3jp6yk6l8gei" path="res://Main_menu/KnightWarrior-w16n8.otf" id="1_62i2n"] +[ext_resource type="Script" path="res://Settings_menu/settings_menu.gd" id="1_p1tcl"] +[ext_resource type="PackedScene" uid="uid://b55g5fki74hey" path="res://Settings_menu/settings_tab_container.tscn" id="3_jn3pd"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ag8kh"] +bg_color = Color(0.6, 0.6, 0.6, 0) +shadow_color = Color(0, 0, 0, 1) + +[node name="Settings_Menu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_p1tcl") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 12 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 12 +theme_override_constants/margin_bottom = 12 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="Label-title" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/line_spacing = 15 +theme_override_constants/shadow_offset_x = 15 +theme_override_constants/shadow_offset_y = 20 +theme_override_constants/outline_size = 24 +theme_override_fonts/font = ExtResource("1_62i2n") +theme_override_font_sizes/font_size = 32 +theme_override_styles/normal = SubResource("StyleBoxFlat_ag8kh") +text = "Settings" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Control" parent="MarginContainer/VBoxContainer" instance=ExtResource("3_jn3pd")] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Exit_Button" type="Button" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 8 +text = "Exit" diff --git a/Settings_menu/settings_menu.gd b/Settings_menu/settings_menu.gd new file mode 100644 index 0000000..6cc2b94 --- /dev/null +++ b/Settings_menu/settings_menu.gd @@ -0,0 +1,13 @@ +extends Control +@onready var exit_button: Button = $MarginContainer/VBoxContainer/Exit_Button + +signal exit_options_menu + + +func _ready(): + exit_button.button_down.connect(on_exit_pressed) + set_process(false) + +func on_exit_pressed() -> void: + exit_options_menu.emit() + set_process(false) diff --git a/Settings_menu/settings_tab_container.tscn b/Settings_menu/settings_tab_container.tscn new file mode 100644 index 0000000..7ebb5e0 --- /dev/null +++ b/Settings_menu/settings_tab_container.tscn @@ -0,0 +1,230 @@ +[gd_scene format=3 uid="uid://b55g5fki74hey"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TabContainer" type="TabContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 100.0 +offset_top = 50.0 +offset_right = -100.0 +offset_bottom = -50.0 +grow_horizontal = 2 +grow_vertical = 2 +tab_alignment = 1 +current_tab = 0 + +[node name="Sound" type="TabBar" parent="TabContainer"] +layout_mode = 2 +metadata/_tab_index = 0 + +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Sound"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 24 +theme_override_constants/margin_top = 24 +theme_override_constants/margin_right = 24 +theme_override_constants/margin_bottom = 24 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Sound/MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 64 +alignment = 1 + +[node name="Label4" type="Label" parent="TabContainer/Sound/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label5" type="Label" parent="TabContainer/Sound/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="TabContainer/Sound/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label2" type="Label" parent="TabContainer/Sound/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label" type="Label" parent="TabContainer/Sound/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Graphics" type="TabBar" parent="TabContainer"] +visible = false +layout_mode = 2 +metadata/_tab_index = 1 + +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Graphics"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 24 +theme_override_constants/margin_top = 24 +theme_override_constants/margin_right = 24 +theme_override_constants/margin_bottom = 24 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Graphics/MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 64 +alignment = 1 + +[node name="Label4" type="Label" parent="TabContainer/Graphics/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Second +" +horizontal_alignment = 1 + +[node name="Label5" type="Label" parent="TabContainer/Graphics/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Second +" +horizontal_alignment = 1 + +[node name="Label6" type="Label" parent="TabContainer/Graphics/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Second +" +horizontal_alignment = 1 + +[node name="Label7" type="Label" parent="TabContainer/Graphics/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Second +" +horizontal_alignment = 1 + +[node name="Label8" type="Label" parent="TabContainer/Graphics/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Second +" +horizontal_alignment = 1 + +[node name="Controls" type="TabBar" parent="TabContainer"] +visible = false +layout_mode = 2 +metadata/_tab_index = 2 + +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Controls"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 24 +theme_override_constants/margin_top = 24 +theme_override_constants/margin_right = 24 +theme_override_constants/margin_bottom = 24 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 64 +alignment = 1 + +[node name="Label" type="Label" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "third +" +horizontal_alignment = 1 + +[node name="Label2" type="Label" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "third +" +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "third +" +horizontal_alignment = 1 + +[node name="Label4" type="Label" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "third +" +horizontal_alignment = 1 + +[node name="Label5" type="Label" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "third +" +horizontal_alignment = 1 + +[node name="Accesibility" type="TabBar" parent="TabContainer"] +visible = false +layout_mode = 2 +metadata/_tab_index = 3 + +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Accesibility"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 24 +theme_override_constants/margin_top = 24 +theme_override_constants/margin_right = 24 +theme_override_constants/margin_bottom = 24 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Accesibility/MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 64 +alignment = 1 + +[node name="Label4" type="Label" parent="TabContainer/Accesibility/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label5" type="Label" parent="TabContainer/Accesibility/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="TabContainer/Accesibility/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label2" type="Label" parent="TabContainer/Accesibility/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1 + +[node name="Label" type="Label" parent="TabContainer/Accesibility/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "First +" +horizontal_alignment = 1