gd: added menu template
This commit is contained in:
@ -0,0 +1,10 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cikf3o5omnunl"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqqngki8bm3iq" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.tscn" id="1_kverk"]
|
||||
[ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="2_ihtu5"]
|
||||
|
||||
[node name="OverlaidMenuContainer" instance=ExtResource("1_kverk")]
|
||||
menu_scene = ExtResource("2_ihtu5")
|
||||
|
||||
[node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"]
|
||||
text = "Options"
|
@ -0,0 +1,81 @@
|
||||
class_name PauseMenu
|
||||
extends OverlaidMenu
|
||||
|
||||
@export var options_packed_scene : PackedScene
|
||||
@export_file("*.tscn") var main_menu_scene : String
|
||||
|
||||
var popup_open : Node
|
||||
|
||||
func close_popup() -> void:
|
||||
if popup_open != null:
|
||||
popup_open.hide()
|
||||
popup_open = null
|
||||
|
||||
func _disable_focus() -> void:
|
||||
for child in %MenuButtons.get_children():
|
||||
if child is Control:
|
||||
child.focus_mode = FOCUS_NONE
|
||||
|
||||
func _enable_focus() -> void:
|
||||
for child in %MenuButtons.get_children():
|
||||
if child is Control:
|
||||
child.focus_mode = FOCUS_ALL
|
||||
|
||||
func _load_scene(scene_path: String) -> void:
|
||||
_scene_tree.paused = false
|
||||
SceneLoader.load_scene(scene_path)
|
||||
|
||||
func open_options_menu() -> void:
|
||||
var options_scene := options_packed_scene.instantiate()
|
||||
add_child(options_scene)
|
||||
_disable_focus.call_deferred()
|
||||
await options_scene.tree_exiting
|
||||
_enable_focus.call_deferred()
|
||||
|
||||
func _handle_cancel_input() -> void:
|
||||
if popup_open != null:
|
||||
close_popup()
|
||||
else:
|
||||
super._handle_cancel_input()
|
||||
|
||||
func _hide_exit_for_web() -> void:
|
||||
if OS.has_feature("web"):
|
||||
%ExitButton.hide()
|
||||
|
||||
func _hide_options_if_unset() -> void:
|
||||
if options_packed_scene == null:
|
||||
%OptionsButton.hide()
|
||||
|
||||
func _hide_main_menu_if_unset() -> void:
|
||||
if main_menu_scene.is_empty():
|
||||
%MainMenuButton.hide()
|
||||
|
||||
func _ready() -> void:
|
||||
_hide_exit_for_web()
|
||||
_hide_options_if_unset()
|
||||
_hide_main_menu_if_unset()
|
||||
|
||||
func _on_restart_button_pressed() -> void:
|
||||
%ConfirmRestart.popup_centered()
|
||||
popup_open = %ConfirmRestart
|
||||
|
||||
func _on_options_button_pressed() -> void:
|
||||
open_options_menu()
|
||||
|
||||
func _on_main_menu_button_pressed() -> void:
|
||||
%ConfirmMainMenu.popup_centered()
|
||||
popup_open = %ConfirmMainMenu
|
||||
|
||||
func _on_exit_button_pressed() -> void:
|
||||
%ConfirmExit.popup_centered()
|
||||
popup_open = %ConfirmExit
|
||||
|
||||
func _on_confirm_restart_confirmed() -> void:
|
||||
SceneLoader.reload_current_scene()
|
||||
close()
|
||||
|
||||
func _on_confirm_main_menu_confirmed() -> void:
|
||||
_load_scene(main_menu_scene)
|
||||
|
||||
func _on_confirm_exit_confirmed() -> void:
|
||||
get_tree().quit()
|
@ -0,0 +1 @@
|
||||
uid://uidwhqh4fyhj
|
@ -0,0 +1,68 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://b5cd6sa8qq4vc"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_gm3uv"]
|
||||
[ext_resource type="Script" uid="uid://uidwhqh4fyhj" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.gd" id="2_0ln3r"]
|
||||
[ext_resource type="PackedScene" uid="uid://cikf3o5omnunl" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/mini_options_overlaid_menu.tscn" id="3_kv70e"]
|
||||
|
||||
[node name="PauseMenu" instance=ExtResource("1_gm3uv")]
|
||||
process_mode = 3
|
||||
script = ExtResource("2_0ln3r")
|
||||
options_packed_scene = ExtResource("3_kv70e")
|
||||
main_menu_scene = "res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn"
|
||||
pauses_game = true
|
||||
|
||||
[node name="MarginContainer" parent="MenuPanelContainer" index="0"]
|
||||
theme_override_constants/margin_left = 64
|
||||
theme_override_constants/margin_right = 64
|
||||
|
||||
[node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"]
|
||||
text = "Paused"
|
||||
|
||||
[node name="MenuButtonsMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="2"]
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="CloseButton" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
|
||||
text = "Resume"
|
||||
|
||||
[node name="RestartButton" type="Button" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
|
||||
layout_mode = 2
|
||||
text = "Restart"
|
||||
|
||||
[node name="OptionsButton" type="Button" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Options"
|
||||
|
||||
[node name="MainMenuButton" type="Button" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="3"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Main Menu"
|
||||
|
||||
[node name="ExitButton" type="Button" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="4"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Exit Game"
|
||||
|
||||
[node name="ConfirmRestart" type="ConfirmationDialog" parent="." index="2"]
|
||||
unique_name_in_owner = true
|
||||
auto_translate_mode = 1
|
||||
dialog_text = "Restart the game?"
|
||||
|
||||
[node name="ConfirmMainMenu" type="ConfirmationDialog" parent="." index="3"]
|
||||
unique_name_in_owner = true
|
||||
auto_translate_mode = 1
|
||||
dialog_text = "Go back to main menu?"
|
||||
|
||||
[node name="ConfirmExit" type="ConfirmationDialog" parent="." index="4"]
|
||||
unique_name_in_owner = true
|
||||
auto_translate_mode = 1
|
||||
dialog_text = "Quit the game?"
|
||||
|
||||
[connection signal="pressed" from="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons/RestartButton" to="." method="_on_restart_button_pressed"]
|
||||
[connection signal="pressed" from="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons/OptionsButton" to="." method="_on_options_button_pressed"]
|
||||
[connection signal="pressed" from="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
|
||||
[connection signal="pressed" from="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="." method="_on_exit_button_pressed"]
|
||||
[connection signal="confirmed" from="ConfirmRestart" to="." method="_on_confirm_restart_confirmed"]
|
||||
[connection signal="confirmed" from="ConfirmMainMenu" to="." method="_on_confirm_main_menu_confirmed"]
|
||||
[connection signal="confirmed" from="ConfirmExit" to="." method="_on_confirm_exit_confirmed"]
|
Reference in New Issue
Block a user