34 lines
936 B
GDScript
34 lines
936 B
GDScript
extends MarginContainer
|
|
|
|
var min_rotation = -85
|
|
var max_rotation = 75
|
|
|
|
onready var rpm_needle = $HBoxContainer/RPMGauge/RPMNeedle
|
|
onready var rpm_label = $HBoxContainer/RPMGauge/Panel/RPMLabel
|
|
onready var speed_needle = $HBoxContainer/SpeedGauge/SpeedNeedle
|
|
onready var speed_label = $HBoxContainer/SpeedGauge/Panel/SpeedLabel
|
|
onready var gear_label = $HBoxContainer/GearLabel
|
|
|
|
|
|
func _get_rotation(percent: float) -> float:
|
|
return min_rotation + (max_rotation - min_rotation) * percent
|
|
|
|
|
|
func update_speed(speed: int, speed_percent: float) -> void:
|
|
speed_needle.rect_rotation = _get_rotation(speed_percent)
|
|
speed_label.text = str(speed)
|
|
|
|
|
|
func update_rpm(rpm: int, rpm_percent: float) -> void:
|
|
rpm_needle.rect_rotation = _get_rotation(rpm_percent)
|
|
rpm_label.text = str(rpm)
|
|
|
|
|
|
func update_gear(gear: int) -> void:
|
|
if gear == -1:
|
|
gear_label.text = "R"
|
|
elif gear == 0:
|
|
gear_label.text = "N"
|
|
else:
|
|
gear_label.text = str(gear)
|