33 lines
733 B
GDScript
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)
|