7 lines
1.9 KiB
JSON
7 lines
1.9 KiB
JSON
{
|
|
"description": "Asset pipeline controller monitoring texture processing, model optimization, audio compression, and platform-specific variants. Tracks asset processing queue status, file size optimizations, LOD generation progress, and compression ratios across different asset types for game development workflows.",
|
|
"statusLine": {
|
|
"type": "command",
|
|
"command": "python3 -c \"import json, sys, os, glob; data=json.load(sys.stdin); model=data['model']['display_name']; current_dir=data['workspace']['current_dir']; os.chdir(current_dir); def get_file_sizes(pattern): files = glob.glob(pattern, recursive=True); return len(files), sum(os.path.getsize(f) for f in files if os.path.isfile(f)) // (1024*1024); textures = get_file_sizes('Assets/**/*.png') if os.path.exists('Assets') else get_file_sizes('**/*.png'); models = get_file_sizes('Assets/**/*.fbx') if os.path.exists('Assets') else get_file_sizes('**/*.fbx'); audio = get_file_sizes('Assets/**/*.wav') if os.path.exists('Assets') else get_file_sizes('**/*.wav'); tex_status = f'🖼️{textures[0]}({textures[1]}MB)' if textures[0] > 0 else '🖼️None'; model_status = f'🎯{models[0]}({models[1]}MB)' if models[0] > 0 else '🎯None'; audio_status = f'🔊{audio[0]}({audio[1]}MB)' if audio[0] > 0 else '🔊None'; processing_status = '⚡Ready'; if textures[1] > 500: processing_status = '🔴Heavy'; elif textures[1] > 100: processing_status = '🟡Med'; else: processing_status = '🟢Light'; compression_status = '📦Auto'; if os.path.exists('Assets/StreamingAssets') or os.path.exists('StreamingAssets'): compression_status = '📦Stream'; total_assets = textures[0] + models[0] + audio[0]; pipeline_health = '✅Optimal' if total_assets < 1000 else '⚠️Large' if total_assets < 2000 else '🔴Massive'; dir_name = os.path.basename(current_dir); print(f'[{model}] {tex_status} | {model_status} | {audio_status} | {processing_status} | {compression_status} | {pipeline_health}')\""
|
|
}
|
|
} |