fix: major overhaul and cleanup of application flow, now that all scenes are in order

This commit is contained in:
tiger tiger tiger 2026-01-19 10:34:01 +01:00
parent 357c62ab5f
commit e108250bf1
14 changed files with 109 additions and 542 deletions

View File

@ -36,5 +36,5 @@ process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=2048 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=1

View File

@ -5,24 +5,24 @@ extends RoomTemplate
func _ready() -> void: func _ready() -> void:
super._ready() super._ready()
id = State.rooms.TRANSITION id = State.rooms.TRANSITION
%LeftDetection.body_entered.connect(on_left_train_enter) %LeftDetection.body_entered.connect(on_left_train_enter)
%RightDetection.body_entered.connect(on_right_train_enter) %RightDetection.body_entered.connect(on_right_train_enter)
%LeftDetection.body_exited.connect(on_left_train_exit) %LeftDetection.body_exited.connect(on_left_train_exit)
%RightDetection.body_exited.connect(on_right_train_exit) %RightDetection.body_exited.connect(on_right_train_exit)
%burnout_station.leave_room.connect(func(): %burnout_station.leave_room.connect(func():
pull_save_state(save_game) proceed.emit(Main.adulthood_room_path))
get_parent().load_save(save_game))
if get_parent() == get_tree().root:
start_room()
func start_room(): func start_room():
save_game = State.save_game super.start_room()
%UI.show()
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
# Give player control immediately, then open
Scenes.player_enable.emit(true) Scenes.player_enable.emit(true)
on_first_station() await Main.curtain.open()
Main.curtain.open()
var left_first_station: bool = false var left_first_station: bool = false
func on_first_station() -> void: func on_first_station() -> void:

View File

@ -1058,7 +1058,7 @@ transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 6.24
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7804413, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7804413, 0, 0)
[node name="MeshInstance3D8" type="MeshInstance3D" parent="Train/Visuals/Train"] [node name="MeshInstance3D8" type="MeshInstance3D" parent="Train/Visuals/Train"]
transform = Transform3D(-42.01, 4.0756228e-07, 4.3401053e-07, -6.330816e-06, -2.8743172, -0.1808367, -5.945043e-06, 0.1808367, -2.8743172, -3.9468384, 1.286, 2.488358) transform = Transform3D(-42.01, 4.0756228e-07, 4.3401067e-07, -6.330816e-06, -2.8743172, -0.1808367, -5.945045e-06, 0.1808367, -2.8743172, -3.9468384, 1.286, 2.488358)
visible = false visible = false
material_override = SubResource("ShaderMaterial_0vobo") material_override = SubResource("ShaderMaterial_0vobo")
mesh = SubResource("QuadMesh_ppxbm") mesh = SubResource("QuadMesh_ppxbm")
@ -1395,6 +1395,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003971815, 9.536743e-07, 0
visible = false visible = false
[node name="Train_Display_L" type="SubViewport" parent="Displays"] [node name="Train_Display_L" type="SubViewport" parent="Displays"]
disable_3d = true
transparent_bg = true transparent_bg = true
size = Vector2i(256, 64) size = Vector2i(256, 64)
@ -1408,6 +1409,7 @@ text = "S1 University
via Parity Sq." via Parity Sq."
[node name="Train_Display_R" type="SubViewport" parent="Displays"] [node name="Train_Display_R" type="SubViewport" parent="Displays"]
disable_3d = true
transparent_bg = true transparent_bg = true
size = Vector2i(256, 64) size = Vector2i(256, 64)

View File

