diff --git a/src/lib/components/CenterStage.svelte b/src/lib/components/CenterStage.svelte index 401777f..5a316a1 100644 --- a/src/lib/components/CenterStage.svelte +++ b/src/lib/components/CenterStage.svelte @@ -5,6 +5,7 @@ import { onMount } from "svelte"; import { fly } from "svelte/transition"; import ConfigPanel from "$lib/components/ConfigPanel.svelte"; + import NeonBreakoutArena from "$lib/components/NeonBreakoutArena.svelte"; import PressureMatrixViewer from "$lib/components/PressureMatrixViewer.svelte"; import SignalChart from "$lib/components/SignalChart.svelte"; import SummaryCurve from "$lib/components/SummaryCurve.svelte"; @@ -12,12 +13,14 @@ HudColorMapOption, HudSignalPanel, HudSummary, + LocaleCode, PressureColorMapPreset, StageStatusTone } from "$lib/types/hud"; export let title = ""; export let hint = ""; + export let locale: LocaleCode = "zh-CN"; export let statusText = ""; export let statusTone: StageStatusTone = "idle"; export let leftPanels: HudSignalPanel[] = []; @@ -54,6 +57,7 @@ export let replayProgress = 0; export let replayFileName = ""; export let replayFrameInfo = ""; + export let showPrecisionTestPanel = false; let stagePlaneEl: HTMLDivElement | undefined; let topOverlayEl: HTMLDivElement | undefined; @@ -81,6 +85,8 @@ $: replaySide = summarySide === "left" ? "right" : "left"; $: replayToggleButtonText = replayIsPlaying ? replayPauseLabel : replayPlayLabel; $: replayProgressPercent = Math.round(Math.min(1, Math.max(0, replayProgress)) * 100); + $: splitMatrixTitle = locale === "zh-CN" ? "数字矩阵" : "Matrix"; + $: splitMatrixHint = locale === "zh-CN" ? "实时压力数据 / 数字矩阵" : "Live pressure matrix"; function toPxNumber(rawValue: string): number { const value = Number.parseFloat(rawValue); @@ -181,31 +187,70 @@ bind:this={stagePlaneEl} style="--panel-zone-top-dyn: {panelZoneTopPx}px; --rail-scale-left: {leftRailScale}; --rail-scale-right: {rightRailScale};" > -