extends Node # ## Exports #@export var player: PlayerBody # ## Private Variables #var _zones_in_range: Array[InteractiveLoadingZone] = [] # ## Private Methods #func _ready() -> void: #player.interact_scanner.area_entered.connect(_on_interact_scanned) #player.interact_scanner.area_exited.connect(_on_interact_unscanned) #player.interact_scanner.InteractionActionTriggered.connect(_on_interact_triggered) # # #func _on_interact_scanned(area: Area2D) -> void: #if area is not InteractiveLoadingZone or _zones_in_range.has(area): #return # #_zones_in_range.append(area) # # #func _on_interact_unscanned(area: Area2D) -> void: #if area is not InteractiveLoadingZone or !_zones_in_range.has(area): #return # #_zones_in_range.erase(area) # # #func _on_interact_triggered() -> void: #if _zones_in_range.is_empty(): #return # #var zone := _zones_in_range[0] #zone.Activate()