diff options
Diffstat (limited to 'scenes/ui/menu.gd')
| -rw-r--r-- | scenes/ui/menu.gd | 36 |
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 |
