TowerDefense/Towers/Scripts/Resource/TowerListResource.gd
2025-09-01 11:18:44 +02:00

21 lines
665 B
GDScript

@tool
extends Resource
class_name TowerListResource
@export var towers : Array[TowerResource] : set = towersHasChanged
func getTowerSceneById(towerType : Tower.TYPE) -> PackedScene :
var towerIndex : int = 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