@tool extends Button class_name GuiButton var towerType : Tower.TYPE : set(value): towerType = value if towerType != Tower.TYPE.NONE: EventBus.energy_has_changed.connect(changeEnergy) EventBus.tower_builded.connect(towerChanged) @export var hasEnergyBar : bool = false : set(value): hasEnergyBar = value $EnergyBar.visible = hasEnergyBar @export var texture : Texture2D : set(value): texture = value $TextureRect.texture = texture func buttonToggled(state : bool) -> void: if towerType != Tower.TYPE.NONE: EventBus.tower_selected.emit(towerType if state else Tower.TYPE.NONE) func changeEnergy(tower : Tower) -> void: if tower.tower_type == towerType: $EnergyBar.value = tower.energy func towerChanged(tower : Tower) -> void : if tower.tower_type == towerType: $EnergyBar.max_value = tower.max_energy