diff --git a/prefabs/lever.gd b/prefabs/lever.gd index b831c50..0d5ec3f 100644 --- a/prefabs/lever.gd +++ b/prefabs/lever.gd @@ -6,9 +6,17 @@ extends Node3D @onready var visual_lever: Node3D = $Visuals/VisualLever +var lever_tween: Tween = null + 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 + + if lever_tween != null: + lever_tween.kill() + + lever_tween = get_tree().create_tween() + lever_tween.tween_property(visual_lever, "rotation_degrees:x", upPosition if isUp else downPosition, 0.5).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CUBIC) +