TowerDefense/Towers/TowerListResource.gd

22 lines
660 B
GDScript3
Raw Normal View History

2025-08-29 20:07:36 +02:00
@tool
extends Resource
class_name TowerListResource
@export var towers : Array[TowerResource] : set = towersHasChanged
func getTowerSceneById(towerType : Tower.TYPE) -> PackedScene :
2025-08-29 20:07:36 +02:00
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()
2025-08-29 20:07:36 +02:00
towers = value