@ -1,11 +1,18 @@
extends RoomTemplate extends RoomTemplate
signal ini_room
@onready var card_picker: CardPicker = %Picker @onready var card_picker: CardPicker = %Picker
@onready var player: PlayerController = %PlayerController @onready var player: PlayerController = %PlayerController
func start_room(): func _ready():
super._ready()
id = State.rooms.ADULTHOOD
func get_ready() -> void:
super.get_ready()
Scenes.scene_finished.connect(_on_scene_finished)
card_picker.cards_picked.connect(card_board.populate_board)
save_game = State.save_game save_game = State.save_game
save_game.current_room = State.rooms.ADULTHOOD save_game.current_room = State.rooms.ADULTHOOD
Scenes.completed_sequences = save_game.mementos_complete Scenes.completed_sequences = save_game.mementos_complete
@ -17,26 +24,16 @@ func start_room():
#TODO: hook in ending #TODO: hook in ending
save_room()) save_room())
card_board.closed.connect(save_room)
func start_room():
super.start_room()
%UI.show()
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT %PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
ini_room.emit() # Give player control immediately, then open
Scenes.player_enable.emit(true) Scenes.player_enable.emit(true)
await Main.curtain.open()
func _ready():
id = State.rooms.ADULTHOOD
Scenes.scene_finished.connect(_on_scene_finished)
card_picker.cards_picked.connect(card_board.populate_board)
func pull_save_state(save: SaveGame) -> void:
save.current_room = State.rooms.ADULTHOOD
#FIXME: fix the bloddy card board loading algorythm
#card_board.initialise_from_save(save)
# Call parent to restore player position
super.pull_save_state(save)
func _on_scene_finished(_id: int, _repeat:bool): func _on_scene_finished(_id: int, _repeat:bool):
await get_tree().create_timer(3).timeout await get_tree().create_timer(3).timeout

View File

