Files
MaidEngine/scripts/ui/contiguous_bar.gd
2026-04-11 23:03:00 -04:00

35 lines
623 B
GDScript

@tool
class_name ContiguousBar extends Control
@onready var fill: NinePatchRect = $Fill
@export var value: int:
set(v):
value = v
_refresh()
@export var max_value: int:
set(v):
max_value = v
_refresh()
func _ready() -> void:
_refresh()
func _refresh() -> void:
if fill == null:
return
var ratio := 0.0
if max_value > 0:
ratio = clampf(float(value) / float(max_value), 0.0, 1.0)
fill.anchor_top = 0.0
fill.anchor_bottom = 1.0
fill.anchor_right = 1.0
fill.anchor_left = 1.0 - ratio
fill.offset_top = 1.0
fill.offset_bottom = -1.0
fill.offset_right = -1.0
fill.offset_left = 2.0 * ratio - 1.0