Replace the single-entry Pong flow with a menu launcher, a per-client API demo on :8081/ws with stream controls and tap flash feedback, and bump the viewport to 1920×1080. Co-authored-by: Cursor <cursoragent@cursor.com>
167 lines
4.9 KiB
Plaintext
167 lines
4.9 KiB
Plaintext
[gd_scene format=3 uid="uid://clxuqui2bti65"]
|
|
|
|
[ext_resource type="Script" path="res://scripts/demo.gd" id="1_demo"]
|
|
|
|
[node name="Demo" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
script = ExtResource("1_demo")
|
|
|
|
[node name="Background" type="ColorRect" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
mouse_filter = 2
|
|
color = Color(0.08, 0.09, 0.14, 1)
|
|
|
|
[node name="UiLayer" type="CanvasLayer" parent="."]
|
|
|
|
[node name="TopBar" type="HBoxContainer" parent="UiLayer"]
|
|
anchors_preset = 10
|
|
anchor_right = 1.0
|
|
offset_left = 16.0
|
|
offset_top = 12.0
|
|
offset_right = -16.0
|
|
offset_bottom = 52.0
|
|
grow_horizontal = 2
|
|
theme_override_constants/separation = 16
|
|
|
|
[node name="BackButton" type="Button" parent="UiLayer/TopBar"]
|
|
custom_minimum_size = Vector2(100, 0)
|
|
layout_mode = 2
|
|
text = "Menü"
|
|
|
|
[node name="Title" type="Label" parent="UiLayer/TopBar"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
|
theme_override_font_sizes/font_size = 22
|
|
text = "API Demo"
|
|
|
|
[node name="UrlLabel" type="Label" parent="UiLayer/TopBar"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_colors/font_color = Color(0.55, 0.6, 0.7, 1)
|
|
theme_override_font_sizes/font_size = 13
|
|
text = "ws://localhost:8081/ws"
|
|
|
|
[node name="StatusLabel" type="Label" parent="UiLayer/TopBar"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
|
theme_override_font_sizes/font_size = 13
|
|
text = "Verbinde…"
|
|
|
|
[node name="MainSplit" type="HSplitContainer" parent="UiLayer"]
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 16.0
|
|
offset_top = 60.0
|
|
offset_right = -16.0
|
|
offset_bottom = -12.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
split_offset = 520
|
|
|
|
[node name="LeftPanel" type="VBoxContainer" parent="UiLayer/MainSplit"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
size_flags_vertical = 3
|
|
theme_override_constants/separation = 12
|
|
|
|
[node name="Toolbar" type="HBoxContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 12
|
|
|
|
[node name="ListClientsBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
|
custom_minimum_size = Vector2(140, 40)
|
|
layout_mode = 2
|
|
text = "Clients laden"
|
|
|
|
[node name="IntervalLabel" type="Label" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
|
layout_mode = 2
|
|
text = "interval_ms:"
|
|
|
|
[node name="IntervalSpin" type="SpinBox" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
|
custom_minimum_size = Vector2(90, 0)
|
|
layout_mode = 2
|
|
min_value = 1.0
|
|
max_value = 10000.0
|
|
value = 16.0
|
|
|
|
[node name="ClientsScroll" type="ScrollContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
horizontal_scroll_mode = 0
|
|
|
|
[node name="ClientsList" type="VBoxContainer" parent="UiLayer/MainSplit/LeftPanel/ClientsScroll"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_constants/separation = 8
|
|
|
|
[node name="EmptyHint" type="Label" parent="UiLayer/MainSplit/LeftPanel/ClientsScroll/ClientsList"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.55, 0.6, 0.7, 1)
|
|
theme_override_font_sizes/font_size = 13
|
|
autowrap_mode = 3
|
|
text = "„Clients laden“ drücken, pro Client Accel/Tap konfigurieren, dann Stream starten."
|
|
|
|
[node name="StreamBar" type="HBoxContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 12
|
|
|
|
[node name="StartStreamBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/StreamBar"]
|
|
custom_minimum_size = Vector2(0, 48)
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_font_sizes/font_size = 16
|
|
disabled = true
|
|
text = "Stream starten"
|
|
|
|
[node name="StopStreamBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/StreamBar"]
|
|
custom_minimum_size = Vector2(0, 48)
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_font_sizes/font_size = 16
|
|
disabled = true
|
|
text = "Stream stoppen"
|
|
|
|
[node name="LogPanel" type="VBoxContainer" parent="UiLayer/MainSplit"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
size_flags_vertical = 3
|
|
theme_override_constants/separation = 8
|
|
|
|
[node name="LogHeader" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
|
theme_override_font_sizes/font_size = 14
|
|
text = "Log"
|
|
|
|
[node name="LogOutput" type="TextEdit" parent="UiLayer/MainSplit/LogPanel"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
theme_override_font_sizes/font_size = 12
|
|
editable = false
|
|
wrap_mode = 1
|
|
|
|
[node name="StreamHeader" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
|
theme_override_font_sizes/font_size = 14
|
|
text = "Live-Daten (alle Clients)"
|
|
|
|
[node name="StreamOutput" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
|
custom_minimum_size = Vector2(0, 160)
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.75, 0.85, 0.95, 1)
|
|
theme_override_font_sizes/font_size = 13
|
|
autowrap_mode = 3
|
|
text = "—"
|