@ -1,14 +1,10 @@
[gd_scene load_steps=73 format=3 uid="uid://flisupth27th"] [gd_scene load_steps=49 format=3 uid="uid://flisupth27th"]
[ext_resource type="PackedScene" uid="uid://dwbhei5kywqbd" path="res://volunteer_room_visuals.tscn" id="1_ln5pp"] [ext_resource type="PackedScene" uid="uid://dwbhei5kywqbd" path="res://volunteer_room_visuals.tscn" id="1_ln5pp"]
[ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/shared_flat.gd" id="1_wdfvq"] [ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/shared_flat.gd" id="1_wdfvq"]
[ext_resource type="Script" uid="uid://dr4wd80dobxjd" path="res://base-environments/youth_room/interactive_sprite.gd" id="2_ordlj"]
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="2_upyac"] [ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="2_upyac"]
[ext_resource type="PackedScene" uid="uid://bdnesuqroi7ss" path="res://vfx/collectable_particles.tscn" id="3_4s5r2"]
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_fli74"] [ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_fli74"]
[ext_resource type="Script" uid="uid://dbdw3v7mbqscf" path="res://dev-util/click-trough-area.gd" id="4_1xpeq"] [ext_resource type="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="5_my8p4"]
[ext_resource type="PackedScene" uid="uid://wfyna16xhlo0" path="res://logic-scenes/collectable/collectable_ui.tscn" id="5_ln5pp"]
[ext_resource type="Shader" uid="uid://ci37nlh06b5y2" path="res://logic-scenes/collectable/collectable.gdshader" id="7_80jyn"]
[ext_resource type="VoxelGIData" uid="uid://dw2u8n6l38xjm" path="res://base-environments/volunteer_room/volunteer_room.VoxelGI_data.res" id="8_fli74"] [ext_resource type="VoxelGIData" uid="uid://dw2u8n6l38xjm" path="res://base-environments/volunteer_room/volunteer_room.VoxelGI_data.res" id="8_fli74"]
[ext_resource type="PackedScene" uid="uid://dsnil1roc3x37" path="res://base-environments/volunteer_room/scenes/autism.tscn" id="10_gcdra"] [ext_resource type="PackedScene" uid="uid://dsnil1roc3x37" path="res://base-environments/volunteer_room/scenes/autism.tscn" id="10_gcdra"]
[ext_resource type="PackedScene" uid="uid://b2fqh0xl224jc" path="res://base-environments/volunteer_room/scenes/burnout.tscn" id="11_kmoh8"] [ext_resource type="PackedScene" uid="uid://b2fqh0xl224jc" path="res://base-environments/volunteer_room/scenes/burnout.tscn" id="11_kmoh8"]
@ -31,75 +27,6 @@ size = Vector3(1, 2.778, 1.353)
radius = 1.14469 radius = 1.14469
height = 3.78697 height = 3.78697
[sub_resource type="BoxShape3D" id="BoxShape3D_wdfvq"]
size = Vector3(1.81843, 2.13395, 0.0774798)
[sub_resource type="ViewportTexture" id="ViewportTexture_ordlj"]
viewport_path = NodePath("Collectables/KitchenMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o686a"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_ordlj")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_80jyn"]
radius = 0.342951
height = 0.91479343
[sub_resource type="ViewportTexture" id="ViewportTexture_1xpeq"]
viewport_path = NodePath("Collectables/BurnoutMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wi7wx"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_1xpeq")
[sub_resource type="ViewportTexture" id="ViewportTexture_ln5pp"]
viewport_path = NodePath("Collectables/DiceMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ViewportTexture" id="ViewportTexture_fli74"]
viewport_path = NodePath("Collectables/VoluntaryMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ogse3"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_fli74")
[sub_resource type="ViewportTexture" id="ViewportTexture_wdfvq"]
viewport_path = NodePath("Collectables/TherapyMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ViewportTexture" id="ViewportTexture_gcdra"]
viewport_path = NodePath("Collectables/OldThoughts/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kmoh8"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_gcdra")
[sub_resource type="ViewportTexture" id="ViewportTexture_6rb4d"]
viewport_path = NodePath("Collectables/TherapyMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ViewportTexture" id="ViewportTexture_4s5r2"]
viewport_path = NodePath("Collectables/AutismMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5s6pb"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_4s5r2")
[sub_resource type="ViewportTexture" id="ViewportTexture_80jyn"]
viewport_path = NodePath("Collectables/UniversityMemento/UiWrapper/UiSprite/SubViewport")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_upyac"]
albedo_color = Color(0.955332, 0.6932397, 0.90692633, 1)
[sub_resource type="QuadMesh" id="QuadMesh_ci4rn"]
[sub_resource type="BoxShape3D" id="BoxShape3D_e1uao"] [sub_resource type="BoxShape3D" id="BoxShape3D_e1uao"]
size = Vector3(7, 0.5, 12) size = Vector3(7, 0.5, 12)
@ -352,15 +279,6 @@ func _on_environment_settings_update():
environment.sdfgi_enabled = State.sdfgi_enable environment.sdfgi_enabled = State.sdfgi_enable
" "
[sub_resource type="ViewportTexture" id="ViewportTexture_e1uao"]
viewport_path = NodePath("BoardTrigger/UiWrapper/UiSprite/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_my8p4"]
resource_local_to_scene = true
render_priority = 1
shader = ExtResource("7_80jyn")
shader_parameter/default_texture = SubResource("ViewportTexture_e1uao")
[node name="SharedFlat" type="Node3D"] [node name="SharedFlat" type="Node3D"]
script = ExtResource("1_wdfvq") script = ExtResource("1_wdfvq")
@ -387,322 +305,41 @@ shape = SubResource("CapsuleShape3D_2fihi")
[node name="Collectables" type="Node3D" parent="."] [node name="Collectables" type="Node3D" parent="."]
[node name="KitchenMemento" type="Area3D" parent="Collectables" groups=["interactables"]] [node name="KitchenInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
unique_name_in_owner = true transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 1.10405, 1.4133, -2.59363)
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 1.10405, 1.4133, -2.59363) interaction = ExtResource("12_6rb4d")
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/KitchenMemento" instance=ExtResource("3_4s5r2")] [node name="BurnoutInteractaboe" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755) transform = Transform3D(1.3113409e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113409e-07, -2.62556, 1.0861979, 5.22733)
visible = false interaction = ExtResource("11_kmoh8")
[node name="UiWrapper" type="Area3D" parent="Collectables/KitchenMemento"] [node name="DiceInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0) transform = Transform3D(-0.70710593, 0, 0.70710605, 0, 1, 0, -0.70710605, 0, -0.70710593, -2.07945, 0.937191, 3.3940656)
script = ExtResource("4_1xpeq") interaction = ExtResource("16_e1uao")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/KitchenMemento/UiWrapper"] [node name="VoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397) transform = Transform3D(-4.3711392e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711392e-08, 0.36332494, 1.41737, 4.938)
shape = SubResource("BoxShape3D_wdfvq") interaction = ExtResource("13_5s6pb")
[node name="UiSprite" type="Sprite3D" parent="Collectables/KitchenMemento/UiWrapper"] [node name="TherapyInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758) transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166)
material_override = SubResource("ShaderMaterial_o686a") interaction = ExtResource("15_ci4rn")
modulate = Color(0.43628508, 0.5583192, 0.41265887, 1)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_ordlj")
[node name="SubViewport" type="SubViewport" parent="Collectables/KitchenMemento/UiWrapper/UiSprite"] [node name="OldThouhgtsInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transparent_bg = true transform = Transform3D(1.3113399e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113399e-07, -2.40979, 0.714116, 0.403546)
use_hdr_2d = true interaction = ExtResource("17_my8p4")
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/KitchenMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")] [node name="AutismInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
scene = 8 transform = Transform3D(0.49999908, 0, 0.86602396, 0, 1, 0, -0.86602396, 0, 0.49999908, -1.87737, 1.21835, -4.111254)
interaction = ExtResource("10_gcdra")
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/KitchenMemento"] [node name="UniversityInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0) transform = Transform3D(2.811378e-07, 0, 0.99999917, 0, 1, 0, -0.99999917, 0, 2.811378e-07, -2.6929827, 1.3418819, -2.7896698)
shape = SubResource("CapsuleShape3D_80jyn") interaction = ExtResource("14_upyac")
[node name="BurnoutMemento" type="Area3D" parent="Collectables" groups=["interactables"]] [node name="Board" parent="Collectables" instance=ExtResource("5_my8p4")]
unique_name_in_owner = true transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.6904116, 1.240494, 4.441236)
transform = Transform3D(-4.37114e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.37114e-08, -2.62556, 1.0861979, 5.22733) interaction = ExtResource("19_ci4rn")
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/BurnoutMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/BurnoutMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/BurnoutMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/BurnoutMemento/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
material_override = SubResource("ShaderMaterial_wi7wx")
modulate = Color(0.8984157, 0.76071054, 0.55148023, 1)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_1xpeq")
[node name="SubViewport" type="SubViewport" parent="Collectables/BurnoutMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/BurnoutMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 11
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/BurnoutMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="DiceMemento" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(0.707106, 0, -0.707106, 0, 1, 0, 0.707106, 0, 0.707106, -2.07945, 0.937191, 3.3940656)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/DiceMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/DiceMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/DiceMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/DiceMemento/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_ln5pp")
[node name="SubViewport" type="SubViewport" parent="Collectables/DiceMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/DiceMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 5
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/DiceMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="VoluntaryMemento" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(-4.37113e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37113e-08, 0.36332494, 1.41737, 4.938)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/VoluntaryMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/VoluntaryMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/VoluntaryMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/VoluntaryMemento/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
material_override = SubResource("ShaderMaterial_ogse3")
modulate = Color(0.96862525, 0.93315274, 0.7196429, 1)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_fli74")
[node name="SubViewport" type="SubViewport" parent="Collectables/VoluntaryMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/VoluntaryMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 10
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/VoluntaryMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="TherapyMemento" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.399901, 1.21835, 1.29166)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/TherapyMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/TherapyMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/TherapyMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/TherapyMemento/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_wdfvq")
[node name="SubViewport" type="SubViewport" parent="Collectables/TherapyMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/TherapyMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 10
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/TherapyMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="OldThoughts" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(-4.37113e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.37113e-08, -2.40979, 0.714116, 0.403546)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/OldThoughts" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/OldThoughts"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/OldThoughts/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/OldThoughts/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
material_override = SubResource("ShaderMaterial_kmoh8")
modulate = Color(0.9869713, 0.86703247, 0.687931, 1)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_6rb4d")
[node name="SubViewport" type="SubViewport" parent="Collectables/OldThoughts/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/OldThoughts/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
title_override = "old Thoughts"
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/OldThoughts"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="AutismMemento" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(-0.499999, 0, -0.866024, 0, 1, 0, 0.866024, 0, -0.499999, -1.87737, 1.21835, -4.111254)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/AutismMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/AutismMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/AutismMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/AutismMemento/UiWrapper"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
material_override = SubResource("ShaderMaterial_5s6pb")
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_4s5r2")
[node name="SubViewport" type="SubViewport" parent="Collectables/AutismMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/AutismMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 7
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/AutismMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="UniversityMemento" type="Area3D" parent="Collectables" groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(-1.937151e-07, 0, -0.99999917, 0, 1, 0, 0.99999917, 0, -1.937151e-07, -2.6929827, 1.3418819, -2.7896698)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="Collectables/UniversityMemento" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="Collectables/UniversityMemento"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/UniversityMemento/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="Collectables/UniversityMemento/UiWrapper"]
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_80jyn")
[node name="SubViewport" type="SubViewport" parent="Collectables/UniversityMemento/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="Collectables/UniversityMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
scene = 9
[node name="HoverDetect" type="CollisionShape3D" parent="Collectables/UniversityMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Collectables/UniversityMemento"]
transform = Transform3D(-0.694, 0, -1.6141452e-07, 0, 1, 0, 1.0479109e-07, 0, -1.069, 0, 0, 0.09006548)
material_override = SubResource("StandardMaterial3D_upyac")
mesh = SubResource("QuadMesh_ci4rn")
[node name="VoxelGI" type="VoxelGI" parent="."] [node name="VoxelGI" type="VoxelGI" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.05317688) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.05317688)
@ -848,6 +485,7 @@ story_array = []
paragraph_lengths = [1] paragraph_lengths = [1]
[node name="UI" type="Control" parent="."] [node name="UI" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -861,77 +499,13 @@ unique_name_in_owner = true
visible = false visible = false
layout_mode = 1 layout_mode = 1
[node name="Board" parent="UI" instance=ExtResource("19_ci4rn")]
unique_name_in_owner = true
visible = false
layout_mode = 1
[node name="ending" parent="UI" instance=ExtResource("20_e1uao")] [node name="ending" parent="UI" instance=ExtResource("20_e1uao")]
visible = false visible = false
layout_mode = 1 layout_mode = 1
mouse_filter = 2 mouse_filter = 2
script = SubResource("GDScript_ri8p0") script = SubResource("GDScript_ri8p0")
[node name="MindBoard" parent="UI" instance=ExtResource("19_ci4rn")]
unique_name_in_owner = true
visible = false
layout_mode = 0
anchors_preset = 0
anchor_right = 0.0
anchor_bottom = 0.0
grow_horizontal = 1
grow_vertical = 1
[node name="WorldEnvironment" type="WorldEnvironment" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_pdgua") environment = SubResource("Environment_pdgua")
camera_attributes = SubResource("CameraAttributesPractical_0bxa6") camera_attributes = SubResource("CameraAttributesPractical_0bxa6")
script = SubResource("GDScript_3k3rl") script = SubResource("GDScript_3k3rl")
[node name="BoardTrigger" type="Area3D" parent="." groups=["interactables"]]
unique_name_in_owner = true
transform = Transform3D(-4.3711353e-08, 0, -0.99999917, 0, 1, 0, 0.99999917, 0, -4.3711353e-08, -2.6015208, 1.2707491, 4.5999393)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_ordlj")
[node name="collectable_particles" parent="BoardTrigger" instance=ExtResource("3_4s5r2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="BoardTrigger"]
transform = Transform3D(-0.1, 0, -8.74228e-09, 0, 0.1, 0, 8.74228e-09, 0, -0.1, 0, 0, 0)
script = ExtResource("4_1xpeq")
billboard = false
[node name="UI_click_collider" type="CollisionShape3D" parent="BoardTrigger/UiWrapper"]
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
shape = SubResource("BoxShape3D_wdfvq")
[node name="UiSprite" type="Sprite3D" parent="BoardTrigger/UiWrapper"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5106125, 0, -1.3727055)
material_override = SubResource("ShaderMaterial_my8p4")
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_e1uao")
[node name="SubViewport" type="SubViewport" parent="BoardTrigger/UiWrapper/UiSprite"]
transparent_bg = true
use_hdr_2d = true
size = Vector2i(400, 350)
render_target_update_mode = 4
[node name="CollectableUi" parent="BoardTrigger/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")]
[node name="HoverDetect" type="CollisionShape3D" parent="BoardTrigger"]
transform = Transform3D(1, 0, 2.9802656e-08, 0, 1, 0, -2.9802656e-08, 0, 1, 0, -0.015731215, 0)
shape = SubResource("CapsuleShape3D_80jyn")
[connection signal="input_event" from="Collectables/KitchenMemento/UiWrapper" to="Collectables/KitchenMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/BurnoutMemento/UiWrapper" to="Collectables/BurnoutMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/DiceMemento/UiWrapper" to="Collectables/DiceMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/VoluntaryMemento/UiWrapper" to="Collectables/VoluntaryMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/TherapyMemento/UiWrapper" to="Collectables/TherapyMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/OldThoughts/UiWrapper" to="Collectables/OldThoughts/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/AutismMemento/UiWrapper" to="Collectables/AutismMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="Collectables/UniversityMemento/UiWrapper" to="Collectables/UniversityMemento/UiWrapper" method="_on_input_event"]
[connection signal="input_event" from="BoardTrigger/UiWrapper" to="BoardTrigger/UiWrapper" method="_on_input_event"]

View File

@ -8,8 +8,11 @@ extends RoomTemplate
@onready var ui: Control = %UI @onready var ui: Control = %UI
func start_room(): func start_room():
super.start_room()
%UI.show() %UI.show()
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
# To start breathing etc.
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
await Main.curtain.open() await Main.curtain.open()
@ -33,8 +36,7 @@ func _play_intro_scene() -> void:
func get_ready(): func get_ready():
await get_tree().process_frame super.get_ready()
card_board.board_completed.connect(func(): card_board.board_completed.connect(func():
%DoorInteractable.show() %DoorInteractable.show()
if not save_game.is_childhood_board_complete: if not save_game.is_childhood_board_complete:
@ -42,7 +44,6 @@ func get_ready():
save_room() save_room()
) )
pull_save_state(State.save_game) pull_save_state(State.save_game)
card_board.closed.connect(save_room) card_board.closed.connect(save_room)

View File

@ -39,7 +39,7 @@
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="33_mvrs2"] [ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="33_mvrs2"]
[ext_resource type="Shader" uid="uid://dspme86ky8yj0" path="res://base-environments/youth_room/rainy-window.gdshader" id="35_ea6x8"] [ext_resource type="Shader" uid="uid://dspme86ky8yj0" path="res://base-environments/youth_room/rainy-window.gdshader" id="35_ea6x8"]
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="36_bgk6f"] [ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="36_bgk6f"]
[ext_resource type="Script" path="res://base-environments/youth_room/youth_room_environment.gd" id="38_ypa88"] [ext_resource type="Script" uid="uid://c5eiqpr1q41xk" path="res://base-environments/youth_room/youth_room_environment.gd" id="38_ypa88"]
[ext_resource type="PackedScene" uid="uid://cg70r0102t8nl" path="res://base-environments/youth_room/fairylights.tscn" id="39_q6rov"] [ext_resource type="PackedScene" uid="uid://cg70r0102t8nl" path="res://base-environments/youth_room/fairylights.tscn" id="39_q6rov"]
[ext_resource type="VoxelGIData" uid="uid://hvk1wkuw4maq" path="res://base-environments/youth_room/youth_room.VoxelGI_data.res" id="40_ea6x8"] [ext_resource type="VoxelGIData" uid="uid://hvk1wkuw4maq" path="res://base-environments/youth_room/youth_room.VoxelGI_data.res" id="40_ea6x8"]

View File

@ -6,13 +6,6 @@ var id: State.rooms = State.rooms.NULL
@onready var scene_player : AnimationPlayer = %ScenePlayer @onready var scene_player : AnimationPlayer = %ScenePlayer
@onready var card_board : CardBoard # Optional Board, if present - set by the board in its own _ready() @onready var card_board : CardBoard # Optional Board, if present - set by the board in its own _ready()
var is_active: bool:
set(value):
is_active = value
if is_active and not initialised:
start_room()
var save_game:SaveGame = null var save_game:SaveGame = null
signal proceed(next_scene_path: String) signal proceed(next_scene_path: String)
@ -21,28 +14,38 @@ func _ready() -> void:
State.room = self State.room = self
State.current_room = id State.current_room = id
if not State.save_game:
push_warning("Room initialised without a SaveGame. Creating proxy save.")
State.save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
save_game = State.save_game
save_game.current_room = id
if not Main.normal_boot:
start_room.call_deferred()
func disable()-> void: func disable()-> void:
is_active = false push_warning("Room disabling is deprecated / unter reconstruction")
set_process_input(false)
set_process(false)
func get_ready(): func get_ready():
pass # Override this function to initialize more things. it's called by start_room
func load():
# Override this function to load the state of the chapter from State.save_game
pass pass
func play() -> String: func play() -> String:
start_room() start_room.call_deferred()
return await proceed var next_room : StringName = await proceed
prints("----------", "PROCEEDING", next_room, "--------------")
return next_room
func start_room(): func start_room():
pass await get_ready()
prints("----------", "START_ROOM", self.name, "--------------")
func pull_save_state(_save: SaveGame) -> void: func pull_save_state(_save: SaveGame) -> void:
# Try to restore player position from save # Override this function to load the state of the chapter from State.save_game
restore_player_from_save(_save) restore_player_from_save(_save)
## Attempts to find player controller and restore position/rotation from save ## Attempts to find player controller and restore position/rotation from save
@ -63,10 +66,8 @@ func restore_player_from_save(save: SaveGame) -> void:
func save_room(): func save_room():
save_game.save_to_file(get_tree().root.get_texture()) save_game.save_to_file(get_tree().root.get_texture())
func prepare_transition():
pass
func unload(): func unload():
# Override this function to clean up things not owned by this room
pass pass
## Called before a scene starts to allow room-specific preparation (e.g., animations) ## Called before a scene starts to allow room-specific preparation (e.g., animations)

View File

@ -18,7 +18,7 @@ func _ready():
func vanish(): func vanish():
super.vanish() super.vanish()
await Main.curtain.black() # Go straight to loading screen await Main.curtain.black() # Go straight to loading screen
Main.load_subway() State.room.proceed.emit(Main.transition_room_path)
## Main play coroutine - simple linear flow for burning a card ## Main play coroutine - simple linear flow for burning a card

View File

@ -29,7 +29,12 @@ var tween: Tween = null
func _ready() -> void: func _ready() -> void:
assert(note and frame and canvas_layer, "Interactable must have views and frame attached") assert(note and frame and canvas_layer, "Interactable must have views and frame attached")
view.scale = Vector3.ZERO view.scale = Vector3.ZERO
frame.modulate.a = 0 frame.modulate.a = 0.0
Scenes.player_enable.connect(_player_active) # TODO: do I have to clean this up?
_load_interaction.call_deferred()
func _load_interaction() -> void:
if interaction: if interaction:
playable = interaction.instantiate() as Control playable = interaction.instantiate() as Control
canvas_layer.add_child(playable) canvas_layer.add_child(playable)
@ -40,8 +45,6 @@ func _ready() -> void:
collected = Scenes.is_sequence_repeating(story.scene_id) collected = Scenes.is_sequence_repeating(story.scene_id)
else: else:
_update_prompt() _update_prompt()
Scenes.player_enable.connect(_player_active) # TODO: do I have to clean this up?
func _player_active(value: bool) -> void: func _player_active(value: bool) -> void:
active = value active = value

View File

@ -247,12 +247,6 @@ func _unhandled_input(event: InputEvent) -> void:
func _ready(): func _ready():
await get_tree().process_frame await get_tree().process_frame
for child in get_tree().root.get_children():
if child is RoomTemplate and save_game == null:
push_warning("Room initialised without a SaveGame. Creating proxy save.")
#TODO: make this a bit more clean maybe?
save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
music_volume = music_volume music_volume = music_volume

View File

@ -71,25 +71,21 @@ func _ready() -> void:
func start_game(save: SaveGame) -> void: func start_game(save: SaveGame) -> void:
print_debug("main.gd: play_game()") print_debug("main.gd: play_game()")
var room_path := room_paths.get(save.current_room, youth_room_path) as String var room_path := room_paths.get(save.current_room, youth_room_path) as String
while room_path:
await _load_room(room_path) await _load_room(room_path)
await State.room.play() room_path = await State.room.play()
func load_subway():
await curtain.close()
if State.room:
State.room.queue_free()
await _load_room(transition_room_path)
await State.room.play()
# Ending? Roll credits?
func _load_room(scene_path: String) -> void: func _load_room(scene_path: String) -> void:
await curtain.close() await curtain.close()
%Loading.play() %Loading.play()
if State.room != null: if State.room:
State.room.unload() State.room.unload()
State.room.queue_free()
State.room = null State.room = null
ResourceLoader.load_threaded_request(scene_path, "PackedScene", true) ResourceLoader.load_threaded_request(scene_path, "PackedScene", true)
@ -102,7 +98,6 @@ func _load_room(scene_path: String) -> void:
State.room = next_scene.instantiate() as RoomTemplate State.room = next_scene.instantiate() as RoomTemplate
get_tree().root.add_child(State.room) get_tree().root.add_child(State.room)
await get_tree().process_frame await get_tree().process_frame
await State.room.get_ready()
%Loading.stop() %Loading.stop()
return return
ResourceLoader.THREAD_LOAD_FAILED: ResourceLoader.THREAD_LOAD_FAILED: