TowerDefense/Towers/TowerListResource.gd
2025-08-29 22:29:13 +02:00

21 lines
661 B
GDScript

@tool
extends Resource
class_name TowerListResource
@export var towers : Array[TowerResource] : set = towersHasChanged
func getTowerSceneById(towerType : Tower.TYPES) -> PackedScene :
var towerIndex := towers.find_custom(func(towerResource): return towerResource.towerType == towerType)
return towers[towerIndex].towerScene
func towersHasChanged(value : Array) -> void:
if Engine.is_editor_hint():
if value.back() == null:
value.pop_back()
value.append(TowerResource.new())
for towerResource in towers:
if not towerResource.changed.is_connected(emit_changed):
towerResource.changed.connect(emit_changed)
emit_changed()
towers = value