Hrm. That may be tricky.
HlExtract probably won't do it, because the skybox isn't already embedded. Vbspinfo may not show it's usage, because it's not a "world texture" being used.
To accomplish that, the best option might be to require the original .VMF file and parse
that... And a VMF parser would be big enough to be a separate project. (If still a more straightforward task than a BSP parser.) I'll keep it in mind, though.
_______________
Edit: OK, I may have been too pessimistic. It seems that in the .bsp it may be possible to extract just the entity data, which would include "worldspawn" like so:
Code:
{
"world_maxs" "256 6488 976"
"world_mins" "-3296 -2400 64"
"skyname" "sky_tf2_04"
"maxpropscreenwidth" "-1"
"detailvbsp" "detail_trainyard.vbsp"
"detailmaterial" "detail/detailsprites_trainyard"
"classname" "worldspawn"
"mapversion" "344"
"hammerid" "1"
}
Still more work, but something far simpler than a full blown VMF lexer/parser. (Which would need to apply visgroup settings to know what entities were truly "there".)
Bonus: I could pull ambient_generic wav data
and custom detail sprite files
It certainly won't make the first version, but I'll keep it on the roadmap. In the medium-term this will be a TF2 specific tool, and then I may go and put in some special logic so that things like particle manifests are only enabled when the tool is in "tf2 mode".