a try to have a pause menu
authorEduardo <[email protected]>
Sat, 27 Jan 2024 01:12:10 +0000 (02:12 +0100)
committerEduardo <[email protected]>
Sat, 27 Jan 2024 01:12:10 +0000 (02:12 +0100)
addons/scene_manager/scenes.gd
levels/unicorn_level/unicorn_map.tscn
menus/main_menu/MainMenu.gd
menus/pause/Pause.gd [new file with mode: 0644]
menus/pause/Pause.tscn [new file with mode: 0644]

index 0ecd9b24e03b0c27f4a8ba03fe3c4574fa029a98..f8cf9cf55a7383570eaf5557684b604b8b12f55e 100644 (file)
@@ -5,4 +5,4 @@
 #
 extends Node
 
-var scenes: Dictionary = {"Credits":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/credits/Credits.tscn"},"MainMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/main_menu/MainMenu.tscn"},"Player":{"sections":[],"settings":{"All":{"subsection":"","visibility":false}},"value":"res://player/Player.tscn"},"SettingsMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/settings_menu/SettingsMenu.tscn"},"_ignore_list":["res://addons","res://assets","res://game_settings"],"_sections":["Scenes","Loading Scenes"],"test_debug_msg":{"sections":[],"settings":{"All":{"subsection":"","visibility":true}},"value":"res://examples/test/test.tscn"},"unicorn_map":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://levels/unicorn_level/unicorn_map.tscn"}}
+var scenes: Dictionary = {"Credits":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/credits/Credits.tscn"},"MainMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/main_menu/MainMenu.tscn"},"Player":{"sections":[],"settings":{"All":{"subsection":"","visibility":false}},"value":"res://player/Player.tscn"},"SettingsMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/settings_menu/SettingsMenu.tscn"},"_ignore_list":["res://addons","res://assets","res://game_settings"],"_sections":["Scenes","Loading Scenes"],"pause":{"sections":[],"settings":{"All":{"subsection":"","visibility":false}},"value":"res://menus/pause/pause.tscn"},"test_debug_msg":{"sections":[],"settings":{"All":{"subsection":"","visibility":true}},"value":"res://examples/test/test.tscn"},"unicorn_map":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://levels/unicorn_level/unicorn_map.tscn"}}
index e1807f7b1153c6a5e94a14075ae1ba67532fa8c7..1d1b4b0fc6cd7a2df89a79cf7a0385e94677f5c7 100644 (file)
@@ -1,10 +1,11 @@
-[gd_scene load_steps=10 format=3 uid="uid://t5uneae6abmn"]
+[gd_scene load_steps=11 format=3 uid="uid://t5uneae6abmn"]
 
 [ext_resource type="PackedScene" uid="uid://bpuiyd81j8177" path="res://assets/Farola.glb" id="1_naw6w"]
 [ext_resource type="PackedScene" uid="uid://1mmjp4ugn7kk" path="res://player/Player.tscn" id="1_yhk1e"]
 [ext_resource type="Shader" path="res://shaders/screen_shaders.gdshader" id="2_nguig"]
 [ext_resource type="MeshLibrary" uid="uid://didmc6xrsyrne" path="res://assets/plain_tiles.tres" id="3_g2il3"]
 [ext_resource type="PackedScene" uid="uid://cggqb75a8w8r" path="res://addons/debug_menu/debug_menu.tscn" id="3_s7w0p"]
+[ext_resource type="PackedScene" uid="uid://cvx5mhciymsr2" path="res://menus/pause/Pause.tscn" id="5_ovgcu"]
 
 [sub_resource type="BoxShape3D" id="BoxShape3D_s6l2r"]
 size = Vector3(100, 6, 100)
@@ -144,6 +145,9 @@ anchor_bottom = 1.0
 grow_horizontal = 2
 grow_vertical = 2
 
+[node name="Pause" parent="." instance=ExtResource("5_ovgcu")]
+visible = false
+
 [node name="DebugMenu" parent="." node_paths=PackedStringArray("fps", "frame_time", "frame_number", "frame_history_total_avg", "frame_history_total_min", "frame_history_total_max", "frame_history_total_last", "frame_history_cpu_avg", "frame_history_cpu_min", "frame_history_cpu_max", "frame_history_cpu_last", "frame_history_gpu_avg", "frame_history_gpu_min", "frame_history_gpu_max", "frame_history_gpu_last", "fps_graph", "total_graph", "cpu_graph", "gpu_graph", "information", "settings") instance=ExtResource("3_s7w0p")]
 visible = false
 fps = NodePath("DebugMenu/VBoxContainer/FPS")
index a93cf15cbfad3705f6f0902b4c817ee559f6a166..e08984f5e68d70398f1eb7ce718ffe267a7f0023 100644 (file)
@@ -10,6 +10,7 @@ extends Control
 
 # Called when the node enters the scene tree for the first time.
 func _ready():
+       SceneManager.process_mode = Node.PROCESS_MODE_ALWAYS
        SceneManager.validate_scene(playBtnSscene)
        SceneManager.validate_scene(settingsBtnScene)
        SceneManager.validate_scene(creditsBtnScene)
diff --git a/menus/pause/Pause.gd b/menus/pause/Pause.gd
new file mode 100644 (file)
index 0000000..7b30801
--- /dev/null
@@ -0,0 +1,33 @@
+extends Control
+
+@export var settingsBtnScene : String
+@export var exitBtnScene : String
+
+@onready var fade_out_options = SceneManager.create_options()
+@onready var fade_in_options = SceneManager.create_options()
+@onready var general_options = SceneManager.create_general_options()
+
+func _init():
+       SceneManager.validate_scene(settingsBtnScene)
+       SceneManager.validate_scene(exitBtnScene)
+
+func _input(event):
+       if event.is_action_pressed("ui_cancel"):
+               get_tree().paused = true
+               Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+               show()
+
+
+func _on_unpause_button_pressed():
+       hide()
+       Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+       get_tree().paused = false
+
+
+func _on_settings_button_pressed():
+       SceneManager.change_scene(settingsBtnScene, fade_out_options, fade_in_options, general_options)
+
+
+func _on_exit_button_pressed():
+       get_tree().paused = false
+       SceneManager.change_scene(exitBtnScene, fade_out_options, fade_in_options, general_options)
diff --git a/menus/pause/Pause.tscn b/menus/pause/Pause.tscn
new file mode 100644 (file)
index 0000000..ea87a08
--- /dev/null
@@ -0,0 +1,86 @@
+[gd_scene load_steps=2 format=3 uid="uid://cvx5mhciymsr2"]
+
+[ext_resource type="Script" path="res://menus/pause/Pause.gd" id="1_b3njo"]
+
+[node name="Pause" 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_b3njo")
+settingsBtnScene = "SettingsMenu"
+exitBtnScene = "MainMenu"
+
+[node name="ColorRect" type="ColorRect" parent="."]
+process_mode = 2
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+color = Color(0, 0, 0, 0.686275)
+
+[node name="CenterContainer" type="CenterContainer" parent="."]
+process_mode = 2
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
+layout_mode = 2
+
+[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 16
+theme_override_constants/margin_top = 16
+theme_override_constants/margin_right = 16
+theme_override_constants/margin_bottom = 16
+
+[node name="Label" type="Label" parent="CenterContainer/VBoxContainer/MarginContainer"]
+layout_mode = 2
+text = "PAUSE"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="MarginContainer2" type="MarginContainer" parent="CenterContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 16
+theme_override_constants/margin_top = 8
+theme_override_constants/margin_right = 16
+theme_override_constants/margin_bottom = 8
+
+[node name="UnpauseButton" type="Button" parent="CenterContainer/VBoxContainer/MarginContainer2"]
+layout_mode = 2
+text = "Return to Game"
+
+[node name="MarginContainer3" type="MarginContainer" parent="CenterContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 16
+theme_override_constants/margin_top = 8
+theme_override_constants/margin_right = 16
+theme_override_constants/margin_bottom = 8
+
+[node name="SettingsButton" type="Button" parent="CenterContainer/VBoxContainer/MarginContainer3"]
+layout_mode = 2
+text = "Settings"
+
+[node name="MarginContainer4" type="MarginContainer" parent="CenterContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 16
+theme_override_constants/margin_top = 8
+theme_override_constants/margin_right = 16
+theme_override_constants/margin_bottom = 64
+
+[node name="ExitButton" type="Button" parent="CenterContainer/VBoxContainer/MarginContainer4"]
+layout_mode = 2
+text = "Exit"
+
+[connection signal="pressed" from="CenterContainer/VBoxContainer/MarginContainer2/UnpauseButton" to="." method="_on_unpause_button_pressed"]
+[connection signal="pressed" from="CenterContainer/VBoxContainer/MarginContainer3/SettingsButton" to="." method="_on_settings_button_pressed"]
+[connection signal="pressed" from="CenterContainer/VBoxContainer/MarginContainer4/ExitButton" to="." method="_on_exit_button_pressed"]