From 282eb3b5aa2a7c64a4c46402d42c0b1a1b991498 Mon Sep 17 00:00:00 2001 From: jonathan Date: Fri, 30 Jan 2026 13:03:33 +0100 Subject: [PATCH] Lid crane and lever --- prefabs/lever.tscn | 21 +++++++++------------ scenes/coffin_openable.gd | 9 +++++++++ scenes/coffin_openable.gd.uid | 1 + scenes/room.tscn | 32 +++++++++----------------------- 4 files changed, 28 insertions(+), 35 deletions(-) create mode 100644 scenes/coffin_openable.gd create mode 100644 scenes/coffin_openable.gd.uid diff --git a/prefabs/lever.tscn b/prefabs/lever.tscn index 394bb33..be5e8cf 100644 --- a/prefabs/lever.tscn +++ b/prefabs/lever.tscn @@ -2,20 +2,16 @@ [ext_resource type="Script" uid="uid://de5n8vxvigaic" path="res://prefabs/lever.gd" id="1_7d20a"] [ext_resource type="PackedScene" uid="uid://be7u1kn41g2ww" path="res://addons/interaction/interactable.tscn" id="1_h71ec"] +[ext_resource type="ArrayMesh" uid="uid://bwsi1jdicf41x" path="res://models/lever_base.res" id="3_haun4"] +[ext_resource type="ArrayMesh" uid="uid://c38wl6xp3k66q" path="res://models/lever.res" id="4_jevyl"] [sub_resource type="BoxShape3D" id="BoxShape3D_h71ec"] size = Vector3(1, 1, 0.2) -[sub_resource type="BoxMesh" id="BoxMesh_ib36p"] -size = Vector3(0.405, 0.61, 0.09) - -[sub_resource type="BoxMesh" id="BoxMesh_haun4"] -size = Vector3(0.1, 0.1, 0.5) - [node name="Lever" type="Node3D"] script = ExtResource("1_7d20a") -upPosition = -45.0 -downPosition = 45.0 +upPosition = -60.0 +downPosition = 60.0 [node name="Interactable" parent="." instance=ExtResource("1_h71ec")] @@ -25,16 +21,17 @@ shape = SubResource("BoxShape3D_h71ec") [node name="Visuals" type="Node3D" parent="."] [node name="VisualBase" type="Node3D" parent="Visuals"] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0, 0, 0) [node name="MeshInstance3D" type="MeshInstance3D" parent="Visuals/VisualBase"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.029395461) -mesh = SubResource("BoxMesh_ib36p") +mesh = ExtResource("3_haun4") [node name="VisualLever" type="Node3D" parent="Visuals"] -transform = Transform3D(1, 0, 0, 0, 0.70710677, 0.70710677, 0, -0.70710677, 0.70710677, 0, 0, 0.04011269) +transform = Transform3D(1, 0, 0, 0, 0.49999994, 0.8660254, 0, -0.8660254, 0.49999994, 0, 0, 0.04011269) [node name="MeshInstance3D" type="MeshInstance3D" parent="Visuals/VisualLever"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00422913, 0.22320583) -mesh = SubResource("BoxMesh_haun4") +transform = Transform3D(-4.371139e-08, 1, 0, 8.940697e-08, 5.3290705e-15, 1, 1, 4.371139e-08, -8.940697e-08, 0, 0, 0) +mesh = ExtResource("4_jevyl") [connection signal="on_hit" from="Interactable" to="." method="_on_interactable_on_hit"] diff --git a/scenes/coffin_openable.gd b/scenes/coffin_openable.gd new file mode 100644 index 0000000..f1a4dee --- /dev/null +++ b/scenes/coffin_openable.gd @@ -0,0 +1,9 @@ +extends Node3D + +@onready var animation_player: AnimationPlayer = $AnimationPlayer + +func _on_lever_changed(isUp: bool) -> void: + if isUp: + animation_player.play("CoffinOpen") + else: + animation_player.play("CoffinClose") diff --git a/scenes/coffin_openable.gd.uid b/scenes/coffin_openable.gd.uid new file mode 100644 index 0000000..ed00357 --- /dev/null +++ b/scenes/coffin_openable.gd.uid @@ -0,0 +1 @@ +uid://8bdjflc6ufvr diff --git a/scenes/room.tscn b/scenes/room.tscn index 06abe58..40c175c 100644 --- a/scenes/room.tscn +++ b/scenes/room.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=35 format=3 uid="uid://157h04x0krfu"] +[gd_scene load_steps=37 format=3 uid="uid://157h04x0krfu"] [ext_resource type="PackedScene" uid="uid://bjufextny1icg" path="res://models/UndertakerAssets.glb" id="1_7dqbv"] [ext_resource type="ArrayMesh" uid="uid://iitrxdpdaq0i" path="res://models/ceiling.res" id="1_jn645"] @@ -7,6 +7,7 @@ [ext_resource type="ArrayMesh" uid="uid://bjt6sta5lnhjr" path="res://models/floor.res" id="4_ybpoa"] [ext_resource type="PackedScene" uid="uid://bxuveo0hlwy33" path="res://prefabs/character.tscn" id="5_3j2fx"] [ext_resource type="ArrayMesh" uid="uid://dj1dpmph88iyx" path="res://models/wall_lower.res" id="5_qtoah"] +[ext_resource type="PackedScene" uid="uid://cv3qpo5lfrchn" path="res://prefabs/lever.tscn" id="6_dynfe"] [ext_resource type="ArrayMesh" uid="uid://cfwr5bvmj0ocy" path="res://models/wall_upper.res" id="6_eom3m"] [ext_resource type="ArrayMesh" uid="uid://dooebv7iy46yb" path="res://models/coffin_chute.res" id="8_ybpoa"] [ext_resource type="ArrayMesh" uid="uid://m1tiq7rwgpnf" path="res://models/table.res" id="9_dynfe"] @@ -22,6 +23,7 @@ [ext_resource type="VoxelGIData" uid="uid://rfxeiyxkedo6" path="res://scenes/room.VoxelGI_data.res" id="19_jxwrd"] [ext_resource type="ArrayMesh" uid="uid://te2j13rctqpb" path="res://models/coffin_lower.res" id="19_yggoe"] [ext_resource type="ArrayMesh" uid="uid://uos83uc5mxn7" path="res://models/coffin_upper.res" id="20_2ulci"] +[ext_resource type="Script" uid="uid://8bdjflc6ufvr" path="res://scenes/coffin_openable.gd" id="20_mc3m6"] [sub_resource type="BoxShape3D" id="BoxShape3D_vfrn5"] size = Vector3(50, 1, 50) @@ -191,28 +193,6 @@ tracks/0/keys = { "points": PackedFloat32Array(0, -0.487, 0, 0.20014383, 0, -0.45, -0.2, 0, 0.02, 0, -0.2696182, -0.047737252, -0.099416435, 0.33333337, 0.69419193, 7.4663363, -0.0666666, -4.989369, 0.18296194, 0.016600132, 7.4821897, -0.43333328, 0.017345905, 0, 0), "times": PackedFloat32Array(0, 0.5, 0.73333335, 1.2666667, 2.0333333) } -tracks/1/type = "bezier" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("AnimParent:position:y") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"handle_modes": PackedInt32Array(), -"points": PackedFloat32Array(), -"times": PackedFloat32Array() -} -tracks/2/type = "bezier" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("AnimParent:position:z") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"handle_modes": PackedInt32Array(), -"points": PackedFloat32Array(), -"times": PackedFloat32Array() -} [sub_resource type="Animation" id="Animation_2ulci"] length = 0.001 @@ -353,8 +333,12 @@ debug_fill = false [node name="Character" parent="." instance=ExtResource("5_3j2fx")] transform = Transform3D(-1.0392305, 0, -0.5999999, 0, 1.1999999, 0, 0.5999999, 0, -1.0392305, 0, 0.02320534, 0) +[node name="Lever" parent="." instance=ExtResource("6_dynfe")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -1.9271023, 1.3349965, 2.5290997) + [node name="CoffinOpenable" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.24035808, 0.8164685, 2.485278) +script = ExtResource("20_mc3m6") [node name="ArmsAnimationPivot" type="Node3D" parent="CoffinOpenable"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) @@ -435,4 +419,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4750366, 2.2176208, 0.51159 size = Vector3(10.249878, 4.5215454, 7.8151855) data = ExtResource("19_jxwrd") +[connection signal="changed" from="Lever" to="CoffinOpenable" method="_on_lever_changed"] + [editable path="UndertakerAssets"]