28 lines
534 B
GDScript
28 lines
534 B
GDScript
class_name PlayerInteraction extends Node
|
|
|
|
@export var interactableArea:Area3D
|
|
@export var player:CharacterBody3D
|
|
|
|
func canInteract() -> bool:
|
|
if PAUSE.isMovementPaused():
|
|
return false
|
|
return true
|
|
|
|
func interact() -> void:
|
|
if !canInteract():
|
|
return
|
|
|
|
var overlapping = interactableArea.get_overlapping_areas()
|
|
var interactable: InteractableArea = null
|
|
|
|
for node in overlapping:
|
|
if !(node is InteractableArea):
|
|
continue
|
|
interactable = node
|
|
break
|
|
|
|
if !interactable:
|
|
return
|
|
|
|
interactable.interactEvent.emit(player)
|