Files
Dawn-Godot/scripts/InteractableArea.gd
2025-07-04 00:03:54 -05:00

28 lines
753 B
GDScript

class_name InteractableArea extends Area3D
signal interactEvent(playerEntity:Player)
signal interactable(playerEntity:Player)
signal notInteractable(playerEntity:Player)
func _enter_tree() -> void:
area_entered.connect(onAreaEntered)
area_exited.connect(onAreaExited)
func _exit_tree() -> void:
area_entered.disconnect(onAreaEntered)
area_exited.disconnect(onAreaExited)
func onAreaEntered(area:Area3D) -> void:
if !area.get_parent() or !(area.get_parent() is Player):
return
var player:Player = area.get_parent() as Player
interactable.emit(player)
func onAreaExited(area:Area3D) -> void:
if !area.get_parent() or !(area.get_parent() is Player):
return
var player:Player = area.get_parent() as Player
notInteractable.emit(player)