diff --git a/src/base-environments/transition/misc/subway_map.png.import b/src/base-environments/transition/misc/subway_map.png.import index 371bdb1..06a49c3 100644 --- a/src/base-environments/transition/misc/subway_map.png.import +++ b/src/base-environments/transition/misc/subway_map.png.import @@ -36,5 +36,5 @@ process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false -process/size_limit=2048 +process/size_limit=0 detect_3d/compress_to=1 diff --git a/src/base-environments/transition/subway_sequence.gd b/src/base-environments/transition/subway_sequence.gd index e214eb2..c05c2c9 100644 --- a/src/base-environments/transition/subway_sequence.gd +++ b/src/base-environments/transition/subway_sequence.gd @@ -5,24 +5,24 @@ extends RoomTemplate func _ready() -> void: super._ready() - id = State.rooms.TRANSITION %LeftDetection.body_entered.connect(on_left_train_enter) %RightDetection.body_entered.connect(on_right_train_enter) %LeftDetection.body_exited.connect(on_left_train_exit) %RightDetection.body_exited.connect(on_right_train_exit) %burnout_station.leave_room.connect(func(): - pull_save_state(save_game) - get_parent().load_save(save_game)) + proceed.emit(Main.adulthood_room_path)) - if get_parent() == get_tree().root: - 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) - on_first_station() - Main.curtain.open() + await Main.curtain.open() + var left_first_station: bool = false func on_first_station() -> void: diff --git a/src/base-environments/transition/transition.tscn b/src/base-environments/transition/transition.tscn index 60f3bd2..6ed66ae 100644 --- a/src/base-environments/transition/transition.tscn +++ b/src/base-environments/transition/transition.tscn @@ -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) [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 material_override = SubResource("ShaderMaterial_0vobo") 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 [node name="Train_Display_L" type="SubViewport" parent="Displays"] +disable_3d = true transparent_bg = true size = Vector2i(256, 64) @@ -1408,6 +1409,7 @@ text = "S1 University via Parity Sq." [node name="Train_Display_R" type="SubViewport" parent="Displays"] +disable_3d = true transparent_bg = true size = Vector2i(256, 64) diff --git a/src/base-environments/volunteer_room/shared_flat.gd b/src/base-environments/volunteer_room/shared_flat.gd index c7f5116..6cbb05c 100644 --- a/src/base-environments/volunteer_room/shared_flat.gd +++ b/src/base-environments/volunteer_room/shared_flat.gd @@ -1,11 +1,18 @@ extends RoomTemplate -signal ini_room - @onready var card_picker: CardPicker = %Picker @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.current_room = State.rooms.ADULTHOOD Scenes.completed_sequences = save_game.mementos_complete @@ -16,27 +23,17 @@ func start_room(): card_board.board_completed.connect(func(): #TODO: hook in ending save_room()) - - card_board.closed.connect(save_room) - + + +func start_room(): + super.start_room() + %UI.show() + %PlayerController.process_mode = Node.PROCESS_MODE_INHERIT - ini_room.emit() + # Give player control immediately, then open 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): await get_tree().create_timer(3).timeout diff --git a/src/base-environments/volunteer_room/volunteer_room.tscn b/src/base-environments/volunteer_room/volunteer_room.tscn index c7d3392..a93f7ef 100644 --- a/src/base-environments/volunteer_room/volunteer_room.tscn +++ b/src/base-environments/volunteer_room/volunteer_room.tscn @@ -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="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://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://dbdw3v7mbqscf" path="res://dev-util/click-trough-area.gd" id="4_1xpeq"] -[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="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="5_my8p4"] [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://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 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"] size = Vector3(7, 0.5, 12) @@ -352,15 +279,6 @@ func _on_environment_settings_update(): 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"] script = ExtResource("1_wdfvq") @@ -387,322 +305,41 @@ shape = SubResource("CapsuleShape3D_2fihi") [node name="Collectables" type="Node3D" parent="."] -[node name="KitchenMemento" type="Area3D" parent="Collectables" groups=["interactables"]] -unique_name_in_owner = true -transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 1.10405, 1.4133, -2.59363) -collision_layer = 16 -collision_mask = 0 -script = ExtResource("2_ordlj") +[node name="KitchenInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 1.10405, 1.4133, -2.59363) +interaction = ExtResource("12_6rb4d") -[node name="collectable_particles" parent="Collectables/KitchenMemento" 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="BurnoutInteractaboe" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(1.3113409e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113409e-07, -2.62556, 1.0861979, 5.22733) +interaction = ExtResource("11_kmoh8") -[node name="UiWrapper" type="Area3D" parent="Collectables/KitchenMemento"] -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="DiceInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(-0.70710593, 0, 0.70710605, 0, 1, 0, -0.70710605, 0, -0.70710593, -2.07945, 0.937191, 3.3940656) +interaction = ExtResource("16_e1uao") -[node name="UI_click_collider" type="CollisionShape3D" parent="Collectables/KitchenMemento/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="VoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(-4.3711392e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711392e-08, 0.36332494, 1.41737, 4.938) +interaction = ExtResource("13_5s6pb") -[node name="UiSprite" type="Sprite3D" parent="Collectables/KitchenMemento/UiWrapper"] -transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758) -material_override = SubResource("ShaderMaterial_o686a") -modulate = Color(0.43628508, 0.5583192, 0.41265887, 1) -pixel_size = 0.015 -no_depth_test = true -texture = SubResource("ViewportTexture_ordlj") +[node name="TherapyInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166) +interaction = ExtResource("15_ci4rn") -[node name="SubViewport" type="SubViewport" parent="Collectables/KitchenMemento/UiWrapper/UiSprite"] -transparent_bg = true -use_hdr_2d = true -size = Vector2i(400, 350) -render_target_update_mode = 4 +[node name="OldThouhgtsInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(1.3113399e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113399e-07, -2.40979, 0.714116, 0.403546) +interaction = ExtResource("17_my8p4") -[node name="CollectableUi" parent="Collectables/KitchenMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("5_ln5pp")] -scene = 8 +[node name="AutismInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +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"] -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="UniversityInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(2.811378e-07, 0, 0.99999917, 0, 1, 0, -0.99999917, 0, 2.811378e-07, -2.6929827, 1.3418819, -2.7896698) +interaction = ExtResource("14_upyac") -[node name="BurnoutMemento" type="Area3D" parent="Collectables" groups=["interactables"]] -unique_name_in_owner = true -transform = Transform3D(-4.37114e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.37114e-08, -2.62556, 1.0861979, 5.22733) -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="Board" parent="Collectables" instance=ExtResource("5_my8p4")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.6904116, 1.240494, 4.441236) +interaction = ExtResource("19_ci4rn") [node name="VoxelGI" type="VoxelGI" parent="."] 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] [node name="UI" type="Control" parent="."] +unique_name_in_owner = true layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -861,77 +499,13 @@ unique_name_in_owner = true visible = false 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")] visible = false layout_mode = 1 mouse_filter = 2 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="."] environment = SubResource("Environment_pdgua") camera_attributes = SubResource("CameraAttributesPractical_0bxa6") 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"] diff --git a/src/base-environments/youth_room/interactive_sprite.gd b/src/base-environments/youth_room/interactive_sprite.gd index aade623..48fe5a1 100644 --- a/src/base-environments/youth_room/interactive_sprite.gd +++ b/src/base-environments/youth_room/interactive_sprite.gd @@ -82,4 +82,4 @@ func _on_playback_finished(): Scenes.player_enable.emit(true) func handle(event: InputEvent): - viewport.push_input(event) \ No newline at end of file + viewport.push_input(event) diff --git a/src/base-environments/youth_room/youth_room.gd b/src/base-environments/youth_room/youth_room.gd index cad7bde..539594e 100644 --- a/src/base-environments/youth_room/youth_room.gd +++ b/src/base-environments/youth_room/youth_room.gd @@ -8,8 +8,11 @@ extends RoomTemplate @onready var ui: Control = %UI func start_room(): + super.start_room() %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() @@ -33,20 +36,18 @@ func _play_intro_scene() -> void: func get_ready(): - await get_tree().process_frame - + super.get_ready() card_board.board_completed.connect(func(): %DoorInteractable.show() if not save_game.is_childhood_board_complete: save_game.is_childhood_board_complete = true save_room() ) - - + pull_save_state(State.save_game) - + card_board.closed.connect(save_room) - + card_picker.cards_picked.connect(card_board.populate_board) ui.hide() diff --git a/src/base-environments/youth_room/youth_room.tscn b/src/base-environments/youth_room/youth_room.tscn index f63b2a7..5c8ee4e 100644 --- a/src/base-environments/youth_room/youth_room.tscn +++ b/src/base-environments/youth_room/youth_room.tscn @@ -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="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="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="VoxelGIData" uid="uid://hvk1wkuw4maq" path="res://base-environments/youth_room/youth_room.VoxelGI_data.res" id="40_ea6x8"] diff --git a/src/dev-util/room_template.gd b/src/dev-util/room_template.gd index 858a4f9..158ec47 100644 --- a/src/dev-util/room_template.gd +++ b/src/dev-util/room_template.gd @@ -6,13 +6,6 @@ var id: State.rooms = State.rooms.NULL @onready var scene_player : AnimationPlayer = %ScenePlayer @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 signal proceed(next_scene_path: String) @@ -21,28 +14,38 @@ func _ready() -> void: State.room = self 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: - is_active = false - set_process_input(false) - set_process(false) + push_warning("Room disabling is deprecated / unter reconstruction") func get_ready(): - pass - -func load(): - # Override this function to load the state of the chapter from State.save_game + # Override this function to initialize more things. it's called by start_room pass func play() -> String: - start_room() - return await proceed + start_room.call_deferred() + var next_room : StringName = await proceed + prints("----------", "PROCEEDING", next_room, "--------------") + return next_room func start_room(): - pass + await get_ready() + prints("----------", "START_ROOM", self.name, "--------------") + 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) ## 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(): save_game.save_to_file(get_tree().root.get_texture()) -func prepare_transition(): - pass - func unload(): + # Override this function to clean up things not owned by this room pass ## Called before a scene starts to allow room-specific preparation (e.g., animations) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index fefb744..94ed224 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -114,7 +114,7 @@ func _finalize_board_state() -> void: _end_drag(selection) for item in notes: item.is_dragged = false - + for item in cards: item.is_dragged = false @@ -510,7 +510,7 @@ func initialise_from_save(savegame: SaveGame) -> void: # Re-sort by positions for correct z-ordering - _sort_by_positions() + _sort_by_positions() print_debug("CardBoard: Load complete!") _check_completion() diff --git a/src/logic-scenes/card_burner/card_burner.gd b/src/logic-scenes/card_burner/card_burner.gd index 327a0f3..fa6571c 100644 --- a/src/logic-scenes/card_burner/card_burner.gd +++ b/src/logic-scenes/card_burner/card_burner.gd @@ -18,7 +18,7 @@ func _ready(): func vanish(): super.vanish() 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 diff --git a/src/logic-scenes/interactable/interactable.gd b/src/logic-scenes/interactable/interactable.gd index 812e7f7..f5a59fa 100644 --- a/src/logic-scenes/interactable/interactable.gd +++ b/src/logic-scenes/interactable/interactable.gd @@ -29,7 +29,12 @@ var tween: Tween = null func _ready() -> void: assert(note and frame and canvas_layer, "Interactable must have views and frame attached") 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: playable = interaction.instantiate() as Control canvas_layer.add_child(playable) @@ -40,8 +45,6 @@ func _ready() -> void: collected = Scenes.is_sequence_repeating(story.scene_id) else: _update_prompt() - Scenes.player_enable.connect(_player_active) # TODO: do I have to clean this up? - func _player_active(value: bool) -> void: active = value diff --git a/src/singletons/global_state.gd b/src/singletons/global_state.gd index 28055b0..1fdba59 100644 --- a/src/singletons/global_state.gd +++ b/src/singletons/global_state.gd @@ -247,12 +247,6 @@ func _unhandled_input(event: InputEvent) -> void: func _ready(): 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 diff --git a/src/singletons/main/main.gd b/src/singletons/main/main.gd index 793288d..b468af7 100644 --- a/src/singletons/main/main.gd +++ b/src/singletons/main/main.gd @@ -71,25 +71,21 @@ func _ready() -> void: func start_game(save: SaveGame) -> void: print_debug("main.gd: play_game()") var room_path := room_paths.get(save.current_room, youth_room_path) as String - await _load_room(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() - + + while room_path: + await _load_room(room_path) + room_path = await State.room.play() + + # Ending? Roll credits? func _load_room(scene_path: String) -> void: await curtain.close() %Loading.play() - if State.room != null: + if State.room: State.room.unload() + State.room.queue_free() State.room = null 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 get_tree().root.add_child(State.room) await get_tree().process_frame - await State.room.get_ready() %Loading.stop() return ResourceLoader.THREAD_LOAD_FAILED: