Add sleeping
This commit is contained in:
parent
22e2fc0067
commit
30f171f3d9
BIN
assets/level/Level.glb
Normal file
BIN
assets/level/Level.glb
Normal file
Binary file not shown.
1065
assets/level/Level.glb.import
Normal file
1065
assets/level/Level.glb.import
Normal file
File diff suppressed because it is too large
Load Diff
14
assets/level/Level.tscn
Normal file
14
assets/level/Level.tscn
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://assets/level/Level.glb" type="PackedScene" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape" id=1]
|
||||||
|
height = 6.30212
|
||||||
|
radius = 2.14679
|
||||||
|
|
||||||
|
[node name="Level" instance=ExtResource( 1 )]
|
||||||
|
|
||||||
|
[node name="RTG" type="StaticBody" parent="." index="81"]
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="RTG" index="0"]
|
||||||
|
shape = SubResource( 1 )
|
BIN
assets/level/blinn1.material
Normal file
BIN
assets/level/blinn1.material
Normal file
Binary file not shown.
BIN
assets/level/lambert1.material
Normal file
BIN
assets/level/lambert1.material
Normal file
Binary file not shown.
@ -45,7 +45,8 @@
|
|||||||
"timeline-1660444277.json",
|
"timeline-1660444277.json",
|
||||||
"timeline-1660454153.json",
|
"timeline-1660454153.json",
|
||||||
"timeline-1660463789.json",
|
"timeline-1660463789.json",
|
||||||
"timeline-1660696967.json"
|
"timeline-1660696967.json",
|
||||||
|
"timeline-1660738067.json"
|
||||||
],
|
],
|
||||||
"folders": {
|
"folders": {
|
||||||
|
|
||||||
|
@ -17,3 +17,7 @@ timeline_file="timeline-1660443870.json"
|
|||||||
[animations]
|
[animations]
|
||||||
|
|
||||||
default_join_animation_length=0.5
|
default_join_animation_length=0.5
|
||||||
|
|
||||||
|
[dialog]
|
||||||
|
|
||||||
|
propagate_input=false
|
||||||
|
@ -1,10 +1,15 @@
|
|||||||
{
|
{
|
||||||
"events": [
|
"events": [
|
||||||
|
{
|
||||||
|
"character": "character-1660444172.json",
|
||||||
|
"event_id": "dialogic_001",
|
||||||
|
"portrait": "",
|
||||||
|
"text": "I should put this item down somewhere before going to bed."
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dialogic-version": "1.4.4",
|
"dialogic-version": "1.4.4",
|
||||||
"file": "timeline-1660444277.json",
|
"file": "timeline-1660444277.json",
|
||||||
"name": "whatever"
|
"name": "item_in_bed"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,17 +5,6 @@
|
|||||||
"event_id": "dialogic_001",
|
"event_id": "dialogic_001",
|
||||||
"portrait": "",
|
"portrait": "",
|
||||||
"text": "Oh boy! I gotta go to bed. That was tiring!"
|
"text": "Oh boy! I gotta go to bed. That was tiring!"
|
||||||
},
|
|
||||||
{
|
|
||||||
"event_id": "dialogic_023",
|
|
||||||
"hide_dialogbox": true,
|
|
||||||
"wait_seconds": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"character": "character-1660444172.json",
|
|
||||||
"event_id": "dialogic_001",
|
|
||||||
"portrait": "",
|
|
||||||
"text": "*yawn* Ah! What a good day it is to be stranded on this moon."
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
15
dialogic/timelines/timeline-1660738067.json
Normal file
15
dialogic/timelines/timeline-1660738067.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"character": "character-1660444172.json",
|
||||||
|
"event_id": "dialogic_001",
|
||||||
|
"portrait": "",
|
||||||
|
"text": "*yawn* Ah! What a good day it is to be stranded on this moon."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"dialogic-version": "1.4.4",
|
||||||
|
"file": "timeline-1660738067.json",
|
||||||
|
"name": "wake_up"
|
||||||
|
}
|
||||||
|
}
|
@ -99,17 +99,13 @@ _global_script_class_icons={
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="project-dung"
|
config/name="project-dung"
|
||||||
run/main_scene="res://scenes/main.tscn"
|
run/main_scene="res://scenes/dev-daniel.tscn"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
[debug]
|
|
||||||
|
|
||||||
settings/stdout/print_fps=true
|
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/width=2048
|
window/size/width=1920
|
||||||
window/size/height=1200
|
window/size/height=1080
|
||||||
window/dpi/allow_hidpi=true
|
window/dpi/allow_hidpi=true
|
||||||
|
|
||||||
[editor_plugins]
|
[editor_plugins]
|
||||||
|
31
scenes/bed.tscn
Normal file
31
scenes/bed.tscn
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scripts/bed.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="CubeMesh" id=2]
|
||||||
|
size = Vector3( 1.7, 0.5, 1 )
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape" id=1]
|
||||||
|
extents = Vector3( 0.85, 2, 0.5 )
|
||||||
|
|
||||||
|
[node name="bed" type="Area"]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 4
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0 )
|
||||||
|
mesh = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="StaticBody" type="StaticBody" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0 )
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="StaticBody"]
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0 )
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="hop_position" type="Position3D" parent="." groups=["bed_hop_position"]]
|
||||||
|
transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0.919234 )
|
@ -2,31 +2,31 @@
|
|||||||
|
|
||||||
[ext_resource path="res://scripts/camera_room.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/camera_room.gd" type="Script" id=1]
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=1]
|
[sub_resource type="BoxShape" id=8]
|
||||||
extents = Vector3( 2.39087, 1.93969, 2.08096 )
|
extents = Vector3( 2.39087, 1.93969, 2.6586 )
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape" id=2]
|
[sub_resource type="CapsuleShape" id=2]
|
||||||
radius = 2.07384
|
radius = 4.16005
|
||||||
height = 8.68195
|
height = 5.24756
|
||||||
|
|
||||||
[node name="camera_room0" type="Spatial"]
|
[node name="camera_galley" type="Spatial"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.4075, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16.3042 )
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="camera" type="Camera" parent="."]
|
[node name="camera" type="Camera" parent="."]
|
||||||
transform = Transform( 0.054985, 0.806829, -0.588221, 0, 0.589112, 0.808052, 0.998487, -0.0444307, 0.0323923, -6.51055, 9.74907, 0 )
|
transform = Transform( 1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 8.562, 6.501 )
|
||||||
fov = 49.8
|
fov = 40.0
|
||||||
|
|
||||||
[node name="hitbox" type="Area" parent="."]
|
[node name="hitbox" type="Area" parent="."]
|
||||||
collision_layer = 16
|
collision_layer = 16
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="hitbox"]
|
[node name="CollisionShape" type="CollisionShape" parent="hitbox"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.12314, 2.07098, 0.535633 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00713015, 2.07098, 1.38972 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 8 )
|
||||||
|
|
||||||
[node name="CollisionShape2" type="CollisionShape" parent="hitbox"]
|
[node name="CollisionShape2" type="CollisionShape" parent="hitbox"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0097599, 0, -0.487964 )
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -0.099 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
[connection signal="area_entered" from="hitbox" to="." method="_on_hitbox_area_entered"]
|
[connection signal="area_entered" from="hitbox" to="." method="_on_hitbox_area_entered"]
|
||||||
|
@ -75,6 +75,11 @@ margin_right = 12.0
|
|||||||
margin_bottom = 20.0
|
margin_bottom = 20.0
|
||||||
text = "Damage Random Object"
|
text = "Damage Random Object"
|
||||||
|
|
||||||
|
[node name="timer_2_s" type="Button" parent="TabContainer/Events"]
|
||||||
|
margin_right = 12.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
text = "Day Timer 00:02"
|
||||||
|
|
||||||
[connection signal="pressed" from="TabContainer/Player/charge" to="." method="_on_charge_pressed"]
|
[connection signal="pressed" from="TabContainer/Player/charge" to="." method="_on_charge_pressed"]
|
||||||
[connection signal="pressed" from="TabContainer/Player/charge_5" to="." method="_on_charge_5_pressed"]
|
[connection signal="pressed" from="TabContainer/Player/charge_5" to="." method="_on_charge_5_pressed"]
|
||||||
[connection signal="pressed" from="TabContainer/Player/raw_yam" to="." method="_on_raw_yam_pressed"]
|
[connection signal="pressed" from="TabContainer/Player/raw_yam" to="." method="_on_raw_yam_pressed"]
|
||||||
@ -83,3 +88,4 @@ text = "Damage Random Object"
|
|||||||
[connection signal="pressed" from="TabContainer/Player/repair_kit" to="." method="_on_repair_kit_pressed"]
|
[connection signal="pressed" from="TabContainer/Player/repair_kit" to="." method="_on_repair_kit_pressed"]
|
||||||
[connection signal="pressed" from="TabContainer/Player/clear" to="." method="_on_clear_pressed"]
|
[connection signal="pressed" from="TabContainer/Player/clear" to="." method="_on_clear_pressed"]
|
||||||
[connection signal="pressed" from="TabContainer/Events/random_damage" to="." method="_on_random_damage_pressed"]
|
[connection signal="pressed" from="TabContainer/Events/random_damage" to="." method="_on_random_damage_pressed"]
|
||||||
|
[connection signal="pressed" from="TabContainer/Events/timer_2_s" to="." method="_on_timer_2_s_pressed"]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource path="res://scripts/game_manager.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/game_manager.gd" type="Script" id=1]
|
||||||
|
|
||||||
[node name="game_manager" type="Node"]
|
[node name="game_manager" type="Node" groups=["game_manager"]]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="UI" type="Control" parent="."]
|
[node name="UI" type="Control" parent="."]
|
||||||
|
135
scenes/main.tscn
135
scenes/main.tscn
@ -1,16 +1,17 @@
|
|||||||
[gd_scene load_steps=14 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/moonbase_whitebox/Moonbase_Whitebox.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://assets/level/Level.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/cameras.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/cameras.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://scenes/camera_room.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://scenes/camera_room.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://scripts/camera_room.gd" type="Script" id=5]
|
[ext_resource path="res://scripts/camera_room.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://scripts/tracking_camera.gd" type="Script" id=6]
|
[ext_resource path="res://scripts/tracking_camera.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://scenes/game_manager.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://scenes/game_manager.tscn" type="PackedScene" id=7]
|
||||||
|
[ext_resource path="res://scripts/dof_focus.gd" type="Script" id=8]
|
||||||
|
|
||||||
[sub_resource type="CylinderShape" id=1]
|
[sub_resource type="CylinderShape" id=1]
|
||||||
height = 5.22615
|
height = 5.22615
|
||||||
radius = 8.72145
|
radius = 12.052
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=4]
|
[sub_resource type="BoxShape" id=4]
|
||||||
extents = Vector3( 1.78436, 2.33105, 6.04815 )
|
extents = Vector3( 1.78436, 2.33105, 6.04815 )
|
||||||
@ -30,8 +31,7 @@ tracks/0/keys = {
|
|||||||
"values": [ 0.0 ]
|
"values": [ 0.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=9]
|
||||||
resource_name = "switch_camera"
|
|
||||||
length = 0.3
|
length = 0.3
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath(".:camera_lerp")
|
tracks/0/path = NodePath(".:camera_lerp")
|
||||||
@ -51,20 +51,27 @@ sky_top_color = Color( 0.486275, 0.486275, 0.486275, 1 )
|
|||||||
sky_horizon_color = Color( 0.180392, 0.180392, 0.180392, 1 )
|
sky_horizon_color = Color( 0.180392, 0.180392, 0.180392, 1 )
|
||||||
ground_bottom_color = Color( 0.545098, 0.545098, 0.545098, 1 )
|
ground_bottom_color = Color( 0.545098, 0.545098, 0.545098, 1 )
|
||||||
ground_horizon_color = Color( 0.8, 0.8, 0.8, 1 )
|
ground_horizon_color = Color( 0.8, 0.8, 0.8, 1 )
|
||||||
sun_color = Color( 0, 0, 0, 1 )
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id=6]
|
[sub_resource type="Environment" id=6]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
background_sky = SubResource( 7 )
|
background_sky = SubResource( 7 )
|
||||||
ss_reflections_enabled = true
|
ambient_light_sky_contribution = 0.5
|
||||||
|
tonemap_mode = 4
|
||||||
ssao_enabled = true
|
ssao_enabled = true
|
||||||
|
ssao_radius = 3.86
|
||||||
|
ssao_intensity = 0.69
|
||||||
|
dof_blur_far_enabled = true
|
||||||
|
dof_blur_far_amount = 0.15
|
||||||
|
dof_blur_near_enabled = true
|
||||||
|
dof_blur_near_amount = 0.15
|
||||||
|
adjustment_contrast = 1.97
|
||||||
|
|
||||||
[node name="main" type="Spatial"]
|
[node name="main" type="Spatial"]
|
||||||
|
|
||||||
[node name="Moonbase_Whitebox" parent="." instance=ExtResource( 1 )]
|
[node name="Level" parent="." instance=ExtResource( 1 )]
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource( 3 )]
|
[node name="Player" parent="." instance=ExtResource( 3 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5.27448 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.35996 )
|
||||||
|
|
||||||
[node name="cameras" type="Spatial" parent="."]
|
[node name="cameras" type="Spatial" parent="."]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
@ -78,7 +85,7 @@ current = true
|
|||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="camera" type="Camera" parent="cameras/camera_room_center"]
|
[node name="camera" type="Camera" parent="cameras/camera_room_center"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 12, 0 )
|
transform = Transform( -1, 7.57103e-08, -4.37114e-08, 0, 0.5, 0.866025, 8.74228e-08, 0.866025, -0.5, 0, 12, 0 )
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
target = NodePath("../../../Player")
|
target = NodePath("../../../Player")
|
||||||
|
|
||||||
@ -90,8 +97,20 @@ collision_mask = 2
|
|||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.52689, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.52689, 0 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="camera_galley" parent="cameras" instance=ExtResource( 4 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16.3 )
|
||||||
|
|
||||||
|
[node name="camera_ore_conveyor" parent="cameras" instance=ExtResource( 4 )]
|
||||||
|
transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 11.526, 0, -11.526 )
|
||||||
|
|
||||||
|
[node name="camera_storage" parent="cameras" instance=ExtResource( 4 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 16.3, 0, 0 )
|
||||||
|
|
||||||
|
[node name="camera_crafting" parent="cameras" instance=ExtResource( 4 )]
|
||||||
|
transform = Transform( -0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, -0.707107, 11.526, 0, 11.526 )
|
||||||
|
|
||||||
[node name="camera_room_hallway" type="Spatial" parent="cameras"]
|
[node name="camera_room_hallway" type="Spatial" parent="cameras"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0726166, 0, 17.4284 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 16.3 )
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="camera" type="Camera" parent="cameras/camera_room_hallway"]
|
[node name="camera" type="Camera" parent="cameras/camera_room_hallway"]
|
||||||
@ -105,94 +124,84 @@ collision_mask = 2
|
|||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.52689, -1.44831 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.52689, -1.44831 )
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
[node name="camera_room0" parent="cameras" instance=ExtResource( 4 )]
|
[node name="camera_rover" parent="cameras" instance=ExtResource( 4 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 15.408, 0, 0 )
|
transform = Transform( -0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, -0.707107, -11.526, 0, 11.526 )
|
||||||
|
|
||||||
[node name="camera_room1" parent="cameras" instance=ExtResource( 4 )]
|
[node name="camera_comms" parent="cameras" instance=ExtResource( 4 )]
|
||||||
transform = Transform( 0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 10.653, 0, -10.485 )
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -16.3, 0, 0 )
|
||||||
|
|
||||||
[node name="camera_room2" parent="cameras" instance=ExtResource( 4 )]
|
[node name="camera_hydroponics" parent="cameras" instance=ExtResource( 4 )]
|
||||||
transform = Transform( -0.0170336, 0, 0.999855, 0, 1, 0, -0.999855, 0, -0.0170336, -0.079, 0, -15.007 )
|
transform = Transform( 0.707106, 0, 0.707106, 0, 1, 0, -0.707106, 0, 0.707106, -11.526, 0, -11.526 )
|
||||||
|
|
||||||
[node name="camera_room3" parent="cameras" instance=ExtResource( 4 )]
|
|
||||||
transform = Transform( -0.70219, 0, 0.711989, 0, 1, 0, -0.711989, 0, -0.70219, -10.6346, 0, -10.3156 )
|
|
||||||
|
|
||||||
[node name="camera_room4" parent="cameras" instance=ExtResource( 4 )]
|
|
||||||
transform = Transform( -0.999986, 0, 0.00521851, 0, 1, 0, -0.00521851, 0, -0.999986, -15.0328, 0, 0.198143 )
|
|
||||||
|
|
||||||
[node name="camera_room5" parent="cameras" instance=ExtResource( 4 )]
|
|
||||||
transform = Transform( -0.661796, 0, -0.749684, 0, 1, 0, 0.749684, 0, -0.661796, -10.4671, 0, 10.8794 )
|
|
||||||
|
|
||||||
[node name="camera_room6" parent="cameras" instance=ExtResource( 4 )]
|
|
||||||
transform = Transform( 0.696427, 0, -0.717628, 0, 1, 0, 0.717628, 0, 0.696427, 10.8827, 0, 10.7342 )
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="cameras"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="cameras"]
|
||||||
anims/RESET = SubResource( 3 )
|
anims/RESET = SubResource( 3 )
|
||||||
anims/switch_camera = SubResource( 2 )
|
anims/switch_camera = SubResource( 9 )
|
||||||
|
|
||||||
[node name="lights" type="Spatial" parent="."]
|
[node name="lights" type="Spatial" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.14791, 0, 6.48126 )
|
|
||||||
|
|
||||||
[node name="Hub1" type="OmniLight" parent="lights"]
|
[node name="Hub1" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.11319, 4.20288, -1.73099 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0224032, 4.20288, 4.77208 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 10.7698
|
omni_range = 10.7698
|
||||||
|
|
||||||
[node name="Hub2" type="OmniLight" parent="lights"]
|
[node name="Hub2" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.059, 4.20288, -11.3228 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0765934, 4.20288, -4.81973 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 10.7698
|
omni_range = 10.7698
|
||||||
|
|
||||||
[node name="OmniLight20" type="OmniLight" parent="lights"]
|
[node name="light_galley" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9024, 3.329, -6.67066 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.329, -16.3 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight21" type="OmniLight" parent="lights"]
|
[node name="light_ore_conveyor" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.06107, 3.329, -17.2136 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11.526, 3.329, -11.526 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight22" type="OmniLight" parent="lights"]
|
[node name="light_storage" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.23606, 3.329, -21.2439 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.3, 3.329, 0 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight23" type="OmniLight" parent="lights"]
|
[node name="light_crafting" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.8527, 3.329, -16.8695 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11.526, 3.329, 11.526 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight24" type="OmniLight" parent="lights"]
|
[node name="light_hallway" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19.2271, 3.329, -6.05627 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.329, 16.3 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight25" type="OmniLight" parent="lights"]
|
[node name="light_rover" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.2271, 3.329, 4.94373 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.526, 3.329, 11.526 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight26" type="OmniLight" parent="lights"]
|
[node name="light_comms" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.64507, 3.329, 3.88698 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16.3, 3.329, 0 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="OmniLight27" type="OmniLight" parent="lights"]
|
[node name="light_hydroponics" type="OmniLight" parent="lights"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.20031, 3.329, 9.61307 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.526, 3.329, -11.526 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
omni_range = 5.893
|
omni_range = 5.893
|
||||||
omni_attenuation = 2.0
|
omni_attenuation = 2.0
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource( 6 )
|
environment = SubResource( 6 )
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
target = NodePath("../Player")
|
||||||
|
size = 4.0
|
||||||
|
|
||||||
[node name="game_manager" parent="." instance=ExtResource( 7 )]
|
[node name="game_manager" parent="." instance=ExtResource( 7 )]
|
||||||
|
|
||||||
@ -200,21 +209,21 @@ environment = SubResource( 6 )
|
|||||||
[connection signal="player_exited" from="cameras/camera_room_center" to="cameras" method="_on_camera_room_player_exited"]
|
[connection signal="player_exited" from="cameras/camera_room_center" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="area_entered" from="cameras/camera_room_center/hitbox" to="cameras/camera_room_center" method="_on_hitbox_area_entered"]
|
[connection signal="area_entered" from="cameras/camera_room_center/hitbox" to="cameras/camera_room_center" method="_on_hitbox_area_entered"]
|
||||||
[connection signal="area_exited" from="cameras/camera_room_center/hitbox" to="cameras/camera_room_center" method="_on_hitbox_area_exited"]
|
[connection signal="area_exited" from="cameras/camera_room_center/hitbox" to="cameras/camera_room_center" method="_on_hitbox_area_exited"]
|
||||||
|
[connection signal="player_entered" from="cameras/camera_galley" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
|
[connection signal="player_exited" from="cameras/camera_galley" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
|
[connection signal="player_entered" from="cameras/camera_ore_conveyor" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
|
[connection signal="player_exited" from="cameras/camera_ore_conveyor" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
|
[connection signal="player_entered" from="cameras/camera_storage" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
|
[connection signal="player_exited" from="cameras/camera_storage" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
|
[connection signal="player_entered" from="cameras/camera_crafting" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
|
[connection signal="player_exited" from="cameras/camera_crafting" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="player_entered" from="cameras/camera_room_hallway" to="cameras" method="_on_camera_room_player_entered"]
|
[connection signal="player_entered" from="cameras/camera_room_hallway" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
[connection signal="player_exited" from="cameras/camera_room_hallway" to="cameras" method="_on_camera_room_player_exited"]
|
[connection signal="player_exited" from="cameras/camera_room_hallway" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="area_entered" from="cameras/camera_room_hallway/hitbox" to="cameras/camera_room_hallway" method="_on_hitbox_area_entered"]
|
[connection signal="area_entered" from="cameras/camera_room_hallway/hitbox" to="cameras/camera_room_hallway" method="_on_hitbox_area_entered"]
|
||||||
[connection signal="area_exited" from="cameras/camera_room_hallway/hitbox" to="cameras/camera_room_hallway" method="_on_hitbox_area_exited"]
|
[connection signal="area_exited" from="cameras/camera_room_hallway/hitbox" to="cameras/camera_room_hallway" method="_on_hitbox_area_exited"]
|
||||||
[connection signal="player_entered" from="cameras/camera_room0" to="cameras" method="_on_camera_room_player_entered"]
|
[connection signal="player_entered" from="cameras/camera_rover" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
[connection signal="player_exited" from="cameras/camera_room0" to="cameras" method="_on_camera_room_player_exited"]
|
[connection signal="player_exited" from="cameras/camera_rover" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="player_entered" from="cameras/camera_room1" to="cameras" method="_on_camera_room_player_entered"]
|
[connection signal="player_entered" from="cameras/camera_comms" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
[connection signal="player_exited" from="cameras/camera_room1" to="cameras" method="_on_camera_room_player_exited"]
|
[connection signal="player_exited" from="cameras/camera_comms" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="player_entered" from="cameras/camera_room2" to="cameras" method="_on_camera_room_player_entered"]
|
[connection signal="player_entered" from="cameras/camera_hydroponics" to="cameras" method="_on_camera_room_player_entered"]
|
||||||
[connection signal="player_exited" from="cameras/camera_room2" to="cameras" method="_on_camera_room_player_exited"]
|
[connection signal="player_exited" from="cameras/camera_hydroponics" to="cameras" method="_on_camera_room_player_exited"]
|
||||||
[connection signal="player_entered" from="cameras/camera_room3" to="cameras" method="_on_camera_room_player_entered"]
|
|
||||||
[connection signal="player_exited" from="cameras/camera_room3" to="cameras" method="_on_camera_room_player_exited"]
|
|
||||||
[connection signal="player_entered" from="cameras/camera_room4" to="cameras" method="_on_camera_room_player_entered"]
|
|
||||||
[connection signal="player_exited" from="cameras/camera_room4" to="cameras" method="_on_camera_room_player_exited"]
|
|
||||||
[connection signal="player_entered" from="cameras/camera_room5" to="cameras" method="_on_camera_room_player_entered"]
|
|
||||||
[connection signal="player_exited" from="cameras/camera_room5" to="cameras" method="_on_camera_room_player_exited"]
|
|
||||||
[connection signal="player_entered" from="cameras/camera_room6" to="cameras" method="_on_camera_room_player_entered"]
|
|
||||||
[connection signal="player_exited" from="cameras/camera_room6" to="cameras" method="_on_camera_room_player_exited"]
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scenes/item_holder.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://scenes/item_holder.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://scripts/oven/oven.gd" type="Script" id=2]
|
[ext_resource path="res://scripts/oven/oven.gd" type="Script" id=2]
|
||||||
@ -7,58 +7,13 @@
|
|||||||
[ext_resource path="res://scenes/status_light.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://scenes/status_light.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://item_types/repair_kit.tres" type="Resource" id=6]
|
[ext_resource path="res://item_types/repair_kit.tres" type="Resource" id=6]
|
||||||
|
|
||||||
[sub_resource type="SpatialMaterial" id=1]
|
|
||||||
albedo_color = Color( 0, 0, 0, 1 )
|
|
||||||
|
|
||||||
[sub_resource type="CylinderMesh" id=2]
|
|
||||||
material = SubResource( 1 )
|
|
||||||
top_radius = 0.5
|
|
||||||
bottom_radius = 0.5
|
|
||||||
height = 0.1
|
|
||||||
radial_segments = 9
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=4]
|
[sub_resource type="BoxShape" id=4]
|
||||||
extents = Vector3( 0.648623, 1, 0.516904 )
|
extents = Vector3( 0.648623, 1, 0.516904 )
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=3]
|
|
||||||
size = Vector3( 1.362, 0.49, 0.081 )
|
|
||||||
|
|
||||||
[node name="oven" type="Spatial" groups=["damageable"]]
|
[node name="oven" type="Spatial" groups=["damageable"]]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0063355, 0.00319374, -0.00456095 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0063355, 0.00319374, -0.00456095 )
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="CSGBox" type="CSGBox" parent="."]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.497031, 0 )
|
|
||||||
use_collision = true
|
|
||||||
width = 1.36825
|
|
||||||
height = 1.04121
|
|
||||||
depth = 1.24388
|
|
||||||
|
|
||||||
[node name="CSGBox2" type="CSGBox" parent="CSGBox"]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000755012, -0.038668, 0.154754 )
|
|
||||||
operation = 2
|
|
||||||
width = 1.20449
|
|
||||||
height = 0.784214
|
|
||||||
depth = 1.29741
|
|
||||||
|
|
||||||
[node name="coil" type="MeshInstance" parent="CSGBox"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00424552, 0.556925, -0.00761187 )
|
|
||||||
mesh = SubResource( 2 )
|
|
||||||
skeleton = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="item_holder" parent="CSGBox/coil" instance=ExtResource( 1 )]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00424552, 0.0865635, 0.00761187 )
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="CSGBox/coil/item_holder"]
|
|
||||||
shape = SubResource( 4 )
|
|
||||||
|
|
||||||
[node name="backsplash" type="MeshInstance" parent="CSGBox"]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00424552, 0.556925, -0.575066 )
|
|
||||||
mesh = SubResource( 3 )
|
|
||||||
skeleton = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="coin_machine" parent="." instance=ExtResource( 3 )]
|
[node name="coin_machine" parent="." instance=ExtResource( 3 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.621351, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.621351, 0 )
|
||||||
|
|
||||||
@ -69,13 +24,20 @@ collision_mask = 0
|
|||||||
item_type_0 = ExtResource( 6 )
|
item_type_0 = ExtResource( 6 )
|
||||||
item_count_0 = 1
|
item_count_0 = 1
|
||||||
|
|
||||||
|
[node name="item_holder" parent="." instance=ExtResource( 1 )]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.14052, 0 )
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="item_holder"]
|
||||||
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
[node name="status_light" parent="." instance=ExtResource( 5 )]
|
[node name="status_light" parent="." instance=ExtResource( 5 )]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.232042, 0.967385 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.232042, 0.967385 )
|
||||||
|
|
||||||
[node name="cook_timer" type="Timer" parent="."]
|
[node name="cook_timer" type="Timer" parent="."]
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[connection signal="item_changed" from="CSGBox/coil/item_holder" to="." method="_on_item_holder_item_changed"]
|
|
||||||
[connection signal="coin_requirement_met" from="coin_machine" to="." method="_on_coin_machine_coin_requirement_met"]
|
[connection signal="coin_requirement_met" from="coin_machine" to="." method="_on_coin_machine_coin_requirement_met"]
|
||||||
[connection signal="item_dump_completed" from="item_dump" to="." method="_on_item_dump_completed"]
|
[connection signal="item_dump_completed" from="item_dump" to="." method="_on_item_dump_completed"]
|
||||||
|
[connection signal="item_changed" from="item_holder" to="." method="_on_item_holder_item_changed"]
|
||||||
[connection signal="timeout" from="cook_timer" to="." method="_on_cook_timer_timeout"]
|
[connection signal="timeout" from="cook_timer" to="." method="_on_cook_timer_timeout"]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=27 format=2]
|
[gd_scene load_steps=30 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scripts/Player.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/player/player.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://assets/dungman/DungMan.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://assets/dungman/DungMan.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://assets/icons/stomach.png" type="Texture" id=3]
|
[ext_resource path="res://assets/icons/stomach.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://assets/dungman/Dungee_MAT.material" type="Material" id=4]
|
[ext_resource path="res://assets/dungman/Dungee_MAT.material" type="Material" id=4]
|
||||||
@ -533,9 +533,147 @@ node_connections = [ "Activate", 0, "Blink", "Activate", 1, "Animation 2", "Blin
|
|||||||
[sub_resource type="BoxShape" id=18]
|
[sub_resource type="BoxShape" id=18]
|
||||||
extents = Vector3( 0.25, 0.25, 1 )
|
extents = Vector3( 0.25, 0.25, 1 )
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=24]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("model_transform/DungMan:translation")
|
||||||
|
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": [ Vector3( 0, 0, 0 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("model_transform/DungMan:rotation_degrees")
|
||||||
|
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": [ Vector3( 0, 0, 0 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("UI/blackout:modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("UI/ZZZ:modulate")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=25]
|
||||||
|
resource_name = "hop_into_bed"
|
||||||
|
length = 1.2
|
||||||
|
step = 0.05
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("model_transform/DungMan:translation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.15, 0.25, 0.35 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector3( 0, 0, 0 ), Vector3( 0.221, 0.971, 0.407456 ), Vector3( 0.451327, 0.829876, 1.25712 ), Vector3( 0.681653, 0.688752, 1.43758 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("model_transform/DungMan:rotation_degrees")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.35 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector3( 0, 0, 0 ), Vector3( -90, 90, 0 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("UI/blackout:modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.4, 1 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("UI/ZZZ:modulate")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.1, 1.2 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=26]
|
||||||
|
resource_name = "hop_out_of_bed"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("UI/blackout:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.1, 0.4 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 0, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 0, 0, 0, 0 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "transform"
|
||||||
|
tracks/1/path = NodePath("model_transform/DungMan")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = PoolRealArray( 0.4, 1, 0.681653, 0.688752, 1.43758, -0.5, 0.5, 0.5, 0.5, 1, 1, 1, 0.61, 1, 0.681653, 0.688752, 1.43758, -0.5, 0.5, -0.5, -0.5, 1, 1, 1, 0.9, 1, 0.0956602, 0.688752, 0.907396, 0.707106, 1.54543e-08, -1.54543e-08, 0.707107, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 )
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("UI/ZZZ:modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.1 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape" id=19]
|
[sub_resource type="CapsuleShape" id=19]
|
||||||
radius = 0.210213
|
radius = 0.535552
|
||||||
height = 0.85525
|
height = 0.565073
|
||||||
|
|
||||||
[sub_resource type="Gradient" id=20]
|
[sub_resource type="Gradient" id=20]
|
||||||
offsets = PoolRealArray( 0, 0.776119, 1 )
|
offsets = PoolRealArray( 0, 0.776119, 1 )
|
||||||
@ -550,28 +688,30 @@ axis_lock_motion_y = true
|
|||||||
move_lock_y = true
|
move_lock_y = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="DungMan" parent="." instance=ExtResource( 2 )]
|
[node name="model_transform" type="Spatial" parent="."]
|
||||||
|
|
||||||
[node name="Dungee" parent="DungMan/Armature/Skeleton" index="0"]
|
[node name="DungMan" parent="model_transform" instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="Dungee" parent="model_transform/DungMan/Armature/Skeleton" index="0"]
|
||||||
mesh = SubResource( 1 )
|
mesh = SubResource( 1 )
|
||||||
skin = SubResource( 2 )
|
skin = SubResource( 2 )
|
||||||
|
|
||||||
[node name="head_bone" type="BoneAttachment" parent="DungMan/Armature/Skeleton" index="1"]
|
[node name="head_bone" type="BoneAttachment" parent="model_transform/DungMan/Armature/Skeleton" index="1"]
|
||||||
transform = Transform( 1, -2.21202e-16, -1.47006e-17, 1.22694e-18, -0.0607882, 0.998151, -2.21687e-16, -0.998151, -0.0607882, -3.31341e-16, -0.0494913, -1.50713 )
|
transform = Transform( 1, -2.21502e-16, 1.62129e-17, -2.37146e-19, 0.0719347, 0.997409, -2.22095e-16, -0.997409, 0.0719347, -3.31708e-16, -0.0484204, -1.49945 )
|
||||||
bone_name = "Item"
|
bone_name = "Item"
|
||||||
|
|
||||||
[node name="ItemSpawn" type="Spatial" parent="DungMan/Armature/Skeleton/head_bone"]
|
[node name="ItemSpawn" type="Spatial" parent="model_transform/DungMan/Armature/Skeleton/head_bone"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform( 1, 1.48483e-18, -3.14288e-18, -1.61955e-18, 0.999062, -0.0432985, 3.07563e-18, 0.0432985, 0.999062, 0, 0, 0.107 )
|
transform = Transform( 1, 1.48483e-18, -3.14288e-18, -1.61955e-18, 0.999062, -0.0432985, 3.07563e-18, 0.0432985, 0.999062, 0, 0, 0.107 )
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="DungMan" index="1"]
|
[node name="AnimationPlayer" parent="model_transform/DungMan" index="1"]
|
||||||
anims/Blink = SubResource( 3 )
|
anims/Blink = SubResource( 3 )
|
||||||
anims/Dungee = SubResource( 4 )
|
anims/Dungee = SubResource( 4 )
|
||||||
anims/Idle-loop = SubResource( 5 )
|
anims/Idle-loop = SubResource( 5 )
|
||||||
anims/Reset = SubResource( 6 )
|
anims/Reset = SubResource( 6 )
|
||||||
anims/Run-loop = SubResource( 7 )
|
anims/Run-loop = SubResource( 7 )
|
||||||
|
|
||||||
[node name="AnimationTree" type="AnimationTree" parent="DungMan"]
|
[node name="AnimationTree" type="AnimationTree" parent="model_transform/DungMan"]
|
||||||
tree_root = SubResource( 9 )
|
tree_root = SubResource( 9 )
|
||||||
anim_player = NodePath("../AnimationPlayer")
|
anim_player = NodePath("../AnimationPlayer")
|
||||||
active = true
|
active = true
|
||||||
@ -579,21 +719,28 @@ parameters/Activate/active = false
|
|||||||
parameters/Blink/active = false
|
parameters/Blink/active = false
|
||||||
parameters/Move/playback = SubResource( 17 )
|
parameters/Move/playback = SubResource( 17 )
|
||||||
|
|
||||||
[node name="TriggerVolume" type="Area" parent="DungMan"]
|
[node name="TriggerVolume" type="Area" parent="model_transform/DungMan"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.630386 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.630386 )
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 8
|
collision_mask = 8
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="DungMan/TriggerVolume"]
|
[node name="CollisionShape" type="CollisionShape" parent="model_transform/DungMan/TriggerVolume"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.778807, 0.291356 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.778807, 0.291356 )
|
||||||
shape = SubResource( 18 )
|
shape = SubResource( 18 )
|
||||||
|
|
||||||
[node name="blink_timer" type="Timer" parent="DungMan"]
|
[node name="blink_timer" type="Timer" parent="model_transform/DungMan"]
|
||||||
|
unique_name_in_owner = true
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
|
[node name="node_animations" type="AnimationPlayer" parent="model_transform"]
|
||||||
|
root_node = NodePath("../..")
|
||||||
|
anims/RESET = SubResource( 24 )
|
||||||
|
anims/hop_into_bed = SubResource( 25 )
|
||||||
|
anims/hop_out_of_bed = SubResource( 26 )
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="."]
|
[node name="CollisionShape" type="CollisionShape" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.641703, 0 )
|
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.827727, 0.0411353 )
|
||||||
shape = SubResource( 19 )
|
shape = SubResource( 19 )
|
||||||
|
|
||||||
[node name="hitbox" type="Area" parent="."]
|
[node name="hitbox" type="Area" parent="."]
|
||||||
@ -601,9 +748,11 @@ collision_layer = 2
|
|||||||
collision_mask = 16
|
collision_mask = 16
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="hitbox"]
|
[node name="CollisionShape" type="CollisionShape" parent="hitbox"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.824963, 0.0301657 )
|
||||||
shape = SubResource( 19 )
|
shape = SubResource( 19 )
|
||||||
|
|
||||||
[node name="UI" type="CanvasLayer" parent="."]
|
[node name="UI" type="CanvasLayer" parent="."]
|
||||||
|
pause_mode = 2
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="UI"]
|
[node name="Control" type="Control" parent="UI"]
|
||||||
margin_right = 40.0
|
margin_right = 40.0
|
||||||
@ -651,10 +800,33 @@ margin_right = 524.0
|
|||||||
margin_bottom = 128.0
|
margin_bottom = 128.0
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="blackout" type="ColorRect" parent="UI"]
|
||||||
|
modulate = Color( 1, 1, 1, 0 )
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
color = Color( 0, 0, 0, 1 )
|
||||||
|
|
||||||
|
[node name="ZZZ" type="Label" parent="UI"]
|
||||||
|
modulate = Color( 1, 1, 1, 0 )
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
margin_left = -90.0
|
||||||
|
margin_top = -20.0
|
||||||
|
margin_right = 90.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
||||||
|
text = "ZZZZZZZZZZZZZ
|
||||||
|
|
||||||
|
Press the action input to continue..."
|
||||||
|
align = 1
|
||||||
|
valign = 1
|
||||||
|
|
||||||
[node name="hunger_timer" type="Timer" parent="."]
|
[node name="hunger_timer" type="Timer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[connection signal="timeout" from="DungMan/blink_timer" to="." method="_on_blink_timer_timeout"]
|
[connection signal="timeout" from="model_transform/DungMan/blink_timer" to="." method="_on_blink_timer_timeout"]
|
||||||
[connection signal="timeout" from="hunger_timer" to="." method="_on_hunger_timer_timeout"]
|
[connection signal="timeout" from="hunger_timer" to="." method="_on_hunger_timer_timeout"]
|
||||||
|
|
||||||
[editable path="DungMan"]
|
[editable path="model_transform/DungMan"]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=6 format=2]
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scripts/power_station.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/power_station.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://assets/sound/forceField_004.ogg" type="AudioStream" id=3]
|
[ext_resource path="res://assets/sound/forceField_004.ogg" type="AudioStream" id=3]
|
||||||
@ -6,8 +6,6 @@
|
|||||||
|
|
||||||
[sub_resource type="BoxShape" id=2]
|
[sub_resource type="BoxShape" id=2]
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=1]
|
|
||||||
|
|
||||||
[node name="power_station" type="Area"]
|
[node name="power_station" type="Area"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||||
collision_layer = 8
|
collision_layer = 8
|
||||||
@ -19,9 +17,6 @@ time_to_generate = 1.0
|
|||||||
transform = Transform( 1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0 )
|
transform = Transform( 1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
|
||||||
mesh = SubResource( 1 )
|
|
||||||
|
|
||||||
[node name="CointCount" type="Label3D" parent="."]
|
[node name="CointCount" type="Label3D" parent="."]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0275149, 0.721019, 1.58046 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0275149, 0.721019, 1.58046 )
|
||||||
billboard = 1
|
billboard = 1
|
||||||
|
5
scripts/bed.gd
Normal file
5
scripts/bed.gd
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extends Area
|
||||||
|
|
||||||
|
func on_player_interact(player: Spatial) -> bool:
|
||||||
|
player.sleep(true, $hop_position)
|
||||||
|
return true
|
@ -31,9 +31,15 @@ func _on_clear_pressed():
|
|||||||
if player.has_item():
|
if player.has_item():
|
||||||
player.drop_item_in_hand()
|
player.drop_item_in_hand()
|
||||||
|
|
||||||
|
|
||||||
func _on_random_damage_pressed():
|
func _on_random_damage_pressed():
|
||||||
var damageable = get_tree().get_nodes_in_group("damageable")
|
var damageable = get_tree().get_nodes_in_group("damageable")
|
||||||
if damageable.empty():
|
if damageable.empty():
|
||||||
return
|
return
|
||||||
damageable[randi() % damageable.size()].take_damage()
|
damageable[randi() % damageable.size()].take_damage()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_timer_2_s_pressed():
|
||||||
|
var game_manager = get_tree().get_nodes_in_group("game_manager")[0]
|
||||||
|
var day_timer = game_manager.get_node("day_timer")
|
||||||
|
day_timer.start(2.0)
|
||||||
|
day_timer.wait_time = game_manager.time_per_day
|
||||||
|
14
scripts/dof_focus.gd
Normal file
14
scripts/dof_focus.gd
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
extends WorldEnvironment
|
||||||
|
|
||||||
|
export var target: NodePath
|
||||||
|
export var size: float = 1.0
|
||||||
|
onready var target_node: Spatial = get_node(target)
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
environment.dof_blur_far_enabled = true
|
||||||
|
environment.dof_blur_near_enabled = true
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
var dist := get_viewport().get_camera().global_transform.origin.distance_to(target_node.global_transform.origin)
|
||||||
|
environment.dof_blur_near_distance = dist - size / 2.0
|
||||||
|
environment.dof_blur_far_distance = dist + size / 2.0
|
@ -26,15 +26,8 @@ func _on_player_starved_to_death():
|
|||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
get_tree().quit() # go back to main menu when such a thing exists
|
get_tree().quit() # go back to main menu when such a thing exists
|
||||||
|
|
||||||
func _on_day_timer_timeout():
|
func reset_day_timer():
|
||||||
player.health -= 1
|
day_timer.start()
|
||||||
if player.health <= 0:
|
|
||||||
_on_player_starved_to_death()
|
|
||||||
return
|
|
||||||
var node = Dialogic.start("day_end")
|
|
||||||
node.pause_mode = PAUSE_MODE_PROCESS
|
|
||||||
add_child(node)
|
|
||||||
get_tree().paused = true
|
|
||||||
yield(node, "timeline_end")
|
|
||||||
get_tree().paused = false
|
|
||||||
|
|
||||||
|
func _on_day_timer_timeout():
|
||||||
|
player.sleep(false, null)
|
||||||
|
@ -16,12 +16,11 @@ func enter_from(state):
|
|||||||
ctx.get_node("%item_holder").remove_enabled = false
|
ctx.get_node("%item_holder").remove_enabled = false
|
||||||
|
|
||||||
ctx.get_node("cook_timer").start()
|
ctx.get_node("cook_timer").start()
|
||||||
ctx.get_node("%coil").set_surface_material(0, mat)
|
|
||||||
ctx.get_node("status_light").light_color = Color.green
|
ctx.get_node("status_light").light_color = Color.green
|
||||||
ctx.get_node("status_light").activate()
|
ctx.get_node("status_light").activate()
|
||||||
|
|
||||||
func exit_to(state):
|
func exit_to(state):
|
||||||
ctx.get_node("%coil").set_surface_material(0, null)
|
pass
|
||||||
|
|
||||||
func on_coin_machine_coin_requirement_met(player):
|
func on_coin_machine_coin_requirement_met(player):
|
||||||
assert(false, "coin machine should be disabled while growing")
|
assert(false, "coin machine should be disabled while growing")
|
||||||
|
@ -2,7 +2,10 @@ extends KinematicBody
|
|||||||
|
|
||||||
signal starved_to_death
|
signal starved_to_death
|
||||||
|
|
||||||
const EPSILON = 0.0001
|
const StateDefault = preload("res://scripts/player/state/default.gd")
|
||||||
|
const StateInteracting = preload("res://scripts/player/state/interacting.gd")
|
||||||
|
const StateSleeping = preload("res://scripts/player/state/sleeping.gd")
|
||||||
|
|
||||||
const SPEED = 10.0
|
const SPEED = 10.0
|
||||||
const MAX_HEALTH = 4
|
const MAX_HEALTH = 4
|
||||||
|
|
||||||
@ -13,27 +16,31 @@ var health: int = 4 setget set_health
|
|||||||
var item_in_hand
|
var item_in_hand
|
||||||
var move_enabled: bool = true
|
var move_enabled: bool = true
|
||||||
|
|
||||||
onready var move_playback = $DungMan/AnimationTree["parameters/Move/playback"]
|
onready var anim_tree = $model_transform/DungMan/AnimationTree
|
||||||
|
onready var move_playback = anim_tree["parameters/Move/playback"]
|
||||||
onready var hunger_timer = $"%hunger_timer"
|
onready var hunger_timer = $"%hunger_timer"
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
var state = null
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
$hitbox.set_meta("owner", self)
|
$hitbox.set_meta("owner", self)
|
||||||
move_playback.travel("idle")
|
move_playback.travel("idle")
|
||||||
hunger_timer.wait_time = hunger_tick_time
|
hunger_timer.wait_time = hunger_tick_time
|
||||||
hunger_timer.start()
|
hunger_timer.start()
|
||||||
|
state = StateDefault.new()
|
||||||
|
state.ctx = self
|
||||||
|
state.enter_from(null)
|
||||||
|
print("player: NULL -> ", state.NAME)
|
||||||
|
|
||||||
|
func change_state(new_state):
|
||||||
|
print("player: ", state.NAME, " -> ", new_state.NAME)
|
||||||
|
new_state.ctx = self
|
||||||
|
state.exit_to(new_state)
|
||||||
|
new_state.enter_from(state)
|
||||||
|
state = new_state
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
if not move_enabled:
|
state.physics_process(delta)
|
||||||
return
|
|
||||||
var input = Vector3(Input.get_axis("left", "right"), 0.0, Input.get_axis("up", "down"))
|
|
||||||
var motion = Plane.PLANE_XZ.project(get_viewport().get_camera().global_transform.basis.xform(input)).normalized() * SPEED
|
|
||||||
if motion.length_squared() > EPSILON:
|
|
||||||
$DungMan.look_at(global_transform.origin - motion, Vector3.UP)
|
|
||||||
move_playback.travel("run")
|
|
||||||
else:
|
|
||||||
move_playback.travel("idle")
|
|
||||||
move_and_slide(motion)
|
|
||||||
|
|
||||||
func _on_hunger_timer_timeout():
|
func _on_hunger_timer_timeout():
|
||||||
set_health(health - 1)
|
set_health(health - 1)
|
||||||
@ -81,31 +88,7 @@ func modify_inventory(item_name, item_amount):
|
|||||||
return true
|
return true
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _unhandled_input(event):
|
||||||
if event.is_action_pressed("action"):
|
state.unhandled_input(event)
|
||||||
$DungMan/AnimationTree["parameters/Activate/active"] = true
|
|
||||||
move_enabled = false
|
|
||||||
yield(get_tree().create_timer(0.2), "timeout")
|
|
||||||
for area in $"%TriggerVolume".get_overlapping_areas():
|
|
||||||
if try_trigger_interact(area):
|
|
||||||
break
|
|
||||||
move_enabled = true
|
|
||||||
|
|
||||||
func try_trigger_interact(area):
|
|
||||||
var owner = area
|
|
||||||
if area.has_meta("owner"):
|
|
||||||
owner = area.get_meta("owner")
|
|
||||||
|
|
||||||
if not owner.has_method("on_player_interact"):
|
|
||||||
return false
|
|
||||||
|
|
||||||
var result = owner.on_player_interact(self)
|
|
||||||
|
|
||||||
if not result:
|
|
||||||
print("player failed to interacted with ", owner)
|
|
||||||
return
|
|
||||||
|
|
||||||
print("player interacted with ", owner)
|
|
||||||
return true
|
|
||||||
|
|
||||||
func drop_item_in_hand():
|
func drop_item_in_hand():
|
||||||
print("player dropped ", item_in_hand.item_name)
|
print("player dropped ", item_in_hand.item_name)
|
||||||
@ -132,7 +115,10 @@ func get_item_in_hand():
|
|||||||
item_to_return = drop_item_in_hand()
|
item_to_return = drop_item_in_hand()
|
||||||
return item_to_return
|
return item_to_return
|
||||||
|
|
||||||
|
|
||||||
func _on_blink_timer_timeout():
|
func _on_blink_timer_timeout():
|
||||||
$DungMan/AnimationTree["parameters/Blink/active"] = true
|
anim_tree["parameters/Blink/active"] = true
|
||||||
$DungMan/blink_timer.wait_time = rand_range(0.5, 3.0)
|
$"%blink_timer".wait_time = rand_range(0.5, 3.0)
|
||||||
|
|
||||||
|
func sleep(made_it_to_bed: bool, hop_position: Spatial):
|
||||||
|
state.on_sleep(made_it_to_bed, hop_position)
|
||||||
|
|
36
scripts/player/state/default.gd
Normal file
36
scripts/player/state/default.gd
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
extends Reference
|
||||||
|
|
||||||
|
const NAME = "default"
|
||||||
|
const EPSILON = 0.0001
|
||||||
|
|
||||||
|
var ctx = null
|
||||||
|
var anim_tree: AnimationTree
|
||||||
|
var move_playback
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
pass
|
||||||
|
|
||||||
|
func enter_from(state):
|
||||||
|
anim_tree = ctx.get_node("model_transform/DungMan/AnimationTree")
|
||||||
|
move_playback = anim_tree["parameters/Move/playback"]
|
||||||
|
|
||||||
|
func exit_to(state):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func physics_process(delta):
|
||||||
|
var input = Vector3(Input.get_axis("left", "right"), 0.0, Input.get_axis("up", "down"))
|
||||||
|
var motion = Plane.PLANE_XZ.project(ctx.get_viewport().get_camera().global_transform.basis.xform(input)).normalized() * ctx.SPEED
|
||||||
|
if motion.length_squared() > EPSILON:
|
||||||
|
ctx.get_node("model_transform").look_at(ctx.global_transform.origin - motion, Vector3.UP)
|
||||||
|
ctx.move_playback.travel("run")
|
||||||
|
else:
|
||||||
|
ctx.move_playback.travel("idle")
|
||||||
|
ctx.move_and_slide(motion)
|
||||||
|
|
||||||
|
func unhandled_input(event):
|
||||||
|
if event.is_action_pressed("action"):
|
||||||
|
ctx.get_tree().set_input_as_handled()
|
||||||
|
ctx.change_state(ctx.StateInteracting.new())
|
||||||
|
|
||||||
|
func on_sleep(made_it_to_bed: bool, hop_position: Spatial):
|
||||||
|
ctx.change_state(ctx.StateSleeping.new(made_it_to_bed, hop_position))
|
54
scripts/player/state/interacting.gd
Normal file
54
scripts/player/state/interacting.gd
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
extends Reference
|
||||||
|
|
||||||
|
const NAME = "interacting"
|
||||||
|
|
||||||
|
var ctx: KinematicBody = null
|
||||||
|
var anim_tree: AnimationTree
|
||||||
|
var timer: SceneTreeTimer
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
pass
|
||||||
|
|
||||||
|
func enter_from(state):
|
||||||
|
anim_tree = ctx.get_node("model_transform/DungMan/AnimationTree")
|
||||||
|
anim_tree["parameters/Move/playback"].travel("idle")
|
||||||
|
anim_tree["parameters/Activate/active"] = true
|
||||||
|
timer = ctx.get_tree().create_timer(0.2)
|
||||||
|
timer.connect("timeout", self, "_on_timeout", [], CONNECT_ONESHOT)
|
||||||
|
|
||||||
|
func exit_to(state):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func physics_process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func unhandled_input(event):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_timeout():
|
||||||
|
for area in ctx.get_node("%TriggerVolume").get_overlapping_areas():
|
||||||
|
if try_trigger_interact(area):
|
||||||
|
break
|
||||||
|
if ctx.state == self:
|
||||||
|
ctx.change_state(ctx.StateDefault.new())
|
||||||
|
|
||||||
|
func try_trigger_interact(area) -> bool:
|
||||||
|
var owner = area
|
||||||
|
if area.has_meta("owner"):
|
||||||
|
owner = area.get_meta("owner")
|
||||||
|
|
||||||
|
if not owner.has_method("on_player_interact"):
|
||||||
|
return false
|
||||||
|
|
||||||
|
var result = owner.on_player_interact(ctx)
|
||||||
|
|
||||||
|
if not result:
|
||||||
|
print("player failed to interacted with ", owner)
|
||||||
|
return false
|
||||||
|
|
||||||
|
print("player interacted with ", owner)
|
||||||
|
return true
|
||||||
|
|
||||||
|
func on_sleep(made_it_to_bed: bool, hop_position: Spatial):
|
||||||
|
timer.disconnect("timeout", self, "_on_timeout")
|
||||||
|
ctx.change_state(ctx.StateSleeping.new(made_it_to_bed, hop_position))
|
99
scripts/player/state/sleeping.gd
Normal file
99
scripts/player/state/sleeping.gd
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
extends Reference
|
||||||
|
|
||||||
|
const NAME = "sleeping"
|
||||||
|
|
||||||
|
var ctx: KinematicBody = null
|
||||||
|
var hop_position: Spatial
|
||||||
|
var made_it_to_bed: bool
|
||||||
|
var model_transform: Spatial
|
||||||
|
var anim_player: AnimationPlayer
|
||||||
|
var old_model_origin: Vector3
|
||||||
|
|
||||||
|
var waiting := false
|
||||||
|
|
||||||
|
func _init(p_made_it_to_bed: bool, p_hop_position: Spatial = null):
|
||||||
|
hop_position = p_hop_position
|
||||||
|
made_it_to_bed = p_made_it_to_bed
|
||||||
|
|
||||||
|
func enter_from(state):
|
||||||
|
hop_position = hop_position if hop_position else ctx.get_tree().get_nodes_in_group("bed_hop_position")[0]
|
||||||
|
model_transform = ctx.get_node("model_transform")
|
||||||
|
anim_player = ctx.get_node("model_transform/node_animations")
|
||||||
|
|
||||||
|
# Pause everything but the player
|
||||||
|
ctx.get_tree().paused = true
|
||||||
|
ctx.get_node("hunger_timer").pause_mode = ctx.PAUSE_MODE_STOP
|
||||||
|
ctx.pause_mode = ctx.PAUSE_MODE_PROCESS
|
||||||
|
|
||||||
|
# Drop any carried item
|
||||||
|
if ctx.has_item():
|
||||||
|
ctx.drop_item_in_hand()
|
||||||
|
|
||||||
|
# Prepare to play animation
|
||||||
|
|
||||||
|
if made_it_to_bed:
|
||||||
|
# Slide the player to the front of the bed
|
||||||
|
old_model_origin = model_transform.global_transform.origin
|
||||||
|
var tween = model_transform.create_tween()
|
||||||
|
tween.tween_property(model_transform, "global_transform:origin", hop_position.global_transform.origin, .1)
|
||||||
|
yield(tween, "finished")
|
||||||
|
# Warp the player to the right position & orientation
|
||||||
|
model_transform.global_transform = hop_position.global_transform
|
||||||
|
else:
|
||||||
|
# Harm the player and show message
|
||||||
|
ctx.set_health(ctx.health - 1)
|
||||||
|
var node = Dialogic.start("day_end")
|
||||||
|
node.pause_mode = ctx.PAUSE_MODE_PROCESS
|
||||||
|
ctx.add_child(node)
|
||||||
|
yield(node, "timeline_end")
|
||||||
|
# Warp the player to the right position & orientation
|
||||||
|
ctx.global_transform.origin = hop_position.global_transform.origin
|
||||||
|
model_transform.global_transform = hop_position.global_transform
|
||||||
|
old_model_origin = model_transform.global_transform.origin
|
||||||
|
|
||||||
|
|
||||||
|
# Play hop animation
|
||||||
|
ctx.get_node("model_transform/DungMan/AnimationTree")["parameters/Move/playback"].travel("idle")
|
||||||
|
anim_player.call_deferred("play", "hop_into_bed")
|
||||||
|
yield(anim_player, "animation_finished")
|
||||||
|
waiting = true
|
||||||
|
|
||||||
|
# Reset the day timer
|
||||||
|
for game_manager in ctx.get_tree().get_nodes_in_group("game_manager"):
|
||||||
|
game_manager.reset_day_timer()
|
||||||
|
|
||||||
|
func exit_to(state):
|
||||||
|
ctx.pause_mode = ctx.PAUSE_MODE_INHERIT
|
||||||
|
ctx.get_node("hunger_timer").pause_mode = ctx.PAUSE_MODE_INHERIT
|
||||||
|
ctx.get_tree().paused = false
|
||||||
|
|
||||||
|
func physics_process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func unhandled_input(event: InputEvent):
|
||||||
|
if not waiting:
|
||||||
|
return
|
||||||
|
if not event.is_action_pressed("action"):
|
||||||
|
return
|
||||||
|
|
||||||
|
ctx.get_tree().set_input_as_handled()
|
||||||
|
|
||||||
|
# Play hop out animation
|
||||||
|
anim_player.call_deferred("play", "hop_out_of_bed")
|
||||||
|
yield(anim_player, "animation_finished")
|
||||||
|
|
||||||
|
# Slide the player back to the front of the bed
|
||||||
|
var tween = model_transform.create_tween()
|
||||||
|
tween.tween_property(model_transform, "global_transform:origin", old_model_origin, .1)
|
||||||
|
yield(tween, "finished")
|
||||||
|
|
||||||
|
# Show message
|
||||||
|
var node = Dialogic.start("wake_up")
|
||||||
|
node.pause_mode = ctx.PAUSE_MODE_PROCESS
|
||||||
|
ctx.add_child(node)
|
||||||
|
yield(node, "timeline_end")
|
||||||
|
|
||||||
|
ctx.change_state(ctx.StateDefault.new())
|
||||||
|
|
||||||
|
func on_sleep(made_it_to_bed: bool, hop_position: Spatial):
|
||||||
|
assert(false, "shouldn't be able to sleep while sleeping")
|
Loading…
x
Reference in New Issue
Block a user