beta-1.3/restructure-files (#2)
Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
extends Node
|
||||
|
||||
# Exports
|
||||
@export var player: PlayerCharacter
|
||||
|
||||
# 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()
|
||||
Reference in New Issue
Block a user