summaryrefslogtreecommitdiff
path: root/scenes/ui/menu.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/ui/menu.gd')
-rw-r--r--scenes/ui/menu.gd36
1 files changed, 29 insertions, 7 deletions
diff --git a/scenes/ui/menu.gd b/scenes/ui/menu.gd
index 16882a4..a60336b 100644
--- a/scenes/ui/menu.gd
+++ b/scenes/ui/menu.gd
@@ -1,20 +1,42 @@
extends CanvasLayer
-var menu: CanvasLayer
+func pause() -> void:
+ Menu.visible = true
+ get_tree().paused = true
+
+
+func resume() -> void:
+ Menu.visible = false
+ get_tree().paused = false
+
+
+func _ready() -> void:
+ resume()
+
func _input(event: InputEvent) -> void:
- if event.is_action_pressed("ui_menu"):
- if menu:
- menu.queue_free()
- menu = null
+ if event.is_action_pressed("ui_menu") and get_tree().current_scene.scene_file_path != "res://scenes/ui/title.tscn":
+ if get_tree().paused:
+ resume()
else:
- menu = load("uid://dqhxjaxlgy4yf").instantiate()
- add_child(menu)
+ pause()
+func _on_start_pressed() -> void:
+ get_tree().change_scene_to_file("res://scenes/room/start.tscn")
+
func _on_main_menu_pressed() -> void:
+ resume()
get_tree().change_scene_to_file("res://scenes/ui/title.tscn")
func _on_quit_pressed() -> void:
get_tree().quit()
+
+
+func _on_options_pressed() -> void:
+ if !has_node("Options"):
+ var options = load("res://scenes/ui/options.tscn").instantiate()
+ add_child(options)
+ options.menu_node = self
+ process_mode = Node.PROCESS_MODE_DISABLED