extends Area3D @export var velocity = Vector3.ZERO var body_within @export var tolerance = 200.0 # Called when the node enters the scene tree for the first time. func _ready(): body_entered.connect(_on_area_entered) body_exited.connect(_on_area_exit) func _process(delta): if body_within != null: if (get_parent_node_3d().quaternion * velocity).dot(body_within.linear_velocity) > tolerance : body_within.linear_velocity = get_parent_node_3d().quaternion * velocity func _on_area_entered(body : RigidBody3D) -> void: print("Entered!") body_within = body func _on_area_exit(body : RigidBody3D) -> void: print("Exit!") body_within = null