35 lines
863 B
GDScript
35 lines
863 B
GDScript
extends Resource
|
|
|
|
## Discrete follow distances (meters), **near → far** (ascending). Index **0** = closest.
|
|
## No `class_name` — see repo Godot headless / CI notes.
|
|
@export var band_distances: PackedFloat32Array = PackedFloat32Array([25.709])
|
|
@export var default_band_index: int = 0
|
|
|
|
|
|
func band_count() -> int:
|
|
return band_distances.size()
|
|
|
|
|
|
## **True** when every entry is **> 0**.
|
|
## Empty arrays are vacuously true; callers also check [method band_count].
|
|
func all_band_distances_positive() -> bool:
|
|
for i in range(band_distances.size()):
|
|
if band_distances[i] <= 0.0:
|
|
return false
|
|
return true
|
|
|
|
|
|
func clamp_index(i: int) -> int:
|
|
var n := band_count()
|
|
if n == 0:
|
|
return 0
|
|
return clampi(i, 0, n - 1)
|
|
|
|
|
|
func distance_at(index: int) -> float:
|
|
var n := band_count()
|
|
if n == 0:
|
|
return 0.0
|
|
var ci := clamp_index(index)
|
|
return band_distances[ci]
|