33 lines
1.5 KiB
GDScript
33 lines
1.5 KiB
GDScript
extends VBoxContainer
|
|
|
|
@onready var console = $ConsolePanel
|
|
var _log_index := 0
|
|
|
|
func _ready() -> void:
|
|
console.command_requested.connect(_demo_command)
|
|
for id in ["rov", "host", "logs", "server"]:
|
|
console.set_connection(id, true, "SIMULATED · " + id)
|
|
console.append_output("rov", "[demo] ROV shell ready. Try help, pwd or status.\n")
|
|
console.append_output("host", "[demo] Host shell ready. Try help or pwd.\n")
|
|
console.append_output("server", "[demo] Server shell ready. Try help or status.\n")
|
|
$Controls/Contrast.toggled.connect(func(high: bool) -> void:
|
|
theme = load("res://themes/theme_highcontrast.tres" if high else "res://themes/theme.tres")
|
|
)
|
|
$Controls/Feed.toggled.connect(func(enabled: bool) -> void: $LogTimer.paused = not enabled)
|
|
$LogTimer.timeout.connect(_append_log)
|
|
_append_log()
|
|
|
|
func _demo_command(id: String, command: String) -> void:
|
|
match command.strip_edges():
|
|
"help": console.append_output(id, "Demo commands: help, status, pwd, clear\n")
|
|
"status": console.append_output(id, "[demo] Vehicle ready · stationkeep · no live transport\n")
|
|
"pwd": console.append_output(id, "/" + id + " (simulated)\n")
|
|
"clear": console.session(id).clear_output()
|
|
_: console.append_output(id, "[demo] Received: " + command + "\n")
|
|
|
|
func _append_log() -> void:
|
|
_log_index += 1
|
|
var level := "WARN" if _log_index % 5 == 0 else "INFO"
|
|
var message := "sample telemetry delayed" if level == "WARN" else "sample telemetry received"
|
|
console.append_output("logs", "%04d %s rov-server: %s\n" % [_log_index, level, message])
|