forked from StrafesNET/map-tool
Automatically create sub-directories when downloading assets; move dds files into the textures folder
the latter change is because roblox-to-snf expects the files in textures, not textures/dds
This commit is contained in:
parent
b6a5324ae7
commit
a56c114d08
@ -246,6 +246,7 @@ fn download_textures(paths:Vec<PathBuf>)->AResult<()>{
|
|||||||
}
|
}
|
||||||
let texture_list_string=texture_list.into_iter().map(|id|id.to_string()).collect::<Vec<String>>();
|
let texture_list_string=texture_list.into_iter().map(|id|id.to_string()).collect::<Vec<String>>();
|
||||||
println!("Texture list:{:?}",texture_list_string.join(" "));
|
println!("Texture list:{:?}",texture_list_string.join(" "));
|
||||||
|
std::fs::create_dir_all("textures/unprocessed")?;
|
||||||
let output=std::process::Command::new("asset-tool")
|
let output=std::process::Command::new("asset-tool")
|
||||||
.args(["download","--cookie-literal","","--output-folder","textures/unprocessed/"])
|
.args(["download","--cookie-literal","","--output-folder","textures/unprocessed/"])
|
||||||
.args(texture_list_string)
|
.args(texture_list_string)
|
||||||
@ -281,6 +282,7 @@ fn download_meshes(paths:Vec<PathBuf>)->AResult<()>{
|
|||||||
}
|
}
|
||||||
let mesh_list_string=mesh_list.into_iter().map(|id|id.to_string()).collect::<Vec<String>>();
|
let mesh_list_string=mesh_list.into_iter().map(|id|id.to_string()).collect::<Vec<String>>();
|
||||||
println!("Mesh list:{:?}",mesh_list_string.join(" "));
|
println!("Mesh list:{:?}",mesh_list_string.join(" "));
|
||||||
|
std::fs::create_dir_all("meshes/")?;
|
||||||
let output=std::process::Command::new("asset-tool")
|
let output=std::process::Command::new("asset-tool")
|
||||||
.args(["download","--cookie-literal","","--output-folder","meshes/"])
|
.args(["download","--cookie-literal","","--output-folder","meshes/"])
|
||||||
.args(mesh_list_string)
|
.args(mesh_list_string)
|
||||||
@ -333,7 +335,7 @@ fn convert(file_thing:std::fs::DirEntry) -> AResult<()>{
|
|||||||
)?;
|
)?;
|
||||||
|
|
||||||
//write dds
|
//write dds
|
||||||
let mut dest=PathBuf::from("textures/dds");
|
let mut dest=PathBuf::from("textures");
|
||||||
dest.push(file_thing.file_name());
|
dest.push(file_thing.file_name());
|
||||||
dest.set_extension("dds");
|
dest.set_extension("dds");
|
||||||
let mut writer = std::io::BufWriter::new(std::fs::File::create(dest)?);
|
let mut writer = std::io::BufWriter::new(std::fs::File::create(dest)?);
|
||||||
@ -355,6 +357,8 @@ fn convert(file_thing:std::fs::DirEntry) -> AResult<()>{
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
fn convert_textures() -> AResult<()>{
|
fn convert_textures() -> AResult<()>{
|
||||||
|
std::fs::create_dir_all("textures/unprocessed")?;
|
||||||
|
std::fs::create_dir_all("textures/processed")?;
|
||||||
let start = std::time::Instant::now();
|
let start = std::time::Instant::now();
|
||||||
let mut threads=Vec::new();
|
let mut threads=Vec::new();
|
||||||
for entry in std::fs::read_dir("textures/unprocessed")? {
|
for entry in std::fs::read_dir("textures/unprocessed")? {
|
||||||
@ -501,6 +505,7 @@ fn recursive_vmt_loader<F:Fn(String)->AResult<Option<Vec<u8>>>>(find_stuff:&F,ma
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn extract_textures(paths:Vec<PathBuf>,vpk_paths:Vec<PathBuf>)->AResult<()>{
|
fn extract_textures(paths:Vec<PathBuf>,vpk_paths:Vec<PathBuf>)->AResult<()>{
|
||||||
|
std::fs::create_dir_all("textures")?;
|
||||||
let vpk_list:Vec<vpk::VPK>=vpk_paths.into_iter().map(|vpk_path|vpk::VPK::read(&vpk_path).expect("vpk file does not exist")).collect();
|
let vpk_list:Vec<vpk::VPK>=vpk_paths.into_iter().map(|vpk_path|vpk::VPK::read(&vpk_path).expect("vpk file does not exist")).collect();
|
||||||
for path in paths{
|
for path in paths{
|
||||||
let mut deduplicate=std::collections::HashSet::new();
|
let mut deduplicate=std::collections::HashSet::new();
|
||||||
@ -569,7 +574,7 @@ fn extract_textures(paths:Vec<PathBuf>,vpk_paths:Vec<PathBuf>)->AResult<()>{
|
|||||||
)?;
|
)?;
|
||||||
|
|
||||||
//write dds
|
//write dds
|
||||||
let mut dest=PathBuf::from("textures/dds");
|
let mut dest=PathBuf::from("textures");
|
||||||
dest.push(write_file_name);
|
dest.push(write_file_name);
|
||||||
dest.set_extension("dds");
|
dest.set_extension("dds");
|
||||||
std::fs::create_dir_all(dest.parent().unwrap())?;
|
std::fs::create_dir_all(dest.parent().unwrap())?;
|
||||||
|
Loading…
Reference in New Issue
Block a user