From e8559b79936dfd508096b1699fd9aa19cc4040fe Mon Sep 17 00:00:00 2001 From: jonathan Date: Tue, 27 Jan 2026 12:49:40 +0100 Subject: [PATCH] Added lever --- prefabs/lever.gd | 14 ++++++++++++++ prefabs/lever.gd.uid | 1 + prefabs/lever.tscn | 40 +++++++++++++++++++++++++++++++++++++++ scenes/blockout_room.tscn | 6 +++++- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 prefabs/lever.gd create mode 100644 prefabs/lever.gd.uid create mode 100644 prefabs/lever.tscn diff --git a/prefabs/lever.gd b/prefabs/lever.gd new file mode 100644 index 0000000..b831c50 --- /dev/null +++ b/prefabs/lever.gd @@ -0,0 +1,14 @@ +extends Node3D + +@export var isUp:bool = true +@export var upPosition:float = 45 +@export var downPosition:float = -45 + +@onready var visual_lever: Node3D = $Visuals/VisualLever + +signal changed(isUp: bool) + +func _on_interactable_on_hit() -> void: + isUp = !isUp + changed.emit(isUp) + visual_lever.rotation_degrees.x = upPosition if isUp else downPosition diff --git a/prefabs/lever.gd.uid b/prefabs/lever.gd.uid new file mode 100644 index 0000000..ed5c7fc --- /dev/null +++ b/prefabs/lever.gd.uid @@ -0,0 +1 @@ +uid://de5n8vxvigaic diff --git a/prefabs/lever.tscn b/prefabs/lever.tscn new file mode 100644 index 0000000..394bb33 --- /dev/null +++ b/prefabs/lever.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=3 uid="uid://cv3qpo5lfrchn"] + +[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"] + +[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 + +[node name="Interactable" parent="." instance=ExtResource("1_h71ec")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactable"] +shape = SubResource("BoxShape3D_h71ec") + +[node name="Visuals" type="Node3D" parent="."] + +[node name="VisualBase" type="Node3D" parent="Visuals"] + +[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") + +[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) + +[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") + +[connection signal="on_hit" from="Interactable" to="." method="_on_interactable_on_hit"] diff --git a/scenes/blockout_room.tscn b/scenes/blockout_room.tscn index 68b073d..97075e8 100644 --- a/scenes/blockout_room.tscn +++ b/scenes/blockout_room.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://gq33ysuit61b"] +[gd_scene load_steps=8 format=3 uid="uid://gq33ysuit61b"] [ext_resource type="PackedScene" uid="uid://c70o7nk6wxcmx" path="res://models/UndertakerBlockout.fbx" id="2_gfayn"] [ext_resource type="PackedScene" uid="uid://be7u1kn41g2ww" path="res://addons/interaction/interactable.tscn" id="3_u0nvw"] [ext_resource type="PackedScene" uid="uid://bxuveo0hlwy33" path="res://prefabs/character.tscn" id="4_tedjo"] [ext_resource type="Script" uid="uid://b1pyctfbd0wvg" path="res://scenes/debug_printer.gd" id="4_ui586"] +[ext_resource type="PackedScene" uid="uid://cv3qpo5lfrchn" path="res://prefabs/lever.tscn" id="5_tedjo"] [sub_resource type="BoxShape3D" id="BoxShape3D_gfayn"] size = Vector3(12.2438965, 0.48779297, 13.901489) @@ -38,4 +39,7 @@ script = ExtResource("4_ui586") [node name="Character" parent="." instance=ExtResource("4_tedjo")] +[node name="Lever" parent="." instance=ExtResource("5_tedjo")] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.884376, 1.4100053, 4.976951) + [connection signal="on_hit" from="Interactable" to="DebugPrinter" method="_on_interactable_on_hit"]