Whatever lol
This commit is contained in:
33
overworld/entity/EntityInteractingArea.gd
Normal file
33
overworld/entity/EntityInteractingArea.gd
Normal file
@@ -0,0 +1,33 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user