aboutsummaryrefslogtreecommitdiff
path: root/game/src/OptionMenu/ResolutionRevertDialog.gd
blob: 4d2b8f29adadb57a9b25abf2fcd4c3d95735a09b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
extends ConfirmationDialog
class_name ResolutionRevertDialog

signal dialog_accepted(button : SettingRevertButton)
signal dialog_reverted(button : SettingRevertButton)

@export_group("Nodes")
@export var timer : Timer

var _revert_node : SettingRevertButton = null

func show_dialog(button : SettingRevertButton, time : float = 0) -> void:
   timer.start(time)
   popup_centered(Vector2(1,1))
   _revert_node = button

func _notification(what):
   if what == NOTIFICATION_VISIBILITY_CHANGED:
      set_process(visible)
      if not visible: _revert_node = null

func _process(_delta) -> void:
   dialog_text = tr("OPTIONS_VIDEO_RESOLUTION_DIALOG_TEXT").format({ "time": int(timer.time_left) })

func _on_canceled_or_close_requested() -> void:
   timer.stop()
   dialog_reverted.emit(_revert_node)

func _on_confirmed() -> void:
   timer.stop()
   dialog_accepted.emit(_revert_node)

func _on_resolution_revert_timer_timeout() -> void:
   dialog_reverted.emit(_revert_node)
   hide()