summaryrefslogtreecommitdiffstats
path: root/pause_menu.gd
diff options
context:
space:
mode:
Diffstat (limited to 'pause_menu.gd')
-rw-r--r--pause_menu.gd23
1 files changed, 23 insertions, 0 deletions
diff --git a/pause_menu.gd b/pause_menu.gd
index e5a3129..6079519 100644
--- a/pause_menu.gd
+++ b/pause_menu.gd
@@ -2,9 +2,18 @@ class_name PauseMenu
extends CanvasLayer
var active_map_room: MapRoom
+var active_page_index: int = 0
+@export var pages: Array[Node]
func _ready():
deactivate()
+ $System/QuitButton.grab_focus.call_deferred()
+ $System/QuitButton.connect("pressed", _on_quit_button_pressed)
+
+func _process(_delta: float):
+ if visible and Input.is_action_just_pressed("jump"):
+ active_page_index = (active_page_index + 1) % pages.size()
+ refresh_page()
func set_room_name(map_room_name: String):
if active_map_room: active_map_room.unhighlight()
@@ -19,9 +28,23 @@ func set_room_name(map_room_name: String):
$Map.position = -pos + delta - active_map_room.size / 2
func activate():
+ active_page_index = 0
visible = true
+ get_tree().paused = true
get_tree().call_group("ui_movement", "set_visible", false)
+ refresh_page()
func deactivate():
visible = false
+ get_tree().paused = false
get_tree().call_group("ui_movement", "set_visible", true)
+
+func refresh_page():
+ for i in range(pages.size()):
+ pages[i].visible = (active_page_index == i)
+
+func _on_quit_button_pressed() -> void:
+ if not visible: return
+ var top: Top = get_tree().root.get_node("Top")
+ top.get_transition_player().room_transition(null, "res://room_main_menu.tscn", null)
+ deactivate()