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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
extends Control

var setting = false
export var trigger = "pause"
export var pausing = true


func _ready():
	$ColorRect/settings/ColorRect/pause.visible = pausing
	$ColorRect/settings/ColorRect/pause2.visible = pausing
	$ColorRect/pause1.visible = pausing
	$ColorRect/pause2.visible = pausing
	$ColorRect/pause_icon.visible = pausing
	$ColorRect/settings/ColorRect/pause_icon.visible = pausing


func _input(event):
	if event.is_action_pressed(trigger):
		var new_pause_state = not get_tree().paused
		get_tree().paused = new_pause_state
		visible = new_pause_state
		if new_pause_state:
			$ColorRect/VBoxContainer/mainmenu.grab_focus()
			$ColorRect/settings/ColorRect/Stars.emitting = true
		elif new_pause_state == false:
			$ColorRect/settings.hide()
			$ColorRect/settings/ColorRect/Stars.emitting = false


func _exit_tree():
	get_tree().paused = false


func _on_settings_back():
	$ColorRect/settings.visible = false
	yield(get_tree().create_timer(.3), "timeout")
	$ColorRect/VBoxContainer/mainmenu.grab_focus()
	setting = false


func update_settings(settings: Dictionary) -> void:
	OS.window_fullscreen = settings.fullscreen
	OS.set_window_size(settings.resolution)
	OS.vsync_enabled = settings.vsync


func _on_settings_apply_button_pressed(settings) -> void:
	update_settings(settings)


# warning-ignore:return_value_discarded
func _on_mainmenu_gui_input(event):
	if event.is_action("ui_accept"):
		Game.transition("res://ui/scenes/StartMenu.tscn")


func _on_options_gui_input(event):
	if event.is_action("ui_accept"):
		if setting != true:
			setting = true
			$ColorRect/settings.called()


func _on_exit_gui_input(event):
	if event.is_action("ui_accept"):
		Game.exit()