@tool extends HBoxContainer class_name EnergyInfo @export var wanted_energy = 0 @export var wanted_max_energy = 0 var energy := 0 var max_energy := 0 @export_tool_button("Update", "Callable") var update_action = func(): update(wanted_energy, wanted_max_energy) func _ready(): %EnergyAnimationPlayer.disappear() func update( _energy : int, _max_energy : int, with_animation := true, ): var changed = (energy != _energy or max_energy != _max_energy) if changed: print("Energy change with %d/%d" % [_energy, _max_energy]) energy = _energy max_energy = _max_energy var energy_count_text = "[b]%d[/b] / %d" % [energy, max_energy] if with_animation: %EnergyAnimationPlayer.bounce() %EnergyCount.text = energy_count_text modulate = Color.WHITE if energy > 0 else Color.RED func appear(): await %EnergyAnimationPlayer.appear() func disappear(): await %EnergyAnimationPlayer.disappear()