28 lines
753 B
GDScript
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)
|