28 lines
1.2 KiB
GDScript
28 lines
1.2 KiB
GDScript
extends VBoxContainer
|
|
|
|
@onready var panel = $VehicleStatusPanel
|
|
var elapsed := 0.0
|
|
|
|
func _ready() -> void:
|
|
$Controls/State.item_selected.connect(_select_state)
|
|
$Controls/Contrast.toggled.connect(func(high: bool) -> void:
|
|
theme = load("res://themes/theme_highcontrast.tres" if high else "res://themes/theme.tres")
|
|
)
|
|
$Controls/Pulse.toggled.connect(func(enabled: bool) -> void: panel.pulse_alerts = enabled)
|
|
_select_state(0)
|
|
|
|
func _select_state(index: int) -> void:
|
|
match index:
|
|
0: panel.set_status("STATIONKEEP", 0, "", "Position hold active", "Thrusters enabled")
|
|
1: panel.set_status("Supply voltage low", 1, "PWR-012", "46.5 V · below 48 V nominal", "Check topside supply and tether load")
|
|
2: panel.set_status("Enclosure overtemperature", 2, "TMP-003", "68 °C · trip 65 °C · thrusters inhibited", "Inspect cooling before reset")
|
|
3: panel.set_status("Enclosure overtemperature", 2, "TMP-003", "68 °C · trip 65 °C · thrusters inhibited", "Inspect cooling before reset")
|
|
|
|
func _process(delta: float) -> void:
|
|
elapsed += delta
|
|
match $Controls/State.selected:
|
|
0: panel.set_telemetry(48.0, 18.2 + sin(elapsed) * 0.6, 874 + sin(elapsed) * 29, 34)
|
|
1: panel.set_telemetry(46.5, 25.5, 1186, 42)
|
|
2: panel.set_telemetry(48.0, 2.1, 101, 68)
|
|
3: pass
|