class_name InteractionArea extends Area3D const DEFAULT_ACTION: StringName = &"interact" @export var action_name: StringName = DEFAULT_ACTION # Neuer klarer Name var on_interact: Callable = func() -> void: pass # Rückwärtskompatibles Alias für bestehenden Code (z. B. interaction_area.interact = _on_interact) var interact: Callable: set(value): on_interact = value get: return on_interact func set_interact_callback(callback: Callable) -> void: on_interact = callback func _on_body_entered(_body: Node3D) -> void: InteractionManager.register_area(self) func _on_body_exited(_body: Node3D) -> void: InteractionManager.unregister_area(self) func _exit_tree() -> void: InteractionManager.unregister_area(self)