TowerDefense/UI/gui_button.gd
Varylios 23e0c03fc0 feat: add autoloader for menu level buttons
fix: wave not restartable when winned
clean: remove useless files + warnings
2025-09-03 03:44:44 +02:00

33 lines
851 B
GDScript

@tool
extends Button
class_name GuiButton
var towerType : Tower.TYPE :
set(value):
towerType = value
if towerType != Tower.TYPE.NONE:
EventBus.energy_has_changed.connect(towerChanged)
EventBus.tower_builded.connect(towerChanged)
EventBus.tower_selected.connect(func(type): set_pressed_no_signal(type == towerType))
@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 towerChanged(tower : Tower) -> void :
if tower.tower_type == towerType:
$EnergyBar.value = tower.energy
$EnergyBar.max_value = tower.max_energy