fix: pause menu cleanup

This commit is contained in:
tiger tiger tiger 2026-01-22 15:12:24 +01:00
parent b79780835e
commit 406d7e5002
3 changed files with 59 additions and 41 deletions

View File

@ -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

View File

@ -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

View File

@ -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)