Files
Dawn-Godot/overworld/entity/EntityInteractingArea.gd
2026-01-07 21:08:05 -06:00

33 lines
923 B
GDScript

class_name EntityInteractingArea extends Area3D
const Entity = preload("res://overworld/entity/Entity.gd")
var interactableAreas:Array[EntityInteractableArea] = []
@export var entity:Entity
func hasInteraction() -> bool:
return true
func interact() -> void:
for area in interactableAreas:
area.onInteract()
func _enter_tree() -> void:
self.area_entered.connect(_onAreaEntered)
self.area_exited.connect(_onAreaExited)
func _exit_tree() -> void:
self.area_entered.disconnect(_onAreaEntered)
self.area_exited.disconnect(_onAreaExited)
func _onAreaEntered(area:Area3D) -> void:
if area is EntityInteractableArea:
if area.entity == entity:
return
if !area.isInteractable():
return
print("EntityInteractingArea: Area Entered")
interactableAreas.append(area)
func _onAreaExited(area:Area3D) -> void:
print("EntityInteractingArea: Area Exited")
interactableAreas.erase(area)