36 lines
887 B
GDScript
36 lines
887 B
GDScript
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()
|