33 lines
771 B
GDScript3
33 lines
771 B
GDScript3
|
|
class_name PixelationResetOverlay
|
||
|
|
extends CanvasLayer
|
||
|
|
|
||
|
|
signal reset_requested
|
||
|
|
signal return_to_settings_requested
|
||
|
|
|
||
|
|
@onready var _reset_button: Button = %ResetPixelationButton
|
||
|
|
|
||
|
|
|
||
|
|
func _ready() -> void:
|
||
|
|
_reset_button.pressed.connect(reset_requested.emit)
|
||
|
|
_reset_button.gui_input.connect(_on_reset_button_gui_input)
|
||
|
|
|
||
|
|
|
||
|
|
func set_settings_open(is_open: bool) -> void:
|
||
|
|
visible = is_open
|
||
|
|
if not is_open and _reset_button.has_focus():
|
||
|
|
_reset_button.release_focus()
|
||
|
|
|
||
|
|
|
||
|
|
func focus_reset_button() -> void:
|
||
|
|
if visible:
|
||
|
|
_reset_button.grab_focus()
|
||
|
|
|
||
|
|
|
||
|
|
func _on_reset_button_gui_input(event: InputEvent) -> void:
|
||
|
|
if (
|
||
|
|
event.is_action_pressed("ui_up")
|
||
|
|
or event.is_action_pressed("ui_focus_prev")
|
||
|
|
):
|
||
|
|
return_to_settings_requested.emit()
|
||
|
|
get_viewport().set_input_as_handled()
|