@tool extends Button class_name GuiButton var towerPrice : int var towerType : Tower.TYPE = Tower.TYPE.NONE @export var texture : Texture2D : set(value): texture = value $TextureRect.texture = texture func _ready() -> void: if towerType == Tower.TYPE.NONE: return toggle_mode = true add_theme_stylebox_override("pressed", GameStyleBoxFlat.createWithColor(GameColor.COLOR.SELECTED)) EventBus.tower_changed.connect(towerChanged) EventBus.tower_selected.connect(func(_type): set_pressed_no_signal(_type == towerType)) func buttonToggled(state : bool) -> void: if towerType != Tower.TYPE.NONE: EventBus.tower_selected.emit(towerType if state else Tower.TYPE.NONE) func towerChanged(tower : Tower) -> void : if tower.type == towerType && tower.builded: $EnergyBar.value = tower.energy $EnergyBar.max_value = tower.max_energy $EnergyBar.visible = tower.builded