diff --git a/blends/environment.blend b/blends/environment.blend index 9b31485..973508a 100644 --- a/blends/environment.blend +++ b/blends/environment.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5309e2d138397f5e9e0b8a74d4626c53b51dd3cffa2bff8a166615298d364a87 -size 1125924 +oid sha256:4348205b68099f38bc37ee4d52dde213f36577fce327b79a5428db2a9e7b97b0 +size 1131968 diff --git a/blends/environment.blend1 b/blends/environment.blend1 index 4505bbe..13f985f 100644 Binary files a/blends/environment.blend1 and b/blends/environment.blend1 differ diff --git a/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.md5 b/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.md5 new file mode 100644 index 0000000..0b31797 --- /dev/null +++ b/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.md5 @@ -0,0 +1,3 @@ +source_md5="57b4ff75689821c17e211ac43dec5cc1" +dest_md5="e111a930a900111d74daf52169d71079" + diff --git a/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.oggstr b/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.oggstr new file mode 100644 index 0000000..f9e87e0 Binary files /dev/null and b/godot/.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.oggstr differ diff --git a/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.md5 b/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.md5 new file mode 100644 index 0000000..cbbc46e --- /dev/null +++ b/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.md5 @@ -0,0 +1,3 @@ +source_md5="29a467bd0e8026e293d99ad55aa9226b" +dest_md5="544be77f19c21ac6731f2a9ffe327c5b" + diff --git a/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr b/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr new file mode 100644 index 0000000..2d6a1f6 Binary files /dev/null and b/godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr differ diff --git a/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.md5 b/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.md5 new file mode 100644 index 0000000..fef296f --- /dev/null +++ b/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.md5 @@ -0,0 +1,3 @@ +source_md5="117c82671fc7ee51752ef9c55c2f660c" +dest_md5="69ffad1aa079b0bb21541ee45b204038" + diff --git a/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.oggstr b/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.oggstr new file mode 100644 index 0000000..90fc092 Binary files /dev/null and b/godot/.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.oggstr differ diff --git a/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.md5 b/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.md5 new file mode 100644 index 0000000..1011e24 --- /dev/null +++ b/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.md5 @@ -0,0 +1,3 @@ +source_md5="012bedbf6531f60be5bea92f0c6e72d3" +dest_md5="ef3ab7c849aecdb2333073d93acc14a6" + diff --git a/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr b/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr new file mode 100644 index 0000000..4ecdbd5 Binary files /dev/null and b/godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr differ diff --git a/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.md5 b/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.md5 new file mode 100644 index 0000000..a847c6b --- /dev/null +++ b/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.md5 @@ -0,0 +1,3 @@ +source_md5="6daa2c682f089c1575edb4df6779283b" +dest_md5="7ce601b52785ba50f5dbe7e1c86bd594" + diff --git a/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr b/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr new file mode 100644 index 0000000..69b5ede Binary files /dev/null and b/godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr differ diff --git a/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.md5 b/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.md5 index 1f67b64..36a7201 100644 --- a/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.md5 +++ b/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.md5 @@ -1,3 +1,3 @@ -source_md5="d958ea022de42cf6a043f9a1801ebaed" -dest_md5="dfff1dbb1add8c552ef261e8a3b6a094" +source_md5="f6f19525174d964bcfbd5e0d10af60f4" +dest_md5="b244913244895512a1541ec37a177db9" diff --git a/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.scn b/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.scn index 83d9bb2..7658efa 100644 Binary files a/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.scn and b/godot/.import/camera_positions.glb-93772d48b845e88725c00b3f57a174aa.scn differ diff --git a/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.md5 b/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.md5 new file mode 100644 index 0000000..09561b5 --- /dev/null +++ b/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.md5 @@ -0,0 +1,3 @@ +source_md5="9b94e0f51de02c4a45185188995cb665" +dest_md5="15cc094a05e22cbf495d3b31b9636222" + diff --git a/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr b/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr new file mode 100644 index 0000000..57ac0bf Binary files /dev/null and b/godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr differ diff --git a/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.md5 b/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.md5 new file mode 100644 index 0000000..9d2e5d5 --- /dev/null +++ b/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.md5 @@ -0,0 +1,3 @@ +source_md5="50c243f949bb21547a721b61ce9ef4e4" +dest_md5="bf69edfb8a6c681488dce5eb4b06afc1" + diff --git a/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr b/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr new file mode 100644 index 0000000..2fb542f Binary files /dev/null and b/godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr differ diff --git a/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.md5 b/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.md5 new file mode 100644 index 0000000..3fe26db --- /dev/null +++ b/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.md5 @@ -0,0 +1,3 @@ +source_md5="d6b3b46b70c9ac15fe713c3512c3e2bb" +dest_md5="7e05983fb7806b04a3f81e7015eb5d53" + diff --git a/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.oggstr b/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.oggstr new file mode 100644 index 0000000..bbc9639 Binary files /dev/null and b/godot/.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.oggstr differ diff --git a/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.md5 b/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.md5 new file mode 100644 index 0000000..3d63bc8 --- /dev/null +++ b/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.md5 @@ -0,0 +1,3 @@ +source_md5="cd0239125589bbed7154e4c37d3df269" +dest_md5="1343865a40c52a07aee54914c1cfe8ee" + diff --git a/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.oggstr b/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.oggstr new file mode 100644 index 0000000..e470d2c Binary files /dev/null and b/godot/.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.oggstr differ diff --git a/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.md5 b/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.md5 new file mode 100644 index 0000000..29b7a30 --- /dev/null +++ b/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.md5 @@ -0,0 +1,3 @@ +source_md5="b2d69ececd65bd1f6b1dd2721557d916" +dest_md5="027713fa886127a5b5e6964c4e85675b" + diff --git a/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.oggstr b/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.oggstr new file mode 100644 index 0000000..56995b9 Binary files /dev/null and b/godot/.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.oggstr differ diff --git a/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.md5 b/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.md5 new file mode 100644 index 0000000..d07c862 --- /dev/null +++ b/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.md5 @@ -0,0 +1,3 @@ +source_md5="7cf5bb24903fdee23774f8c9da6e36b2" +dest_md5="21d192875f8011d011cb6317a7bc670a" + diff --git a/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.oggstr b/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.oggstr new file mode 100644 index 0000000..7b3fc3b Binary files /dev/null and b/godot/.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.oggstr differ diff --git a/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.md5 b/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.md5 new file mode 100644 index 0000000..a1f7c74 --- /dev/null +++ b/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.md5 @@ -0,0 +1,3 @@ +source_md5="f84ae5bbac64d603431a024c47a4a2aa" +dest_md5="fa6a07901b875360fa1234eaa1030a25" + diff --git a/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.oggstr b/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.oggstr new file mode 100644 index 0000000..7606db1 Binary files /dev/null and b/godot/.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.oggstr differ diff --git a/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.md5 b/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.md5 new file mode 100644 index 0000000..24aca24 --- /dev/null +++ b/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.md5 @@ -0,0 +1,3 @@ +source_md5="c3ed6de3d121966caf4e61dc885612a6" +dest_md5="6cc8935d8cf3c5ce99e5c3f175d20e0e" + diff --git a/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.oggstr b/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.oggstr new file mode 100644 index 0000000..a01eb16 Binary files /dev/null and b/godot/.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.oggstr differ diff --git a/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.md5 b/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.md5 new file mode 100644 index 0000000..a270111 --- /dev/null +++ b/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.md5 @@ -0,0 +1,3 @@ +source_md5="1c7190e4f5911bf2f2cf42fe764473d8" +dest_md5="7759500d4105c4cec08be5872341d1b2" + diff --git a/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.oggstr b/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.oggstr new file mode 100644 index 0000000..32f4970 Binary files /dev/null and b/godot/.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.oggstr differ diff --git a/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.md5 b/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.md5 new file mode 100644 index 0000000..2860744 --- /dev/null +++ b/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.md5 @@ -0,0 +1,3 @@ +source_md5="964c8a1bd4adcf55e4960f4056556b30" +dest_md5="23c10cf6850b1e567d45b340f37b8dc1" + diff --git a/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.oggstr b/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.oggstr new file mode 100644 index 0000000..b9aaa2c Binary files /dev/null and b/godot/.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.oggstr differ diff --git a/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.md5 b/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.md5 new file mode 100644 index 0000000..56a45e3 --- /dev/null +++ b/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.md5 @@ -0,0 +1,3 @@ +source_md5="f6dafb3b5cc64081b282ea04b18b2319" +dest_md5="153c542c7e4f67638a66f05a4f272837" + diff --git a/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.oggstr b/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.oggstr new file mode 100644 index 0000000..8828ba0 Binary files /dev/null and b/godot/.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.oggstr differ diff --git a/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.md5 b/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.md5 new file mode 100644 index 0000000..a3232ef --- /dev/null +++ b/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.md5 @@ -0,0 +1,3 @@ +source_md5="cd581dfa2d4e48db761f0a6a8f5dde53" +dest_md5="f8d3ce55de908504c4421f4ed8d66f97" + diff --git a/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.oggstr b/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.oggstr new file mode 100644 index 0000000..7bfb6d0 Binary files /dev/null and b/godot/.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.oggstr differ diff --git a/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.md5 b/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.md5 new file mode 100644 index 0000000..037b21b --- /dev/null +++ b/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.md5 @@ -0,0 +1,3 @@ +source_md5="0b7e964d3f859345741fa337f39b3ee5" +dest_md5="407f16c0e0ee291d6de66272c0abb710" + diff --git a/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.oggstr b/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.oggstr new file mode 100644 index 0000000..7f1b612 Binary files /dev/null and b/godot/.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.oggstr differ diff --git a/godot/3DCursor.gd b/godot/3DCursor.gd index 6738ded..ee17e3b 100644 --- a/godot/3DCursor.gd +++ b/godot/3DCursor.gd @@ -67,16 +67,46 @@ func input_speed() -> float: speed *= DIST_PER_ACTION return speed +func sound_beep(): + if not $Beep.playing: + $Beep.play() + +func sound_color(): + if $Color.playing: + return + $Color.play() + func _input(_event): if Input.is_action_just_pressed("cursor_interact"): GlobalCursorState.fire_interact() + sound_beep() + if Input.is_action_just_released("cursor_interact"): + sound_beep() + + if Input.is_action_just_pressed("cursor_right") or Input.is_action_just_pressed("cursor_left"): + sound_color() func _process(_delta): set_color() +func bump(): + if $Bump.playing: + return + $Bump.play() + +var locked = false func _physics_process(delta): inc_time_buffer(delta) + if locked: + return var dir = input_direction() var speed = input_speed() - var _slide_vel = move_and_slide(Vector3(speed, speed, speed) * dir, Vector3.UP) + var velocity = Vector3(speed, speed, speed) * dir + var result = move_and_slide(velocity, Vector3.UP) + if velocity != result: + bump() + + +func _on_AnimationTree_motion_status(value): + locked = value diff --git a/godot/3DCursor.tscn b/godot/3DCursor.tscn index 1a567ba..fc8af47 100644 --- a/godot/3DCursor.tscn +++ b/godot/3DCursor.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://3DCursor.gd" type="Script" id=1] [ext_resource path="res://3DCursorLight.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/audio/bassy_bump.ogg" type="AudioStream" id=3] +[ext_resource path="res://assets/audio/beep.ogg" type="AudioStream" id=4] +[ext_resource path="res://assets/audio/color.ogg" type="AudioStream" id=5] [sub_resource type="SpatialMaterial" id=5] params_diffuse_mode = 4 @@ -41,3 +44,13 @@ transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, -3, 0, 0 ) [node name="OmniLight7" parent="." instance=ExtResource( 2 )] transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, 3, 0, 0 ) + +[node name="Bump" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) + +[node name="Beep" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 4 ) + +[node name="Color" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) +volume_db = 10.0 diff --git a/godot/AnimationTree.gd b/godot/AnimationTree.gd index 98e0ff6..946b5e4 100644 --- a/godot/AnimationTree.gd +++ b/godot/AnimationTree.gd @@ -1,6 +1,21 @@ extends AnimationTree export var TARGET_FRAMERATE = 5 +onready var fsm: AnimationNodeStateMachinePlayback = get("parameters/playback") + +func _ready(): + var _err = GlobalCursorState.connect("set_camera_zone", self, "move") + + +signal motion_status(value) + +func move(where: String): + if where == fsm.get_current_node(): + return + fsm.travel(where) + emit_signal("motion_status", true) + yield(get_tree().create_timer(3), "timeout") + emit_signal("motion_status", false) var time_buffer = 0.0 func _process(delta): diff --git a/godot/AtticAmberLight.gd b/godot/AtticAmberLight.gd new file mode 100644 index 0000000..bfed308 --- /dev/null +++ b/godot/AtticAmberLight.gd @@ -0,0 +1,23 @@ +extends OmniLight + +var active = false + +func _ready(): + var _err = GlobalCursorState.connect("set_camera_zone", self, "zone") + visible = false + + +func zone(where: String): + if where != "camera_attic_inner": + $AnimationPlayer.stop() + active = false + visible = false + return + active = true + +func _on_AnimationTree_motion_status(value): + if not active: + return + if value: + return + $AnimationPlayer.play("light_flicker") diff --git a/godot/CursorInteractArea.gd b/godot/CursorInteractArea.gd index f7daed2..5a194da 100644 --- a/godot/CursorInteractArea.gd +++ b/godot/CursorInteractArea.gd @@ -3,26 +3,33 @@ extends Area export var on_interact_func = "" export var on_enter_func = "" export var on_leave_func = "" +export var call_string = "" var cursor_is_touching = false func _ready(): var _err = GlobalCursorState.connect("cursor_interact", self, "check_interact") +func call_with_value(func_name: String): + if call_string: + GlobalCursorState.call(func_name, call_string) + else: + GlobalCursorState.call(func_name) + func check_interact(): if cursor_is_touching and on_interact_func: - GlobalCursorState.call(on_interact_func) + call_with_value(on_interact_func) func _on_CursorInteractArea_body_entered(body): if not GlobalCursorState.is_cursor_collision(body): return cursor_is_touching = true if on_enter_func: - GlobalCursorState.call(on_enter_func) + call_with_value(on_enter_func) func _on_CursorInteractArea_body_exited(body): if not GlobalCursorState.is_cursor_collision(body): return cursor_is_touching = false if on_leave_func: - GlobalCursorState.call(on_leave_func) + call_with_value(on_leave_func) diff --git a/godot/GlobalCursorState.gd b/godot/GlobalCursorState.gd index 2fa9d9d..fb5e6ad 100644 --- a/godot/GlobalCursorState.gd +++ b/godot/GlobalCursorState.gd @@ -21,3 +21,12 @@ func get_cursor(): ######################################### func _on_Interact_leave_disclaimer(): var _err = get_tree().change_scene("res://world.tscn") + + + +# Camera zones + +signal set_camera_zone(zone) + +func _on_Cursor_set_camera(where: String): + emit_signal("set_camera_zone", where) diff --git a/godot/assets/audio/AmbientSound.gd b/godot/assets/audio/AmbientSound.gd new file mode 100644 index 0000000..e61127e --- /dev/null +++ b/godot/assets/audio/AmbientSound.gd @@ -0,0 +1,16 @@ +extends Node + +onready var drone_fsm: AnimationNodeStateMachinePlayback = $DroneAudioFSM.get("parameters/playback") + +func _ready(): + $NormalDrone.play() + yield(get_tree().create_timer(.1), "timeout") + $SicklyDrone.play() + + + +func _on_AnimationTree_motion_status(value): + if value: + drone_fsm.travel("play_sickly_drone") + else: + drone_fsm.travel("play_normal_drone") diff --git a/godot/assets/audio/AmbientSound.tscn b/godot/assets/audio/AmbientSound.tscn new file mode 100644 index 0000000..5779e95 --- /dev/null +++ b/godot/assets/audio/AmbientSound.tscn @@ -0,0 +1,128 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://assets/audio/sicky_drone.ogg" type="AudioStream" id=1] +[ext_resource path="res://assets/audio/vocal_drone.ogg" type="AudioStream" id=2] +[ext_resource path="res://assets/audio/AmbientSound.gd" type="Script" id=3] + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("NormalDrone:volume_db") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("SicklyDrone:volume_db") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10.0 ] +} + +[sub_resource type="Animation" id=2] +resource_name = "play_normal_drone" +tracks/0/type = "value" +tracks/0/path = NodePath("NormalDrone:volume_db") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("SicklyDrone:volume_db") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -50.0 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "play_sickly_drone" +tracks/0/type = "value" +tracks/0/path = NodePath("NormalDrone:volume_db") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -50.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("SicklyDrone:volume_db") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10.0 ] +} + +[sub_resource type="AnimationNodeAnimation" id=4] +animation = "play_normal_drone" + +[sub_resource type="AnimationNodeAnimation" id=5] +animation = "play_sickly_drone" + +[sub_resource type="AnimationNodeStateMachineTransition" id=6] + +[sub_resource type="AnimationNodeStateMachineTransition" id=7] + +[sub_resource type="AnimationNodeStateMachine" id=8] +states/play_normal_drone/node = SubResource( 4 ) +states/play_normal_drone/position = Vector2( 336, 128 ) +states/play_sickly_drone/node = SubResource( 5 ) +states/play_sickly_drone/position = Vector2( 683, 227 ) +transitions = [ "play_normal_drone", "play_sickly_drone", SubResource( 6 ), "play_sickly_drone", "play_normal_drone", SubResource( 7 ) ] +start_node = "play_normal_drone" + +[sub_resource type="AnimationNodeStateMachinePlayback" id=9] + +[node name="AmbientSound" type="Node"] +script = ExtResource( 3 ) + +[node name="NormalDrone" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 2 ) +volume_db = -10.0 + +[node name="SicklyDrone" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 1 ) +volume_db = -10.0 + +[node name="DroneAudioAnimation" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 1 ) +anims/play_normal_drone = SubResource( 2 ) +anims/play_sickly_drone = SubResource( 3 ) + +[node name="DroneAudioFSM" type="AnimationTree" parent="."] +tree_root = SubResource( 8 ) +anim_player = NodePath("../DroneAudioAnimation") +active = true +parameters/playback = SubResource( 9 ) diff --git a/godot/assets/audio/bassy_bump.ogg b/godot/assets/audio/bassy_bump.ogg new file mode 100644 index 0000000..307f9b6 --- /dev/null +++ b/godot/assets/audio/bassy_bump.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b4168257b305108f80ef9306dd4366539bfa26141abbf370100a1a7a12ba96 +size 9921 diff --git a/godot/assets/audio/bassy_bump.ogg.import b/godot/assets/audio/bassy_bump.ogg.import new file mode 100644 index 0000000..60a62a8 --- /dev/null +++ b/godot/assets/audio/bassy_bump.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.oggstr" + +[deps] + +source_file="res://assets/audio/bassy_bump.ogg" +dest_files=[ "res://.import/bassy_bump.ogg-efb21ed36009cf312899a2d3e22513e6.oggstr" ] + +[params] + +loop=false +loop_offset=0.0 diff --git a/godot/assets/audio/beep.ogg b/godot/assets/audio/beep.ogg new file mode 100644 index 0000000..0a23b94 --- /dev/null +++ b/godot/assets/audio/beep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3de82544c7302855147162e89059f2df62a223a52d7f431c620e41e60a3fbed +size 6209 diff --git a/godot/assets/audio/beep.ogg.import b/godot/assets/audio/beep.ogg.import new file mode 100644 index 0000000..5a68fd6 --- /dev/null +++ b/godot/assets/audio/beep.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr" + +[deps] + +source_file="res://assets/audio/beep.ogg" +dest_files=[ "res://.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/bump.ogg b/godot/assets/audio/bump.ogg new file mode 100644 index 0000000..5f55f22 --- /dev/null +++ b/godot/assets/audio/bump.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45009b04ad3be678275174e9b825b6d9415dc98e71ad460d9139eeb0b880ca47 +size 11189 diff --git a/godot/assets/audio/bump.ogg.import b/godot/assets/audio/bump.ogg.import new file mode 100644 index 0000000..327edf8 --- /dev/null +++ b/godot/assets/audio/bump.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr" + +[deps] + +source_file="res://assets/audio/bump.ogg" +dest_files=[ "res://.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/assets/audio/color.ogg b/godot/assets/audio/color.ogg new file mode 100644 index 0000000..abcc4a7 --- /dev/null +++ b/godot/assets/audio/color.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51a3b8ba95d21397e9d1eb9da84bd210bfbfcc673f213954bd0da83928c58723 +size 7580 diff --git a/godot/assets/audio/color.ogg.import b/godot/assets/audio/color.ogg.import new file mode 100644 index 0000000..3fd9fdf --- /dev/null +++ b/godot/assets/audio/color.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr" + +[deps] + +source_file="res://assets/audio/color.ogg" +dest_files=[ "res://.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/sicky_drone.ogg b/godot/assets/audio/sicky_drone.ogg new file mode 100644 index 0000000..4449947 --- /dev/null +++ b/godot/assets/audio/sicky_drone.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c610556129889788f93fdf80741641bbbe31ddd9d3871cd1cfdfa65f743421f1 +size 128015 diff --git a/godot/assets/audio/sicky_drone.ogg.import b/godot/assets/audio/sicky_drone.ogg.import new file mode 100644 index 0000000..2230b88 --- /dev/null +++ b/godot/assets/audio/sicky_drone.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.oggstr" + +[deps] + +source_file="res://assets/audio/sicky_drone.ogg" +dest_files=[ "res://.import/sicky_drone.ogg-bf1e0d419cbb74f272e345e086ba6afd.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/assets/audio/vocal_drone.ogg b/godot/assets/audio/vocal_drone.ogg new file mode 100644 index 0000000..d75d269 --- /dev/null +++ b/godot/assets/audio/vocal_drone.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8c18f01e1d2537c8fab44afb9621ded08625d563ceaf660dda18c2938e10935 +size 114330 diff --git a/godot/assets/audio/vocal_drone.ogg.import b/godot/assets/audio/vocal_drone.ogg.import new file mode 100644 index 0000000..5e7e090 --- /dev/null +++ b/godot/assets/audio/vocal_drone.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.oggstr" + +[deps] + +source_file="res://assets/audio/vocal_drone.ogg" +dest_files=[ "res://.import/vocal_drone.ogg-b1bba3338757e53b92922102d8ec6f2d.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/LineReader.gd b/godot/assets/audio/voice_lines/LineReader.gd new file mode 100644 index 0000000..3f423b9 --- /dev/null +++ b/godot/assets/audio/voice_lines/LineReader.gd @@ -0,0 +1,39 @@ +extends Node + +var voice_script = [ + ["the_long", "book"], + ["the_tall", "book"], + ["the_door"], + ["the_clock"], + ["under_the_bed"], + ["frog"], + ["squirrel"], + ["the_attic"], + ["the_fridge"], + ["the_tall", "book"], + ["under_the_bed"], + ["the_long", "book"], + ["behind_the_bookshelf"], +] + +export var impatience: float = 5.0 + + +func read_line(line): + pass + +var loop = null +func start(): + if loop != null: + return + loop = script_loop() + +func script_loop(): + for line in voice_script: + read_line(line) + while not yield(): + read_line(line) + + +func _on_ImpatienceTimer_timeout(): + script_loop().resume(false) diff --git a/godot/assets/audio/voice_lines/LineReader.tscn b/godot/assets/audio/voice_lines/LineReader.tscn new file mode 100644 index 0000000..5d87aac --- /dev/null +++ b/godot/assets/audio/voice_lines/LineReader.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=14 format=2] + +[ext_resource path="res://assets/audio/voice_lines/LineReader.gd" type="Script" id=1] +[ext_resource path="res://assets/audio/voice_lines/behind_the_bookshelf.ogg" type="AudioStream" id=2] +[ext_resource path="res://assets/audio/voice_lines/book.ogg" type="AudioStream" id=3] +[ext_resource path="res://assets/audio/voice_lines/frog.ogg" type="AudioStream" id=4] +[ext_resource path="res://assets/audio/voice_lines/show_me.ogg" type="AudioStream" id=5] +[ext_resource path="res://assets/audio/voice_lines/squirrel.ogg" type="AudioStream" id=6] +[ext_resource path="res://assets/audio/voice_lines/the_attic.ogg" type="AudioStream" id=7] +[ext_resource path="res://assets/audio/voice_lines/the_clock.ogg" type="AudioStream" id=8] +[ext_resource path="res://assets/audio/voice_lines/the_door.ogg" type="AudioStream" id=9] +[ext_resource path="res://assets/audio/voice_lines/the_fridge.ogg" type="AudioStream" id=10] +[ext_resource path="res://assets/audio/voice_lines/the_long.ogg" type="AudioStream" id=11] +[ext_resource path="res://assets/audio/voice_lines/the_tall.ogg" type="AudioStream" id=12] +[ext_resource path="res://assets/audio/voice_lines/under_the_bed.ogg" type="AudioStream" id=13] + +[node name="LineReader" type="Node"] +script = ExtResource( 1 ) + +[node name="book" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) + +[node name="frog" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 4 ) + +[node name="show_me" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) + +[node name="squirrel" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 6 ) + +[node name="the_attic" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 7 ) + +[node name="the_clock" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 8 ) + +[node name="the_door" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 9 ) + +[node name="the_fridge" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 10 ) + +[node name="the_long" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 11 ) + +[node name="the_tall" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 12 ) + +[node name="under_the_bed" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 13 ) + +[node name="behind_the_bookshelf" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 2 ) + +[node name="ImpatienceTimer" type="Timer" parent="."] + +[connection signal="timeout" from="ImpatienceTimer" to="." method="_on_ImpatienceTimer_timeout"] diff --git a/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg b/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg new file mode 100644 index 0000000..6f24070 --- /dev/null +++ b/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3cc8d0d964fdb51540f1e76d327c652806c68c46bf7b733eeddd30f67436ab1 +size 36639 diff --git a/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg.import b/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg.import new file mode 100644 index 0000000..ee50220 --- /dev/null +++ b/godot/assets/audio/voice_lines/behind_the_bookshelf.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/behind_the_bookshelf.ogg" +dest_files=[ "res://.import/behind_the_bookshelf.ogg-a21b7805e8182418c46ec087dd18f9dd.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/book.ogg b/godot/assets/audio/voice_lines/book.ogg new file mode 100644 index 0000000..6103add --- /dev/null +++ b/godot/assets/audio/voice_lines/book.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff39573c60f1d3c1e4e9536815d228717f432b03482be84ea655627c8adb6fdf +size 12119 diff --git a/godot/assets/audio/voice_lines/book.ogg.import b/godot/assets/audio/voice_lines/book.ogg.import new file mode 100644 index 0000000..b022838 --- /dev/null +++ b/godot/assets/audio/voice_lines/book.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/book.ogg" +dest_files=[ "res://.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/frog.ogg b/godot/assets/audio/voice_lines/frog.ogg new file mode 100644 index 0000000..4aaa645 --- /dev/null +++ b/godot/assets/audio/voice_lines/frog.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d8cd252df33d241ab654df74b81cd688a2d895f6b56a55b4671e4e2be8d9c7f +size 15097 diff --git a/godot/assets/audio/voice_lines/frog.ogg.import b/godot/assets/audio/voice_lines/frog.ogg.import new file mode 100644 index 0000000..9fd7cf3 --- /dev/null +++ b/godot/assets/audio/voice_lines/frog.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/frog.ogg" +dest_files=[ "res://.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/show_me.ogg b/godot/assets/audio/voice_lines/show_me.ogg new file mode 100644 index 0000000..5edc255 --- /dev/null +++ b/godot/assets/audio/voice_lines/show_me.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54c86f0e2e2e70aa49175cb67a80c423b7da325c43a83353fb3a3f0906a3a158 +size 14791 diff --git a/godot/assets/audio/voice_lines/show_me.ogg.import b/godot/assets/audio/voice_lines/show_me.ogg.import new file mode 100644 index 0000000..07cdc73 --- /dev/null +++ b/godot/assets/audio/voice_lines/show_me.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/show_me.ogg" +dest_files=[ "res://.import/show_me.ogg-65a0d169ab1ca4f07b4ac301dd46007c.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/squirrel.ogg b/godot/assets/audio/voice_lines/squirrel.ogg new file mode 100644 index 0000000..0dd5776 --- /dev/null +++ b/godot/assets/audio/voice_lines/squirrel.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95d4734a593f9ad8fd5d52821770bafb2a4059a48ad6dcea3acd987d0876c5c3 +size 16449 diff --git a/godot/assets/audio/voice_lines/squirrel.ogg.import b/godot/assets/audio/voice_lines/squirrel.ogg.import new file mode 100644 index 0000000..0cfd04f --- /dev/null +++ b/godot/assets/audio/voice_lines/squirrel.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/squirrel.ogg" +dest_files=[ "res://.import/squirrel.ogg-39d1b09d2874390274470386ae1c4000.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_attic.ogg b/godot/assets/audio/voice_lines/the_attic.ogg new file mode 100644 index 0000000..9caca40 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_attic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e9c5da8f59895a3209d058a18a782c55bd30c7dd264fe0c21d05707af4aa02 +size 17944 diff --git a/godot/assets/audio/voice_lines/the_attic.ogg.import b/godot/assets/audio/voice_lines/the_attic.ogg.import new file mode 100644 index 0000000..22672f0 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_attic.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_attic.ogg" +dest_files=[ "res://.import/the_attic.ogg-d9e131136e9e7772d4b3fefa98aa36a4.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_clock.ogg b/godot/assets/audio/voice_lines/the_clock.ogg new file mode 100644 index 0000000..1e81627 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_clock.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d2343c4de91781e100bfb95ce666b0077f2e03eaa247de27088ee4905041f9e +size 18836 diff --git a/godot/assets/audio/voice_lines/the_clock.ogg.import b/godot/assets/audio/voice_lines/the_clock.ogg.import new file mode 100644 index 0000000..3f8ee88 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_clock.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_clock.ogg" +dest_files=[ "res://.import/the_clock.ogg-6558710d350bf1d0561bd6d3ed049019.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_door.ogg b/godot/assets/audio/voice_lines/the_door.ogg new file mode 100644 index 0000000..ff356dc --- /dev/null +++ b/godot/assets/audio/voice_lines/the_door.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1acaee129bb90e8be8a736159c8f8ded66524fc08631bed2d72825e98c3fe24a +size 17410 diff --git a/godot/assets/audio/voice_lines/the_door.ogg.import b/godot/assets/audio/voice_lines/the_door.ogg.import new file mode 100644 index 0000000..32ca319 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_door.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_door.ogg" +dest_files=[ "res://.import/the_door.ogg-86a3a2d31d5218284b99b143d8edad4d.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_fridge.ogg b/godot/assets/audio/voice_lines/the_fridge.ogg new file mode 100644 index 0000000..6f1f35c --- /dev/null +++ b/godot/assets/audio/voice_lines/the_fridge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1413c4dc1eb271afd132e034bd23f55b37c50b05291a3da47c6ea74e1bc5efb +size 19144 diff --git a/godot/assets/audio/voice_lines/the_fridge.ogg.import b/godot/assets/audio/voice_lines/the_fridge.ogg.import new file mode 100644 index 0000000..a84f390 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_fridge.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_fridge.ogg" +dest_files=[ "res://.import/the_fridge.ogg-6a1d61f958de3fbdf43653fba19224df.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_long.ogg b/godot/assets/audio/voice_lines/the_long.ogg new file mode 100644 index 0000000..f340b93 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_long.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac786f3a2a3f260304239ef183904564bcef96eaaa4099dd11be7c5d14cca350 +size 18811 diff --git a/godot/assets/audio/voice_lines/the_long.ogg.import b/godot/assets/audio/voice_lines/the_long.ogg.import new file mode 100644 index 0000000..7565a4c --- /dev/null +++ b/godot/assets/audio/voice_lines/the_long.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_long.ogg" +dest_files=[ "res://.import/the_long.ogg-d68350c0196598d07f220b47a6e8a5bb.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/the_tall.ogg b/godot/assets/audio/voice_lines/the_tall.ogg new file mode 100644 index 0000000..f8bab9d --- /dev/null +++ b/godot/assets/audio/voice_lines/the_tall.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d92e610c65e1c25428157aba90b606cc86f360eb34c970a16de0a0404d85482d +size 23923 diff --git a/godot/assets/audio/voice_lines/the_tall.ogg.import b/godot/assets/audio/voice_lines/the_tall.ogg.import new file mode 100644 index 0000000..8bccbf1 --- /dev/null +++ b/godot/assets/audio/voice_lines/the_tall.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/the_tall.ogg" +dest_files=[ "res://.import/the_tall.ogg-b8f927fd270ac40c2920a1be4bc930d1.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/audio/voice_lines/under_the_bed.ogg b/godot/assets/audio/voice_lines/under_the_bed.ogg new file mode 100644 index 0000000..d31c2fb --- /dev/null +++ b/godot/assets/audio/voice_lines/under_the_bed.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56deea190a43f346008fe3b74baf64a3d8784ab6435e6bee8e500ea6c520bcb8 +size 23438 diff --git a/godot/assets/audio/voice_lines/under_the_bed.ogg.import b/godot/assets/audio/voice_lines/under_the_bed.ogg.import new file mode 100644 index 0000000..b802d8a --- /dev/null +++ b/godot/assets/audio/voice_lines/under_the_bed.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.oggstr" + +[deps] + +source_file="res://assets/audio/voice_lines/under_the_bed.ogg" +dest_files=[ "res://.import/under_the_bed.ogg-ecda76c35b0cace769d0022f08f81678.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/godot/assets/room/camera_positions.glb b/godot/assets/room/camera_positions.glb index 076974d..74329bd 100644 --- a/godot/assets/room/camera_positions.glb +++ b/godot/assets/room/camera_positions.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:07d806c4b6dcbd2f86b3f4614a0d75aa999f3ec20de73d14f5bf5c8c227c0d21 -size 2756 +oid sha256:08de21e2fa6a13cd6764890b234ef54340014be3158c87a6b1a7c38bf783f1d0 +size 3472 diff --git a/godot/assets/room/camera_positions.tscn b/godot/assets/room/camera_positions.tscn index 546adb2..dd2454c 100644 --- a/godot/assets/room/camera_positions.tscn +++ b/godot/assets/room/camera_positions.tscn @@ -5,6 +5,6 @@ [node name="camera_positions" instance=ExtResource( 1 )] [node name="Camera" parent="." index="0"] -transform = Transform( -0.761628, -0.222546, 0.608602, 3.72529e-08, 0.939179, 0.343427, -0.648015, 0.261564, -0.715305, -7.44886, 18.7831, -13.0498 ) +transform = Transform( -0.767553, -0.313861, 0.558887, 7.45058e-08, 0.871917, 0.489653, -0.640986, 0.375835, -0.669243, -12.6719, 16.3714, -6.79586 ) fov = 87.2 far = 100.0 diff --git a/godot/project.godot b/godot/project.godot index ba8aa36..5ed2860 100644 --- a/godot/project.godot +++ b/godot/project.godot @@ -16,6 +16,11 @@ config/icon="res://icon.png" [autoload] GlobalCursorState="*res://GlobalCursorState.tscn" +LineReader="*res://assets/audio/voice_lines/LineReader.gd" + +[display] + +window/size/fullscreen=true [gui] diff --git a/godot/screens/disclaimer.tscn b/godot/screens/disclaimer.tscn index e9d045a..d08d832 100644 --- a/godot/screens/disclaimer.tscn +++ b/godot/screens/disclaimer.tscn @@ -54,7 +54,7 @@ margin_bottom = -92.0 mouse_filter = 1 text = "Welcome to Goodnight Jellybean! We're excited to have you join us on this educational adventure. -We will be interacting with our virutal environment using FunMouse (tm). Simply use the left and right mouse buttons to change the direction of the cursor and use the scroll wheel to move the cursor in its current direction. interact with nearby objects by pressing the middle mouse button. +We will be interacting with our virutal environment using FunMouse (tm). Simply use the left and right mouse buttons to change the direction of the cursor and use the scroll wheel to move the cursor in its current direction. Interact with nearby objects by pressing the middle mouse button. Don't have a mouse with a scroll wheel? You can also use the arrow keys and space bar to navigate and interact with the game. However, your child will be missing out on learning an important skill. @@ -73,7 +73,7 @@ environment = SubResource( 2 ) [node name="MeshInstance" type="MeshInstance" parent="."] transform = Transform( 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0 ) -layers = 524288 +layers = 0 material_override = SubResource( 9 ) mesh = SubResource( 4 ) skeleton = NodePath("../CanvasLayer/Control/Label") @@ -84,6 +84,7 @@ skeleton = NodePath("../CanvasLayer/Control/Label") shape = SubResource( 5 ) [node name="3DCursor" parent="." instance=ExtResource( 1 )] +transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.402443, 2.04589 ) KB_ACTIONS_PER_SECOND = 6.0 interact_brightness = 100.0 diff --git a/godot/screens/finished.tscn b/godot/screens/finished.tscn new file mode 100644 index 0000000..5224c3b --- /dev/null +++ b/godot/screens/finished.tscn @@ -0,0 +1,77 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://3DCursor.tscn" type="PackedScene" id=1] + +[sub_resource type="Theme" id=1] + +[sub_resource type="Environment" id=2] +background_mode = 1 +background_energy = 16.0 +glow_levels/1 = true +glow_levels/2 = true +glow_levels/4 = true +glow_levels/6 = true +glow_levels/7 = true +glow_strength = 0.89 +glow_bloom = 1.0 +glow_blend_mode = 0 +glow_high_quality = true + +[sub_resource type="SpatialMaterial" id=9] +params_cull_mode = 1 + +[sub_resource type="CubeMesh" id=4] + +[sub_resource type="ConcavePolygonShape" id=5] +data = PoolVector3Array( -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1 ) + +[node name="FinishedScreen" type="Spatial"] + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Control" type="Control" parent="CanvasLayer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 1 +theme = SubResource( 1 ) + +[node name="Label" type="Label" parent="CanvasLayer/Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 31.0 +margin_top = 22.0 +margin_right = -168.0 +margin_bottom = -92.0 +mouse_filter = 1 +text = "Congratulations on completing Goodnight Jellybean, brought to you by SoftWaves! + +We hope you had fun using FunMouse(tm) and learning about all the different topics in the game. If you are feeling nauseous as a result of playing the game,, remember to take deep breaths and find a quiet place to rest. + +Thank you for playing! If you would like more fun learning, please insert CD 2 for more educational adventures from SoftWaves or order a copy of our catalog for more educational fun! Please write to us at Softwaves HQ, 123 Fun Learning Lane, Funville, USA 12345 and include a $5 bill to request a copy of our games catalog." +autowrap = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 2 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0 ) +layers = 0 +material_override = SubResource( 9 ) +mesh = SubResource( 4 ) +skeleton = NodePath("../CanvasLayer/Control/Label") + +[node name="StaticBody" type="StaticBody" parent="MeshInstance"] + +[node name="CollisionShape" type="CollisionShape" parent="MeshInstance/StaticBody"] +shape = SubResource( 5 ) + +[node name="3DCursor" parent="." instance=ExtResource( 1 )] +KB_ACTIONS_PER_SECOND = 6.0 +interact_brightness = 100.0 + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 0.710849, -0.253477, 0.656082, 0, 0.932803, 0.360388, -0.703345, -0.256181, 0.663082, 5.46264, 2.36601, 5.69697 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969906, 0, 0.24348, 0, 1, 0, -0.24348, 0, 0.969906, -0.095212, 0.028264, 4.01219 ) +light_cull_mask = 4294443007 diff --git a/godot/world.tscn b/godot/world.tscn index e3f9063..eda8f9a 100644 --- a/godot/world.tscn +++ b/godot/world.tscn @@ -1,10 +1,13 @@ -[gd_scene load_steps=25 format=2] +[gd_scene load_steps=34 format=2] [ext_resource path="res://assets/effects/dithering/CanvasLayer.tscn" type="PackedScene" id=1] [ext_resource path="res://assets/room/environment.tscn" type="PackedScene" id=2] [ext_resource path="res://3DCursor.tscn" type="PackedScene" id=3] [ext_resource path="res://assets/room/camera_positions.tscn" type="PackedScene" id=4] [ext_resource path="res://AnimationTree.gd" type="Script" id=5] +[ext_resource path="res://CursorInteractArea.tscn" type="PackedScene" id=6] +[ext_resource path="res://assets/audio/AmbientSound.tscn" type="PackedScene" id=7] +[ext_resource path="res://AtticAmberLight.gd" type="Script" id=8] [sub_resource type="Environment" id=1] background_mode = 1 @@ -15,6 +18,9 @@ animation = "camera_attic_inner" [sub_resource type="AnimationNodeAnimation" id=4] animation = "camera_bookcase" +[sub_resource type="AnimationNodeAnimation" id=23] +animation = "camera_bookshelf_secret" + [sub_resource type="AnimationNodeAnimation" id=10] animation = "camera_outer_attic" @@ -57,20 +63,52 @@ xfade_time = 3.0 [sub_resource type="AnimationNodeStateMachineTransition" id=22] xfade_time = 3.0 +[sub_resource type="AnimationNodeStateMachineTransition" id=24] +xfade_time = 3.0 + +[sub_resource type="AnimationNodeStateMachineTransition" id=25] +xfade_time = 3.0 + +[sub_resource type="AnimationNodeStateMachineTransition" id=26] +xfade_time = 3.0 + +[sub_resource type="AnimationNodeStateMachineTransition" id=27] +xfade_time = 3.0 + [sub_resource type="AnimationNodeStateMachine" id=2] states/camera_attic_inner/node = SubResource( 9 ) states/camera_attic_inner/position = Vector2( 788, 309 ) states/camera_bookcase/node = SubResource( 4 ) states/camera_bookcase/position = Vector2( 706, 78 ) +states/camera_bookshelf_secret/node = SubResource( 23 ) +states/camera_bookshelf_secret/position = Vector2( 246, 6 ) states/camera_outer_attic/node = SubResource( 10 ) -states/camera_outer_attic/position = Vector2( 414, 309 ) +states/camera_outer_attic/position = Vector2( 417, 324 ) states/camera_pos_corner/node = SubResource( 8 ) -states/camera_pos_corner/position = Vector2( 243, 157 ) -transitions = [ "camera_pos_corner", "camera_bookcase", SubResource( 11 ), "camera_outer_attic", "camera_pos_corner", SubResource( 12 ), "camera_outer_attic", "camera_bookcase", SubResource( 13 ), "camera_outer_attic", "camera_attic_inner", SubResource( 14 ), "camera_pos_corner", "camera_outer_attic", SubResource( 15 ), "camera_pos_corner", "camera_attic_inner", SubResource( 16 ), "camera_bookcase", "camera_pos_corner", SubResource( 17 ), "camera_bookcase", "camera_attic_inner", SubResource( 18 ), "camera_bookcase", "camera_outer_attic", SubResource( 19 ), "camera_attic_inner", "camera_bookcase", SubResource( 20 ), "camera_attic_inner", "camera_outer_attic", SubResource( 21 ), "camera_attic_inner", "camera_pos_corner", SubResource( 22 ) ] +states/camera_pos_corner/position = Vector2( 230, 169 ) +transitions = [ "camera_pos_corner", "camera_bookcase", SubResource( 11 ), "camera_outer_attic", "camera_pos_corner", SubResource( 12 ), "camera_outer_attic", "camera_bookcase", SubResource( 13 ), "camera_outer_attic", "camera_attic_inner", SubResource( 14 ), "camera_pos_corner", "camera_outer_attic", SubResource( 15 ), "camera_pos_corner", "camera_attic_inner", SubResource( 16 ), "camera_bookcase", "camera_pos_corner", SubResource( 17 ), "camera_bookcase", "camera_attic_inner", SubResource( 18 ), "camera_bookcase", "camera_outer_attic", SubResource( 19 ), "camera_attic_inner", "camera_bookcase", SubResource( 20 ), "camera_attic_inner", "camera_outer_attic", SubResource( 21 ), "camera_attic_inner", "camera_pos_corner", SubResource( 22 ), "camera_pos_corner", "camera_bookshelf_secret", SubResource( 24 ), "camera_bookshelf_secret", "camera_pos_corner", SubResource( 25 ), "camera_bookshelf_secret", "camera_bookcase", SubResource( 26 ), "camera_bookcase", "camera_bookshelf_secret", SubResource( 27 ) ] start_node = "camera_pos_corner" +graph_offset = Vector2( -64, 18 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=3] +[sub_resource type="Animation" id=28] +resource_name = "light_flicker" +length = 1.263 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.1, 0.3, 0.5, 1.5, 1.6, 2.3, 2.5, 3.7, 3.9, 4.6, 5, 5.2, 7.8, 8.2, 11.7 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ true, false, true, false, true, true, true, false, true, false, false, true, false, true, true ] +} + [node name="Spatial" type="Spatial"] [node name="CanvasLayer" parent="." instance=ExtResource( 1 )] @@ -107,12 +145,6 @@ KB_ACTIONS_PER_SECOND = 6.0 [node name="camera_positions" parent="." instance=ExtResource( 4 )] -[node name="Camera" parent="camera_positions" index="0"] -transform = Transform( -0.996629, -0.00929657, 0.0815153, 0, 0.993559, 0.113312, -0.0820437, 0.11293, -0.99021, 0.178344, 4.60072, 0.331739 ) - -[node name="AnimationPlayer" parent="camera_positions" index="1"] -autoplay = "camera_pos_corner" - [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource( 2 ) anim_player = NodePath("../camera_positions/AnimationPlayer") @@ -121,4 +153,58 @@ process_mode = 2 parameters/playback = SubResource( 3 ) script = ExtResource( 5 ) +[node name="CameraMoveZones" type="Spatial" parent="."] + +[node name="BookshelfEnter" parent="CameraMoveZones" instance=ExtResource( 6 )] +transform = Transform( 1.88241, 0, 0, 0, 1.41215, 0, 0, 0, 1.8099, 0, 4.13633, 3.52765 ) +on_enter_func = "_on_Cursor_set_camera" +call_string = "camera_bookcase" + +[node name="BookshelfLeave" parent="CameraMoveZones/BookshelfEnter" instance=ExtResource( 6 )] +transform = Transform( 1.31595, 0, 0, 0, 1.36796, 0, 0, 0, 1.32271, 0, 0, 0 ) +on_leave_func = "_on_Cursor_set_camera" +call_string = "camera_pos_corner" + +[node name="OuterAtticEnter" parent="CameraMoveZones" instance=ExtResource( 6 )] +transform = Transform( 1, 0, 0, 0, 1.46013, 0, 0, 0, 1.2653, -2.46345, 9.85499, -3.18314 ) +on_enter_func = "_on_Cursor_set_camera" +call_string = "camera_outer_attic" + +[node name="OuterAtticLeave" parent="CameraMoveZones/OuterAtticEnter" instance=ExtResource( 6 )] +transform = Transform( 19.4492, 0, 0, 0, 4.36306, 0, 0, 0, 5.15836, -15.3042, 3.71776, 0 ) +on_leave_func = "_on_Cursor_set_camera" +call_string = "camera_pos_corner" + +[node name="UpperAtticEnter" parent="CameraMoveZones" instance=ExtResource( 6 )] +transform = Transform( 6.28323, 0, 0, 0, 4.7198, 0, 0, 0, 7.91118, -23.9917, 13.7811, 0 ) +on_enter_func = "_on_Cursor_set_camera" +call_string = "camera_attic_inner" + +[node name="UpperAtticLeave" parent="CameraMoveZones" instance=ExtResource( 6 )] +transform = Transform( 10.8129, 0, 0, 0, 4.7198, 0, 0, 0, 7.91118, -26.7224, 13.7811, 0 ) +on_leave_func = "_on_Cursor_set_camera" +call_string = "camera_outer_attic" + +[node name="AmbientSound" parent="." instance=ExtResource( 7 )] + +[node name="Attic" type="Spatial" parent="."] + +[node name="AtticAmberLight" type="OmniLight" parent="Attic"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -23.8074, 13.5384, -0.81872 ) +light_color = Color( 0.796078, 0.627451, 0.25098, 1 ) +light_energy = 6.0 +light_indirect_energy = 1.306 +light_cull_mask = 4294443007 +shadow_enabled = true +omni_range = 4.0 +omni_attenuation = 2.73208 +script = ExtResource( 8 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Attic/AtticAmberLight"] +anims/light_flicker = SubResource( 28 ) + +[connection signal="motion_status" from="AnimationTree" to="3DCursor" method="_on_AnimationTree_motion_status"] +[connection signal="motion_status" from="AnimationTree" to="AmbientSound" method="_on_AnimationTree_motion_status"] +[connection signal="motion_status" from="AnimationTree" to="Attic/AtticAmberLight" method="_on_AnimationTree_motion_status"] + [editable path="camera_positions"] diff --git a/raw_audio/squirrel_chatter.ogg b/raw_audio/squirrel_chatter.ogg new file mode 100644 index 0000000..eaa7ae2 --- /dev/null +++ b/raw_audio/squirrel_chatter.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:527af097e0156dfbef7ca0e6f3bb4c10b4a83209a6e26ccc207d45c31ed64a90 +size 86455