import React from 'react'; import { Film } from 'lucide-react'; import { TypewriterText } from './common/TypewriterText'; import { ContentCard } from './common/ContentCard'; import { SkeletonCard } from './common/SkeletonCard'; import { IconLoading } from './common/IconLoading'; import { ProgressBar } from './common/ProgressBar'; interface ProductionContent { composition?: Array<{ id: string; stableId: string; element: string; details: string; status: string; progress: number; }>; lighting?: { stableId: string; ambient: string; artificial: string; mood: string; progress: number; }; performance?: Array<{ id: string; stableId: string; aspect: string; details: string; quality: string; progress: number; }>; sceneDetails?: { stableId: string; textures: string; objects: string; atmosphere: string; progress: number; }; technical?: Array<{ param: string; value: string; status: string; }>; renderOutput?: { currentFrame: number; totalFrames: number; quality: string; estimated: string; }; } interface VisualDirectorProps { currentContent: ProductionContent; isPlaying: boolean; } const VisualDirector: React.FC = ({ currentContent, isPlaying }) => { return (
{/* 左侧:画面构成和光影氛围 */}
{/* 画面构成要素 */}

Element of composition

{currentContent.composition && currentContent.composition.length > 0 ? ( currentContent.composition.map((comp) => (
{comp.element} {comp.status}
)) ) : ( Array.from({length: 3}, (_, i) => ( )) )}
{/* 光影氛围营造 */}

Lighting atmosphere

{currentContent.lighting ? (
Environment light design
Artificial light layout
Emotional atmosphere
) : (
{Array.from({length: 3}, (_, i) => ( ))}
)}
{/* 右侧:角色表演和技术参数 */}
{/* 角色表演捕捉 */}

Character performance capture

{currentContent.performance ? ( currentContent.performance.map((perf) => (
{perf.aspect}
{perf.quality}
)) ) : ( Array.from({length: 3}, (_, i) => ( )) )}
{/* 场景细节渲染 */}

Scene detail rendering

{currentContent.sceneDetails ? (
Material texture
Object details
Atmospheric effect
) : (
{Array.from({length: 3}, (_, i) => ( ))}
)}
{/* 技术参数控制 */}

Technical parameter control

{currentContent.technical ? ( <>
{currentContent.technical.map((tech, index) => (
{tech.param} {tech.value} {tech.status}
))}
{/* 渲染进度 */} {currentContent.renderOutput && (
{Math.round((currentContent.renderOutput.currentFrame / currentContent.renderOutput.totalFrames) * 100)}%
Rendering completed
Frame: {currentContent.renderOutput.currentFrame}/{currentContent.renderOutput.totalFrames}
Quality: {currentContent.renderOutput.quality} | {currentContent.renderOutput.estimated}
)} ) : ( <>
{Array.from({length: 4}, (_, i) => ( ))}
)}
); }; export default VisualDirector;