This commit is contained in:
parent
1694788562
commit
7d11e5dd46
93 changed files with 912 additions and 24 deletions
BIN
blends/environment.blend
(Stored with Git LFS)
BIN
blends/environment.blend
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="57b4ff75689821c17e211ac43dec5cc1"
|
||||
dest_md5="e111a930a900111d74daf52169d71079"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="29a467bd0e8026e293d99ad55aa9226b"
|
||||
dest_md5="544be77f19c21ac6731f2a9ffe327c5b"
|
||||
|
BIN
godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr
Normal file
BIN
godot/.import/beep.ogg-dc3ef6a51669bb14c8d3ed05701e4a93.oggstr
Normal file
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="117c82671fc7ee51752ef9c55c2f660c"
|
||||
dest_md5="69ffad1aa079b0bb21541ee45b204038"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="012bedbf6531f60be5bea92f0c6e72d3"
|
||||
dest_md5="ef3ab7c849aecdb2333073d93acc14a6"
|
||||
|
BIN
godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr
Normal file
BIN
godot/.import/book.ogg-d7f394d64a887bb8fb9279710f22dd71.oggstr
Normal file
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="6daa2c682f089c1575edb4df6779283b"
|
||||
dest_md5="7ce601b52785ba50f5dbe7e1c86bd594"
|
||||
|
BIN
godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr
Normal file
BIN
godot/.import/bump.ogg-b6b5b32ea85cee0c0e584b94a3481d65.oggstr
Normal file
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
source_md5="d958ea022de42cf6a043f9a1801ebaed"
|
||||
dest_md5="dfff1dbb1add8c552ef261e8a3b6a094"
|
||||
source_md5="f6f19525174d964bcfbd5e0d10af60f4"
|
||||
dest_md5="b244913244895512a1541ec37a177db9"
|
||||
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="9b94e0f51de02c4a45185188995cb665"
|
||||
dest_md5="15cc094a05e22cbf495d3b31b9636222"
|
||||
|
BIN
godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr
Normal file
BIN
godot/.import/color.ogg-ea241d625a2857be82c54e5056fbca40.oggstr
Normal file
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="50c243f949bb21547a721b61ce9ef4e4"
|
||||
dest_md5="bf69edfb8a6c681488dce5eb4b06afc1"
|
||||
|
BIN
godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr
Normal file
BIN
godot/.import/frog.ogg-61032dbb065bd111b735592bb25495b5.oggstr
Normal file
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="d6b3b46b70c9ac15fe713c3512c3e2bb"
|
||||
dest_md5="7e05983fb7806b04a3f81e7015eb5d53"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="cd0239125589bbed7154e4c37d3df269"
|
||||
dest_md5="1343865a40c52a07aee54914c1cfe8ee"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="b2d69ececd65bd1f6b1dd2721557d916"
|
||||
dest_md5="027713fa886127a5b5e6964c4e85675b"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="7cf5bb24903fdee23774f8c9da6e36b2"
|
||||
dest_md5="21d192875f8011d011cb6317a7bc670a"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="f84ae5bbac64d603431a024c47a4a2aa"
|
||||
dest_md5="fa6a07901b875360fa1234eaa1030a25"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="c3ed6de3d121966caf4e61dc885612a6"
|
||||
dest_md5="6cc8935d8cf3c5ce99e5c3f175d20e0e"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="1c7190e4f5911bf2f2cf42fe764473d8"
|
||||
dest_md5="7759500d4105c4cec08be5872341d1b2"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="964c8a1bd4adcf55e4960f4056556b30"
|
||||
dest_md5="23c10cf6850b1e567d45b340f37b8dc1"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="f6dafb3b5cc64081b282ea04b18b2319"
|
||||
dest_md5="153c542c7e4f67638a66f05a4f272837"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="cd581dfa2d4e48db761f0a6a8f5dde53"
|
||||
dest_md5="f8d3ce55de908504c4421f4ed8d66f97"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
source_md5="0b7e964d3f859345741fa337f39b3ee5"
|
||||
dest_md5="407f16c0e0ee291d6de66272c0abb710"
|
||||
|
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
23
godot/AtticAmberLight.gd
Normal file
23
godot/AtticAmberLight.gd
Normal file
|
@ -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")
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
16
godot/assets/audio/AmbientSound.gd
Normal file
16
godot/assets/audio/AmbientSound.gd
Normal file
|
@ -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")
|
128
godot/assets/audio/AmbientSound.tscn
Normal file
128
godot/assets/audio/AmbientSound.tscn
Normal file
|
@ -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 )
|
BIN
godot/assets/audio/bassy_bump.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/bassy_bump.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/bassy_bump.ogg.import
Normal file
15
godot/assets/audio/bassy_bump.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/beep.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/beep.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/beep.ogg.import
Normal file
15
godot/assets/audio/beep.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/bump.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/bump.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/bump.ogg.import
Normal file
15
godot/assets/audio/bump.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/color.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/color.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/color.ogg.import
Normal file
15
godot/assets/audio/color.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/sicky_drone.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/sicky_drone.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/sicky_drone.ogg.import
Normal file
15
godot/assets/audio/sicky_drone.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/vocal_drone.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/vocal_drone.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/vocal_drone.ogg.import
Normal file
15
godot/assets/audio/vocal_drone.ogg.import
Normal file
|
@ -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
|
39
godot/assets/audio/voice_lines/LineReader.gd
Normal file
39
godot/assets/audio/voice_lines/LineReader.gd
Normal file
|
@ -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)
|
58
godot/assets/audio/voice_lines/LineReader.tscn
Normal file
58
godot/assets/audio/voice_lines/LineReader.tscn
Normal file
|
@ -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"]
|
BIN
godot/assets/audio/voice_lines/behind_the_bookshelf.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/behind_the_bookshelf.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -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
|
BIN
godot/assets/audio/voice_lines/book.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/book.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/book.ogg.import
Normal file
15
godot/assets/audio/voice_lines/book.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/frog.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/frog.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/frog.ogg.import
Normal file
15
godot/assets/audio/voice_lines/frog.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/show_me.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/show_me.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/show_me.ogg.import
Normal file
15
godot/assets/audio/voice_lines/show_me.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/squirrel.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/squirrel.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/squirrel.ogg.import
Normal file
15
godot/assets/audio/voice_lines/squirrel.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_attic.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_attic.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_attic.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_attic.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_clock.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_clock.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_clock.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_clock.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_door.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_door.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_door.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_door.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_fridge.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_fridge.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_fridge.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_fridge.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_long.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_long.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_long.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_long.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/the_tall.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/the_tall.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/the_tall.ogg.import
Normal file
15
godot/assets/audio/voice_lines/the_tall.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/audio/voice_lines/under_the_bed.ogg
(Stored with Git LFS)
Normal file
BIN
godot/assets/audio/voice_lines/under_the_bed.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
15
godot/assets/audio/voice_lines/under_the_bed.ogg.import
Normal file
15
godot/assets/audio/voice_lines/under_the_bed.ogg.import
Normal file
|
@ -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
|
BIN
godot/assets/room/camera_positions.glb
(Stored with Git LFS)
BIN
godot/assets/room/camera_positions.glb
(Stored with Git LFS)
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
77
godot/screens/finished.tscn
Normal file
77
godot/screens/finished.tscn
Normal file
|
@ -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
|
106
godot/world.tscn
106
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"]
|
||||
|
|
BIN
raw_audio/squirrel_chatter.ogg
(Stored with Git LFS)
Normal file
BIN
raw_audio/squirrel_chatter.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue