menus and settings
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 13s
Create tag and build when new code gets to main / Export (push) Successful in 8m15s

This commit is contained in:
2025-10-23 15:21:33 +02:00
parent 916ff1921c
commit ef33336975
122 changed files with 1228 additions and 66 deletions

View File

@@ -1,6 +1,20 @@
[gd_scene load_steps=2 format=3 uid="uid://cc37235kj4384"]
[gd_scene load_steps=6 format=3 uid="uid://cc37235kj4384"]
[ext_resource type="Script" uid="uid://b5oej1q4h7jvh" path="res://addons/maaacks_game_template/base/scripts/ui_sound_controller.gd" id="1_dmagn"]
[ext_resource type="AudioStream" uid="uid://d0iuat23cm2yd" path="res://assets/audio/kenney_ui-audio/mouseclick1.ogg" id="2_7f8wo"]
[ext_resource type="AudioStream" uid="uid://skgtkftvx1gn" path="res://assets/audio/kenney_ui-audio/switch20.ogg" id="3_nvwb3"]
[ext_resource type="AudioStream" uid="uid://dybdbi28p8a7o" path="res://assets/audio/kenney_ui-audio/switch3.ogg" id="4_e13bv"]
[ext_resource type="AudioStream" uid="uid://o3wvigf0nhg" path="res://assets/audio/kenney_ui-audio/switch4.ogg" id="5_42wer"]
[node name="ProjectUISoundController" type="Node"]
script = ExtResource("1_dmagn")
button_hovered = ExtResource("2_7f8wo")
button_focused = ExtResource("2_7f8wo")
button_pressed = ExtResource("3_nvwb3")
tab_hovered = ExtResource("2_7f8wo")
tab_selected = ExtResource("3_nvwb3")
slider_hovered = ExtResource("2_7f8wo")
slider_focused = ExtResource("2_7f8wo")
slider_drag_started = ExtResource("4_e13bv")
slider_drag_ended = ExtResource("5_42wer")
line_hovered = ExtResource("2_7f8wo")

View File

@@ -2,17 +2,28 @@ class_name PauseMenuController
extends Node
## Node for opening a pause menu when detecting a 'ui_cancel' event.
@export var pause_menu_packed : PackedScene
@export var focused_viewport : Viewport
@export_group("Inputs")
@export var base_mode:GUIDEMappingContext
@export var pause:GUIDEAction
func _ready() -> void:
GUIDE.enable_mapping_context(base_mode)
pause.triggered.connect(on_input_pause)
func on_input_pause():
if not focused_viewport:
focused_viewport = get_viewport()
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
var current_menu = pause_menu_packed.instantiate()
get_tree().current_scene.call_deferred("add_child", current_menu)
await current_menu.tree_exited
if is_inside_tree() and _initial_focus_control:
_initial_focus_control.grab_focus()
func _unhandled_input(event : InputEvent) -> void:
if event.is_action_pressed("ui_cancel"):
if not focused_viewport:
focused_viewport = get_viewport()
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
var current_menu = pause_menu_packed.instantiate()
get_tree().current_scene.call_deferred("add_child", current_menu)
await current_menu.tree_exited
if is_inside_tree() and _initial_focus_control:
_initial_focus_control.grab_focus()
pass