menus and settings
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user