fix: improve SCUM map playback filters

This commit is contained in:
npc0-hue
2026-09-20 10:45:32 +08:00
parent 60d479db71
commit 312804c55e
32 changed files with 770 additions and 293 deletions
@@ -36,4 +36,17 @@ export type SCUMTrajectoryPoint = { occurredAt: string; subjectId: string; subje
export type SCUMTrajectory = { subjectId: string; subjectType: "player" | "vehicle"; points: SCUMTrajectoryPoint[]; provenance: SCUMMigrationProvenance };
export type SCUMTrajectoryCollection = { available: boolean; reason?: string; trajectories: SCUMTrajectory[] };
export type MapViewState = { zoom: number; x: number; y: number };
export type MapPlaybackState = { playing: boolean; value: number; speed: number; startedAt: number; startValue: number };
export type MapTimeWindow = { from: number; to: number; label: string };
export type MapTrackPoint = { key: string; row: Record<string, unknown>; x: number; y: number; time: number; riding: boolean; rideCode: string };
export type MapTrackSegment = { key: string; mode: "walk" | "ride"; points: MapTrackPoint[] };
export type MapTrack = { key: string; kind: "player" | "vehicle"; label: string; color: string; points: MapTrackPoint[]; walk: number; ride: number; from: number; to: number; vehicles: string[] };
export type MapPlaybackFrame = { tracks: MapTrack[]; span: { from: number; to: number } };
export type MapSceneData = MapPlaybackFrame & {
points: Record<string, unknown>[]; settings?: Record<string, unknown>; bounds: Record<string, unknown>; window: MapTimeWindow;
catalog: Map<string, string>; users: Array<{ key: string; label: string; count: number }>; playerLabels: Map<string, string>;
segments: Map<string, MapTrackSegment[]>;
};
export type SCUMFeatureWorkspace = { defaultDirectoryKey?: string; directories?: SCUMLogicalDirectory[]; files?: SCUMLogicalFile[]; configFields?: SCUMConfigField[]; map?: { mapId: string; mapVersion: string; precision: number; sampleDistance: number; sampleIntervalSeconds: number; retentionSeconds: number } };