2026-01-15 12:39:56 +00:00
|
|
|
[gd_scene load_steps=17 format=3 uid="uid://d0x27tf7y5keu"]
|
2026-01-15 12:04:52 +00:00
|
|
|
|
|
|
|
|
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="1_oayv8"]
|
|
|
|
|
[ext_resource type="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="2_nl0nc"]
|
2026-01-15 12:39:56 +00:00
|
|
|
[ext_resource type="PackedScene" uid="uid://c3l8tm8ku50vt" path="res://base-environments/youth_room/scenes/childhood.tscn" id="3_am5gj"]
|
2026-01-15 12:04:52 +00:00
|
|
|
[ext_resource type="PackedScene" uid="uid://bw47g00bi710i" path="res://base-environments/youth_room/youth_room_visuals.tscn" id="5_3rbj1"]
|
|
|
|
|
[ext_resource type="PackedScene" uid="uid://dwtxjvprjyx8p" path="res://base-environments/youth_room/lava-lamp.tscn" id="6_ggen3"]
|
|
|
|
|
|
|
|
|
|
[sub_resource type="PlaneMesh" id="PlaneMesh_cv7g8"]
|
|
|
|
|
size = Vector2(50, 50)
|
|
|
|
|
|
|
|
|
|
[sub_resource type="SphereMesh" id="SphereMesh_7dqkp"]
|
|
|
|
|
radius = 5.0
|
|
|
|
|
height = 10.0
|
|
|
|
|
|
|
|
|
|
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_nl0nc"]
|
|
|
|
|
|
|
|
|
|
[sub_resource type="GDScript" id="GDScript_06xif"]
|
|
|
|
|
script/source = "extends SpotLight3D
|
|
|
|
|
|
|
|
|
|
@export var strength:float = 0.3
|
|
|
|
|
@export var speed:float = 5
|
|
|
|
|
var noise = FastNoiseLite.new()
|
|
|
|
|
var spot:float = randf()
|
|
|
|
|
var base_energy = light_energy
|
|
|
|
|
@export var lit: bool = false
|
|
|
|
|
|
|
|
|
|
@onready var secondary_light: OmniLight3D = $desk_secondary
|
|
|
|
|
|
|
|
|
|
var litnes: float = float(lit)
|
|
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
|
if not lit: light_energy = 0
|
|
|
|
|
|
|
|
|
|
func _process(delta):
|
|
|
|
|
spot += speed*delta
|
|
|
|
|
light_energy = base_energy * (1 + noise.get_noise_1d(spot) * strength) * litnes
|
|
|
|
|
secondary_light.light_energy = light_energy/16
|
|
|
|
|
|
|
|
|
|
func switch_on():
|
|
|
|
|
var tween:Tween = create_tween()
|
|
|
|
|
tween.tween_property(self, \"litnes\", 1, 10)
|
|
|
|
|
|
|
|
|
|
func switch_off():
|
|
|
|
|
var tween:Tween = create_tween()
|
|
|
|
|
tween.tween_property(self, \"litnes\", 0, 1)
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_hqls1"]
|
|
|
|
|
length = 0.001
|
|
|
|
|
tracks/0/type = "value"
|
|
|
|
|
tracks/0/imported = false
|
|
|
|
|
tracks/0/enabled = true
|
|
|
|
|
tracks/0/path = NodePath("OmniLight3D2:light_energy")
|
|
|
|
|
tracks/0/interp = 1
|
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
|
tracks/0/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
|
"update": 0,
|
|
|
|
|
"values": [1.0]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_hxk3n"]
|
|
|
|
|
resource_name = "light_up"
|
|
|
|
|
length = 10.0
|
|
|
|
|
tracks/0/type = "value"
|
|
|
|
|
tracks/0/imported = false
|
|
|
|
|
tracks/0/enabled = true
|
|
|
|
|
tracks/0/path = NodePath("OmniLight3D2:light_energy")
|
|
|
|
|
tracks/0/interp = 1
|
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
|
tracks/0/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0, 10),
|
|
|
|
|
"transitions": PackedFloat32Array(1, 1),
|
|
|
|
|
"update": 0,
|
|
|
|
|
"values": [0.0, 1.0]
|
|
|
|
|
}
|
|
|
|
|
tracks/1/type = "method"
|
|
|
|
|
tracks/1/imported = false
|
|
|
|
|
tracks/1/enabled = true
|
|
|
|
|
tracks/1/path = NodePath("desk_light")
|
|
|
|
|
tracks/1/interp = 1
|
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
|
tracks/1/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
|
"values": [{
|
|
|
|
|
"args": [],
|
|
|
|
|
"method": &"switch_on"
|
|
|
|
|
}]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_wa80i"]
|
|
|
|
|
resource_name = "lights_out"
|
|
|
|
|
length = 2.0
|
|
|
|
|
tracks/0/type = "value"
|
|
|
|
|
tracks/0/imported = false
|
|
|
|
|
tracks/0/enabled = true
|
|
|
|
|
tracks/0/path = NodePath("OmniLight3D2:light_energy")
|
|
|
|
|
tracks/0/interp = 1
|
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
|
tracks/0/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0, 2),
|
|
|
|
|
"transitions": PackedFloat32Array(1, 1),
|
|
|
|
|
"update": 0,
|
|
|
|
|
"values": [1.0, 0.0]
|
|
|
|
|
}
|
|
|
|
|
tracks/1/type = "method"
|
|
|
|
|
tracks/1/imported = false
|
|
|
|
|
tracks/1/enabled = true
|
|
|
|
|
tracks/1/path = NodePath("desk_light")
|
|
|
|
|
tracks/1/interp = 1
|
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
|
tracks/1/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
|
"values": [{
|
|
|
|
|
"args": [],
|
|
|
|
|
"method": &"switch_off"
|
|
|
|
|
}]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_upogh"]
|
|
|
|
|
resource_name = "menu"
|
|
|
|
|
tracks/0/type = "value"
|
|
|
|
|
tracks/0/imported = false
|
|
|
|
|
tracks/0/enabled = true
|
|
|
|
|
tracks/0/path = NodePath("OmniLight3D2:light_energy")
|
|
|
|
|
tracks/0/interp = 1
|
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
|
tracks/0/keys = {
|
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
|
"update": 0,
|
|
|
|
|
"values": [0.0]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k8op5"]
|
|
|
|
|
_data = {
|
|
|
|
|
&"RESET": SubResource("Animation_hqls1"),
|
|
|
|
|
&"light_up": SubResource("Animation_hxk3n"),
|
|
|
|
|
&"lights_out": SubResource("Animation_wa80i"),
|
|
|
|
|
&"menu": SubResource("Animation_upogh")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[sub_resource type="GDScript" id="GDScript_dwmnt"]
|
|
|
|
|
script/source = "extends AnimationPlayer
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
|
Scenes.scene_finished.connect(lights_on)
|
|
|
|
|
Scenes.scene_starting.connect(lights_off)
|
|
|
|
|
|
|
|
|
|
func lights_off(id: int = -1, _repeat: bool = false):
|
|
|
|
|
if id == Scenes.id.YOUTH_VOICE_TRAINING:
|
|
|
|
|
await get_tree().create_timer(10).timeout
|
|
|
|
|
queue(\"lights_out\")
|
|
|
|
|
|
|
|
|
|
func lights_on(_id: int = -1, _repeat: bool = false):
|
|
|
|
|
queue(\"light_up\")
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
[sub_resource type="GDScript" id="GDScript_2qjvc"]
|
|
|
|
|
script/source = "extends SpotLight3D
|
|
|
|
|
|
|
|
|
|
@export var flicker_strength:float = 0.7
|
|
|
|
|
@export var speed:float = 4
|
|
|
|
|
var noise = FastNoiseLite.new()
|
|
|
|
|
var light_spot:float = randf()
|
|
|
|
|
var base_energy = light_energy
|
|
|
|
|
|
|
|
|
|
func _process(delta):
|
|
|
|
|
light_spot += speed*delta
|
|
|
|
|
light_energy = base_energy * (1 + noise.get_noise_1d(light_spot) * flicker_strength)
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
[node name="InteractableTests" type="Node"]
|
|
|
|
|
|
|
|
|
|
[node name="PlayerController" parent="." groups=["camera_owner"] instance=ExtResource("1_oayv8")]
|
|
|
|
|
unique_name_in_owner = true
|
|
|
|
|
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925)
|
|
|
|
|
enabled = true
|
|
|
|
|
|
|
|
|
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0049040318, -0.36189413, 0.003689289)
|
|
|
|
|
mesh = SubResource("PlaneMesh_cv7g8")
|
|
|
|
|
|
|
|
|
|
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.221635, 0)
|
|
|
|
|
omni_range = 9.435307
|
|
|
|
|
|
|
|
|
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5455923, 4.7683716e-07, -5.57273)
|
|
|
|
|
mesh = SubResource("SphereMesh_7dqkp")
|
|
|
|
|
|
|
|
|
|
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
|
|
|
|
|
|
|
|
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
|
|
|
|
shape = SubResource("WorldBoundaryShape3D_nl0nc")
|
|
|
|
|
|
|
|
|
|
[node name="Interactable" parent="." instance=ExtResource("2_nl0nc")]
|
|
|
|
|
transform = Transform3D(-1, 0, 1.509958e-07, 0, 1, 0, -1.509958e-07, 0, -1, 0.0017054975, 0.59263134, 2.5304449)
|
2026-01-15 12:39:56 +00:00
|
|
|
interaction = ExtResource("3_am5gj")
|
2026-01-15 12:04:52 +00:00
|
|
|
|
|
|
|
|
[node name="visuals" parent="." instance=ExtResource("5_3rbj1")]
|
|
|
|
|
|
|
|
|
|
[node name="Shadow" type="CSGCombiner3D" parent="visuals"]
|
|
|
|
|
cast_shadow = 3
|
|
|
|
|
calculate_tangents = false
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.34613, 1.23087, 2.97923)
|
|
|
|
|
size = Vector3(5.26758, 2.69583, 0.137207)
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D2" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.441227, 2.48778, 0.766643)
|
|
|
|
|
size = Vector3(3.47876, 0.182022, 4.56238)
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D6" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.21313, 1.23861, 0.766643)
|
|
|
|
|
size = Vector3(0.170044, 2.68037, 4.56238)
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D4" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 3.1589, 1.73312, 0.766643)
|
|
|
|
|
size = Vector3(2.57013, 0.182022, 4.56238)
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D5" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 3.09781, 1.7764, -0.332882)
|
|
|
|
|
operation = 2
|
|
|
|
|
size = Vector3(1.25306, 0.312046, 0.893661)
|
|
|
|
|
|
|
|
|
|
[node name="CSGBox3D3" type="CSGBox3D" parent="visuals/Shadow"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.977913, 1.52551, 2.97298)
|
|
|
|
|
operation = 2
|
|
|
|
|
calculate_tangents = false
|
|
|
|
|
flip_faces = true
|
|
|
|
|
size = Vector3(1.74371, 1.18614, 0.271545)
|
|
|
|
|
|
|
|
|
|
[node name="OmniLight3D" type="OmniLight3D" parent="visuals"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.73188, 2.33544, 4.04756)
|
|
|
|
|
visible = false
|
|
|
|
|
light_energy = 3.0
|
|
|
|
|
light_size = 2.0
|
|
|
|
|
light_specular = 0.2
|
|
|
|
|
light_bake_mode = 0
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
shadow_caster_mask = 4293918721
|
|
|
|
|
|
|
|
|
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="visuals"]
|
|
|
|
|
transform = Transform3D(0.82167387, 0.44718716, -0.35337743, -0.41379577, 0.8944143, 0.16969287, 0.39195043, 0.0067938697, 0.9199613, 0.866179, 2.88055, 4.51936)
|
|
|
|
|
visible = false
|
|
|
|
|
light_color = Color(0.81982, 0.935491, 0.980381, 1)
|
|
|
|
|
light_energy = 20.0
|
|
|
|
|
light_angular_distance = 2.0
|
|
|
|
|
light_bake_mode = 0
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
directional_shadow_mode = 1
|
|
|
|
|
sky_mode = 1
|
|
|
|
|
|
|
|
|
|
[node name="lights" type="Node3D" parent="visuals"]
|
|
|
|
|
|
|
|
|
|
[node name="desk_light" type="SpotLight3D" parent="visuals/lights"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 0.30009, 0.953911, 0, -0.953911, 0.30009, -0.599038, 1.39757, 1.64821)
|
|
|
|
|
layers = 2
|
|
|
|
|
light_color = Color(0.94902, 0.737255, 0.627451, 1)
|
|
|
|
|
light_energy = 8.0
|
|
|
|
|
light_size = 0.1
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
shadow_bias = 0.002
|
|
|
|
|
spot_range = 2.47523
|
|
|
|
|
spot_angle = 58.1539
|
|
|
|
|
spot_angle_attenuation = 0.812252
|
|
|
|
|
script = SubResource("GDScript_06xif")
|
|
|
|
|
|
|
|
|
|
[node name="desk_secondary" type="OmniLight3D" parent="visuals/lights/desk_light"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 2.98023e-08, 1, 0.221273, 0.0654936, -0.292101)
|
|
|
|
|
light_color = Color(0.952941, 0.662745, 0.54902, 1)
|
|
|
|
|
light_energy = 0.5
|
|
|
|
|
light_size = 0.499
|
|
|
|
|
light_specular = 0.0
|
|
|
|
|
light_cull_mask = 4293918721
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
shadow_bias = 0.01
|
|
|
|
|
shadow_normal_bias = 5.78
|
|
|
|
|
omni_attenuation = 1.51572
|
|
|
|
|
|
|
|
|
|
[node name="shade_light" type="OmniLight3D" parent="visuals/lights/desk_light"]
|
|
|
|
|
light_color = Color(0.94902, 0.737255, 0.627451, 1)
|
|
|
|
|
light_energy = 0.5
|
|
|
|
|
light_cull_mask = 4293918721
|
|
|
|
|
omni_range = 0.147682
|
|
|
|
|
|
|
|
|
|
[node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.10614, 0.582081, 0.161548)
|
|
|
|
|
light_color = Color(0.894118, 0.87451, 0.686275, 1)
|
|
|
|
|
light_size = 0.2
|
|
|
|
|
light_specular = 0.1
|
|
|
|
|
light_bake_mode = 1
|
|
|
|
|
light_cull_mask = 4293918721
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
omni_range = 2.0
|
|
|
|
|
omni_attenuation = 0.450626
|
|
|
|
|
|
|
|
|
|
[node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"]
|
|
|
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.47143, 1.6968, -0.548992)
|
|
|
|
|
layers = 32769
|
|
|
|
|
light_color = Color(0.894118, 0.87451, 0.686275, 1)
|
|
|
|
|
light_energy = 0.1
|
|
|
|
|
light_size = 0.3
|
|
|
|
|
light_specular = 0.0
|
|
|
|
|
light_cull_mask = 4293918721
|
|
|
|
|
shadow_enabled = true
|
|
|
|
|
omni_range = 1.3534
|
|
|
|
|
omni_attenuation = 1.41421
|
|
|
|
|
|
|
|
|
|
[node name="LightAnimation" type="AnimationPlayer" parent="visuals/lights" groups=["scene_actors"]]
|
|
|
|
|
unique_name_in_owner = true
|
|
|
|
|
libraries = {
|
|
|
|
|
&"": SubResource("AnimationLibrary_k8op5")
|
|
|
|
|
}
|
|
|
|
|
autoplay = "menu"
|
|
|
|
|
script = SubResource("GDScript_dwmnt")
|
|
|
|
|
|
|
|
|
|
[node name="vfx" type="Node3D" parent="visuals"]
|
|
|
|
|
|
|
|
|
|
[node name="lava-lamp" parent="visuals/vfx" instance=ExtResource("6_ggen3")]
|
|
|
|
|
transform = Transform3D(0.488743, 0, -0.872428, 0, 1, 0, 0.872428, 0, 0.488743, 3.1041, 0.962981, 2.21157)
|
|
|
|
|
skeleton = NodePath("")
|
|
|
|
|
|
|
|
|
|
[node name="ReflectionProbe" type="ReflectionProbe" parent="visuals/vfx/lava-lamp"]
|
|
|
|
|
transform = Transform3D(0.866853, 0, -0.498563, 0, 1, 0, 0.498563, 0, 0.866853, -0.0356357, 0.0416123, 0.020328)
|
|
|
|
|
max_distance = 7.0
|
|
|
|
|
size = Vector3(2, 2, 2)
|
|
|
|
|
|
|
|
|
|
[node name="OmniLight3D" type="SpotLight3D" parent="visuals/vfx/lava-lamp"]
|
|
|
|
|
transform = Transform3D(0.9999999, 0, 0, 0, -4.3711395e-08, -1, 0, 0.9999999, -4.3711385e-08, 0.011304617, 0.187006, -0.0021249056)
|
|
|
|
|
light_color = Color(0.21945003, 0.45, 0.189, 1)
|
|
|
|
|
light_size = 0.05
|
|
|
|
|
light_specular = 0.3
|
|
|
|
|
light_bake_mode = 1
|
|
|
|
|
light_cull_mask = 4293918721
|
|
|
|
|
spot_range = 1.5
|
|
|
|
|
spot_attenuation = 1.2
|
|
|
|
|
spot_angle = 137.58
|
|
|
|
|
spot_angle_attenuation = 1.6358016
|
|
|
|
|
script = SubResource("GDScript_2qjvc")
|