@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