Compare commits

..

2 Commits

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