combobulator: don't give up for conversion errors #340

Merged
Quaternions merged 1 commits from staging into master 2026-03-05 17:50:06 +00:00

View File

@@ -65,9 +65,6 @@ pub enum Error{
ArchivedModel,
LoadDom(map_tool::roblox::LoadDomError),
DownloadAsset(map_tool::roblox::DownloadAssetError),
ConvertTexture(map_tool::roblox::ConvertTextureError),
Union(rbx_binary::DecodeError),
Mesh(strafesnet_rbx_loader::mesh::Error),
ConvertSnf(ConvertError),
S3Get(crate::s3::GetError),
S3Put(crate::s3::PutError),
@@ -147,8 +144,14 @@ impl Processor{
dds_result
};
// handle error after caching data
let dds=dds_result.map_err(Error::ConvertTexture)?;
// handle error after cacheing data
let dds=match dds_result{
Ok(dds)=>dds,
Err(e)=>{
println!("[combobulator] Texture {asset_id} convert error: {e}");
continue;
}
};
self.s3.put(&dds_key,dds.clone()).await.map_err(Error::S3Put)?;
@@ -179,10 +182,11 @@ impl Processor{
};
println!("[combobulator] Mesh {asset_id} processed");
// handle error after caching data
let mesh=mesh_result.map_err(Error::Mesh)?;
mesh_loader.insert_mesh(id,mesh);
// handle error after cacheing data
match mesh_result{
Ok(mesh)=>mesh_loader.insert_mesh(id,mesh),
Err(e)=>println!("[combobulator] Mesh {asset_id} convert error: {e}"),
}
}
// process unions
@@ -204,10 +208,11 @@ impl Processor{
};
println!("[combobulator] Union {asset_id} processed");
// handle error after caching data
let union=union_result.map_err(Error::Union)?;
mesh_loader.insert_union(id,union);
// handle error after cacheing data
match union_result{
Ok(union)=>mesh_loader.insert_union(id,union),
Err(e)=>println!("[combobulator] Union {asset_id} convert error: {e}"),
}
}
// convert to SNF and upload