22 lines
704 B
GDScript
22 lines
704 B
GDScript
@tool
|
|
extends Node3D
|
|
class_name Gauge3D
|
|
|
|
const MAX_PROGRESS_BAR_SCALE = 4.25
|
|
const CYLINDER_HEIGHT = 4.8
|
|
|
|
@export var progress := 0. : set = set_progress
|
|
|
|
func _ready():
|
|
if progress != null:
|
|
%ProgressBar.scale.x = progress * MAX_PROGRESS_BAR_SCALE
|
|
|
|
|
|
func set_progress(_progress : float):
|
|
progress = _progress
|
|
if is_node_ready() and progress != null:
|
|
var capped_progress = max(0.,min(1., progress))
|
|
%ProgressBar3D.scale.y = capped_progress * %ProgressBar3D.scale.x
|
|
var bar_length = CYLINDER_HEIGHT
|
|
%ProgressBar3D.position.z = - bar_length * capped_progress + bar_length
|
|
# %ProgressBar.scale.x = max(0.,min(1., progress)) * MAX_PROGRESS_BAR_SCALE |