diff --git a/src/singletons/main/main.gd b/src/singletons/main/main.gd index 49e074e..a8504be 100644 --- a/src/singletons/main/main.gd +++ b/src/singletons/main/main.gd @@ -10,7 +10,7 @@ var normal_boot : bool = false @onready var curtain: Curtain = %Curtain @onready var credits_roll: Control = %CreditsRoll @onready var main_menu: MainMenu = %MainMenu -@onready var pause_menu: PauseManu = %PauseMenu +@onready var pause_menu: PauseMenu = %PauseMenu @onready var room_paths := { State.rooms.NULL: youth_room_path, # Maybe Draven story? @@ -22,11 +22,11 @@ var normal_boot : bool = false enum AppState {BOOT, MENU, PLAY, PAUSE, CREDITS} -var app_state: AppState = AppState.BOOT: +var state: AppState = AppState.BOOT: set(value): - app_state = value - print("main.gd: app_state changing to: %s" % str(app_state)) - match app_state: + state = value + print("main.gd: app_state changing to: %s" % str(state)) + match state: AppState.BOOT: credits_roll.hide() main_menu.hide() @@ -53,18 +53,18 @@ func _enter_tree() -> void: func _ready() -> void: print("main.gd: _ready()") - main_menu.continue_button.pressed.connect(func(): app_state = AppState.PLAY) - main_menu.credits_button.pressed.connect(func(): app_state = AppState.CREDITS) + main_menu.continue_button.pressed.connect(func(): state = AppState.PLAY) + main_menu.credits_button.pressed.connect(func(): state = AppState.CREDITS) #TODO: Load the last savegame(?) await %Loading.stop() if normal_boot: print("main.gd: normal boot (loading last save and showing main menu)") - app_state = AppState.MENU + state = AppState.MENU else: print("main.gd: direct boot (hiding menus and entering main loop)") - app_state = AppState.PLAY + state = AppState.PLAY func start_game(save: SaveGame) -> void: @@ -90,8 +90,8 @@ func _load_room(scene_path: String) -> void: ResourceLoader.load_threaded_request(scene_path, "PackedScene", true) while true: await get_tree().process_frame - var state := ResourceLoader.load_threaded_get_status(scene_path) - match state: + var load_state := ResourceLoader.load_threaded_get_status(scene_path) + match load_state: ResourceLoader.THREAD_LOAD_LOADED: var next_scene := ResourceLoader.load_threaded_get(scene_path) as PackedScene State.room = next_scene.instantiate() as Room @@ -104,3 +104,8 @@ func _load_room(scene_path: String) -> void: break assert(false, "Couldn't load room %s" % scene_path) + + +func _unhandled_input(event: InputEvent) -> void: + if event.is_action_pressed("ui_cancel"): + state = AppState.PAUSE diff --git a/src/singletons/main/main.tscn b/src/singletons/main/main.tscn index 067dbd6..42e0a46 100644 --- a/src/singletons/main/main.tscn +++ b/src/singletons/main/main.tscn @@ -130,7 +130,8 @@ layout_mode = 1 visible = false layout_mode = 1 -[node name="PauseContainer" type="CenterContainer" parent="."] +[node name="PauseMenu" type="Control" parent="."] +unique_name_in_owner = true visible = false layout_mode = 1 anchors_preset = 15 @@ -138,68 +139,80 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 - -[node name="TextureRect" type="TextureRect" parent="PauseContainer"] -material = SubResource("ShaderMaterial_knlqd") -layout_mode = 2 -texture = SubResource("GradientTexture2D_swtmc") - -[node name="PauseMenu" type="PanelContainer" parent="PauseContainer"] -unique_name_in_owner = true -layout_mode = 2 script = ExtResource("9_ihfph") -[node name="VBoxContainer" type="VBoxContainer" parent="PauseContainer/PauseMenu"] -modulate = Color(1, 1, 1, 0) +[node name="TextureRect" type="TextureRect" parent="PauseMenu"] +material = SubResource("ShaderMaterial_knlqd") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("GradientTexture2D_swtmc") +expand_mode = 5 + +[node name="PauseContainer" type="CenterContainer" parent="PauseMenu"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="PauseMenu" type="PanelContainer" parent="PauseMenu/PauseContainer"] layout_mode = 2 -[node name="Label" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="PauseMenu/PauseContainer/PauseMenu"] +layout_mode = 2 + +[node name="Label" type="Label" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "Game Paused" -[node name="ResumeButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="ResumeButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 text = "Resume" -[node name="BugButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="BugButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] layout_mode = 2 script = ExtResource("12_cegan") metadata/_custom_type_script = "uid://sa15wakvpj2e" -[node name="ToMenuButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="ToMenuButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true visible = false layout_mode = 2 text = "Return to Menu" -[node name="ToSettingsButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="ToSettingsButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true visible = false layout_mode = 2 text = "Open Settings" -[node name="ToDesktopButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="ToDesktopButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 text = "Quit to Desktop" -[node name="HSeparator" type="HSeparator" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="HSeparator" type="HSeparator" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] custom_minimum_size = Vector2(0, 20) layout_mode = 2 -[node name="FindHelplineButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="FindHelplineButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 text = "Find Help-Lines" -[node name="Label2" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="Label2" type="Label" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] layout_mode = 2 text = "opens findahelpline.com" horizontal_alignment = 1 -[node name="SkipStoryButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"] +[node name="SkipStoryButton" type="Button" parent="PauseMenu/PauseContainer/PauseMenu/VBoxContainer"] unique_name_in_owner = true visible = false layout_mode = 2 diff --git a/src/ui/menu_main/pause_menu.gd b/src/ui/menu_main/pause_menu.gd index d825bb1..f372de7 100644 --- a/src/ui/menu_main/pause_menu.gd +++ b/src/ui/menu_main/pause_menu.gd @@ -1,15 +1,15 @@ -class_name PauseManu extends PanelContainer +class_name PauseMenu extends Control -@onready var resume_button = %ResumeButton -@onready var to_menu_button = %ToMenuButton -@onready var to_settings_button = %ToSettingsButton -@onready var to_desktop_button = %ToDesktopButton -@onready var helpline_button = %FindHelplineButton -@onready var skip_story_button = %SkipStoryButton +@onready var resume_button := %ResumeButton +@onready var to_menu_button := %ToMenuButton +@onready var to_settings_button := %ToSettingsButton +@onready var to_desktop_button := %ToDesktopButton +@onready var helpline_button := %FindHelplineButton +@onready var skip_story_button := %SkipStoryButton # Called when the node enters the scene tree for the first time. func _ready() -> void: - resume_button.pressed.connect(func(): Main.app_state = Main.AppState.PLAY) + resume_button.pressed.connect(func(): Main.state = Main.AppState.PLAY) #to_menu_button.pressed.connect(_process) to_desktop_button.pressed.connect(func(): get_tree().quit()) #to_settings_button.pressed.connect(_process)