Files
uniqlone/scenes/temperature_display/temperature_display.gd
T
2026-06-13 16:08:36 -04:00

72 lines
1.5 KiB
GDScript

@tool
extends HBoxContainer
@export var show_celsius: bool = true:
set = set_show_celsius
@export var show_fahrenheit: bool = true:
set = set_show_fahrenheit
@export var degrees_celsius: float = 0.0:
set = set_degrees_celsius,
get = get_degrees_celsius
@export var degrees_fahrenheit: float = 0.0:
set = set_degrees_fahrenheit,
get = get_degrees_fahrenheit
@export var temperature_unknown: bool = true:
set = set_temperature_unknown
var _c: float = 0.0
var _f: float = 0.0
func _ready():
_check_slash()
_update_text()
func set_temperature_unknown(new: bool):
temperature_unknown = new
_update_text()
func set_show_celsius(new: bool):
show_celsius = new
if has_node("celsius"):
$celsius.visible = new
$degrees.visible = new
_check_slash()
func set_show_fahrenheit(new: bool):
show_fahrenheit = new
if has_node("fahrenheit"):
$fahrenheit.visible = new
$degrees2.visible = new
_check_slash()
func set_degrees_celsius(new: float):
_c = new
_f = Constants.celsius_to_fahrenheit(new)
_update_text()
func get_degrees_celsius() -> float:
return _c
func set_degrees_fahrenheit(new: float):
_f = new
_c = Constants.fahrenheit_to_celsius(new)
_update_text()
func get_degrees_fahrenheit() -> float:
return _f
func _update_text():
if !has_node("celsius"):
return
if temperature_unknown:
$celsius.text = '?'
$fahrenheit.text = '?'
else:
$celsius.text = str(snapped(_c, 1))
$fahrenheit.text = str(snapped(_f, 1))
func _check_slash():
if !has_node("slash"):
return
$slash.visible = show_celsius and show_fahrenheit