extends Area3D @export var group: String var activated_lockout = false signal state_changed(pressed: bool) signal activated_once() func _on_body_entered(body: Node3D) -> void: if body.is_in_group(group): state_changed.emit(true) if not activated_lockout: activated_lockout = true activated_once.emit() func _on_body_exited(body: Node3D) -> void: if body.is_in_group(group): state_changed.emit(false)