完善样式系统与调试链路底座

This commit is contained in:
2026-03-30 18:19:05 +08:00
parent 2c0fd4c549
commit 3b9117427e
40 changed files with 7526 additions and 389 deletions

View File

@@ -4,6 +4,9 @@ import { type LonLatPoint, type MapCalibration } from '../../utils/projection'
import { type TileZoomBounds } from '../../utils/remoteMapConfig'
import { type OrienteeringCourseData } from '../../utils/orienteeringCourse'
import { type AnimationLevel } from '../../utils/animationLevel'
import { type ControlPointStyleEntry, type CourseLegStyleEntry, type CourseStyleConfig } from '../../game/presentation/courseStyleConfig'
import { type GpsMarkerStyleConfig } from '../../game/presentation/gpsMarkerStyleConfig'
import { type TrackDisplayMode, type TrackVisualizationConfig } from '../../game/presentation/trackStyleConfig'
export interface MapScene {
tileSource: string
@@ -25,12 +28,24 @@ export interface MapScene {
previewScale: number
previewOriginX: number
previewOriginY: number
trackMode: TrackDisplayMode
trackStyleConfig: TrackVisualizationConfig
track: LonLatPoint[]
gpsPoint: LonLatPoint | null
gpsMarkerStyleConfig: GpsMarkerStyleConfig
gpsHeadingDeg: number | null
gpsHeadingAlpha: number
gpsCalibration: MapCalibration
gpsCalibrationOrigin: LonLatPoint
course: OrienteeringCourseData | null
cpRadiusMeters: number
gameMode: 'classic-sequential' | 'score-o'
courseStyleConfig: CourseStyleConfig
controlScoresBySequence: Record<number, number>
controlStyleOverridesBySequence: Record<number, ControlPointStyleEntry>
startStyleOverrides: ControlPointStyleEntry[]
finishStyleOverrides: ControlPointStyleEntry[]
legStyleOverridesByIndex: Record<number, CourseLegStyleEntry>
controlVisualMode: 'single-target' | 'multi-target'
showCourseLegs: boolean
guidanceLegAnimationEnabled: boolean
@@ -60,6 +75,7 @@ export interface MapRenderer {
attachCanvas(canvasNode: any, width: number, height: number, dpr: number, labelCanvasNode?: any): void
updateScene(scene: MapScene): void
setAnimationPaused(paused: boolean): void
getGpsLogoDebugInfo?(): { status: string; url: string; resolvedSrc: string }
destroy(): void
}