29 lines
845 B
GDScript
29 lines
845 B
GDScript
@tool
|
|
extends MarginContainer
|
|
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 update(
|
|
_energy : int,
|
|
_max_energy : int,
|
|
_with_animation := true,
|
|
):
|
|
var changed = (energy != _energy or max_energy != _max_energy)
|
|
if changed:
|
|
energy = _energy
|
|
max_energy = _max_energy
|
|
var energy_count_text = "[b]%d[/b] / %d" % [energy, max_energy]
|
|
|
|
# if with_animation:
|
|
# %EnergyAnimationPlayer.bounce()
|
|
%EnergyInfo3d.energy = energy
|
|
%EnergyInfo3d.max_energy = max_energy
|
|
%EnergyCount.text = energy_count_text
|
|
%EnergyCount.modulate = Color.WHITE if energy > 0 else Color.RED |