SchildDerStaerke/scripts/interaction_area.gd

33 lines
733 B
GDScript

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)