|
|
|
|
@ -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)
|
|
|
|
|
|
|
|
|
|
|