fix loader
This commit is contained in:
parent
2ce8d4e2f8
commit
c43bbd3410
@ -4,7 +4,8 @@ use std::collections::HashSet;
|
|||||||
use clap::{Args,Subcommand};
|
use clap::{Args,Subcommand};
|
||||||
use anyhow::Result as AResult;
|
use anyhow::Result as AResult;
|
||||||
use rbx_dom_weak::Instance;
|
use rbx_dom_weak::Instance;
|
||||||
use strafesnet_deferred_loader::rbxassetid::RobloxAssetId;
|
use strafesnet_deferred_loader::deferred_loader::{LoadFailureMode,MeshDeferredLoader,RenderConfigDeferredLoader};
|
||||||
|
use rbxassetid::RobloxAssetId;
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
|
|
||||||
const DOWNLOAD_LIMIT:usize=16;
|
const DOWNLOAD_LIMIT:usize=16;
|
||||||
@ -350,34 +351,24 @@ fn roblox_to_snf(pathlist:Vec<std::path::PathBuf>,output_folder:PathBuf)->AResul
|
|||||||
let mut place=model.into_place();
|
let mut place=model.into_place();
|
||||||
place.run_scripts();
|
place.run_scripts();
|
||||||
|
|
||||||
let mut loader=strafesnet_deferred_loader::roblox_legacy();
|
let mut texture_deferred_loader=RenderConfigDeferredLoader::new();
|
||||||
|
let mut mesh_deferred_loader=MeshDeferredLoader::new();
|
||||||
let (texture_loader,mesh_loader)=loader.get_inner_mut();
|
|
||||||
|
|
||||||
let map_step1=strafesnet_rbx_loader::convert(
|
let map_step1=strafesnet_rbx_loader::convert(
|
||||||
&place,
|
place.as_ref(),
|
||||||
|name|texture_loader.acquire_render_config_id(name),
|
&mut texture_deferred_loader,
|
||||||
|name|mesh_loader.acquire_mesh_id(name),
|
&mut mesh_deferred_loader,
|
||||||
);
|
);
|
||||||
|
|
||||||
let meshpart_meshes=mesh_loader.load_meshes().map_err(ConvertError::IO)?;
|
let mut mesh_loader=strafesnet_rbx_loader::loader::MeshLoader::new();
|
||||||
|
let meshpart_meshes=mesh_deferred_loader.into_meshes(&mut mesh_loader,LoadFailureMode::DefaultToNone).unwrap();
|
||||||
|
|
||||||
let map_step2=map_step1.add_meshpart_meshes_and_calculate_attributes(
|
let map_step2=map_step1.add_meshpart_meshes_and_calculate_attributes(meshpart_meshes);
|
||||||
meshpart_meshes.into_iter().map(|(mesh_id,loader_model)|
|
|
||||||
(mesh_id,strafesnet_rbx_loader::data::RobloxMeshBytes::new(loader_model.get()))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
let (textures,render_configs)=loader.into_render_configs().map_err(ConvertError::IO)?.consume();
|
let mut texture_loader=strafesnet_rbx_loader::loader::TextureLoader::new();
|
||||||
|
let render_configs=texture_deferred_loader.into_render_configs(&mut texture_loader,LoadFailureMode::DefaultToNone).unwrap();
|
||||||
|
|
||||||
let map=map_step2.add_render_configs_and_textures(
|
let map=map_step2.add_render_configs_and_textures(render_configs);
|
||||||
render_configs.into_iter(),
|
|
||||||
textures.into_iter().map(|(texture_id,texture)|
|
|
||||||
(texture_id,match texture{
|
|
||||||
strafesnet_deferred_loader::texture::Texture::ImageDDS(data)=>data,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut dest=output_folder.clone();
|
let mut dest=output_folder.clone();
|
||||||
dest.push(path.file_stem().unwrap());
|
dest.push(path.file_stem().unwrap());
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use clap::{Args,Subcommand};
|
use clap::{Args,Subcommand};
|
||||||
use anyhow::Result as AResult;
|
use anyhow::Result as AResult;
|
||||||
|
use strafesnet_deferred_loader::deferred_loader::{LoadFailureMode,MeshDeferredLoader,RenderConfigDeferredLoader};
|
||||||
|
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub enum Commands{
|
pub enum Commands{
|
||||||
@ -311,40 +312,25 @@ fn source_to_snf(pathlist:Vec<std::path::PathBuf>,output_folder:PathBuf)->AResul
|
|||||||
std::fs::File::open(path.as_path())
|
std::fs::File::open(path.as_path())
|
||||||
.map_err(ConvertError::IO)?
|
.map_err(ConvertError::IO)?
|
||||||
).map_err(ConvertError::BspLoader)?;
|
).map_err(ConvertError::BspLoader)?;
|
||||||
let mut loader=strafesnet_deferred_loader::source_legacy();
|
|
||||||
|
|
||||||
let (texture_loader,mesh_loader)=loader.get_inner_mut();
|
let mut texture_deferred_loader=RenderConfigDeferredLoader::new();
|
||||||
|
let mut mesh_deferred_loader=MeshDeferredLoader::new();
|
||||||
|
|
||||||
let map_step1=strafesnet_bsp_loader::convert(
|
let map_step1=strafesnet_bsp_loader::convert(
|
||||||
&bsp,
|
&bsp,
|
||||||
|name|texture_loader.acquire_render_config_id(name),
|
&mut texture_deferred_loader,
|
||||||
|name|mesh_loader.acquire_mesh_id(name),
|
&mut mesh_deferred_loader,
|
||||||
);
|
);
|
||||||
|
|
||||||
let prop_meshes=mesh_loader.load_meshes(&bsp.as_ref());
|
let mut mesh_loader=strafesnet_bsp_loader::loader::MeshLoader::new(&bsp,&mut texture_deferred_loader);
|
||||||
|
let prop_meshes=mesh_deferred_loader.into_meshes(&mut mesh_loader,LoadFailureMode::DefaultToNone).unwrap();
|
||||||
|
|
||||||
let map_step2=map_step1.add_prop_meshes(
|
let map_step2=map_step1.add_prop_meshes(prop_meshes);
|
||||||
//the type conflagulator 9000
|
|
||||||
prop_meshes.into_iter().map(|(mesh_id,loader_model)|
|
|
||||||
(mesh_id,strafesnet_bsp_loader::data::ModelData{
|
|
||||||
mdl:strafesnet_bsp_loader::data::MdlData::new(loader_model.mdl.get()),
|
|
||||||
vtx:strafesnet_bsp_loader::data::VtxData::new(loader_model.vtx.get()),
|
|
||||||
vvd:strafesnet_bsp_loader::data::VvdData::new(loader_model.vvd.get()),
|
|
||||||
})
|
|
||||||
),
|
|
||||||
|name|texture_loader.acquire_render_config_id(name),
|
|
||||||
);
|
|
||||||
|
|
||||||
let (textures,render_configs)=loader.into_render_configs().map_err(ConvertError::IO)?.consume();
|
let mut texture_loader=strafesnet_bsp_loader::loader::TextureLoader::new();
|
||||||
|
let render_configs=texture_deferred_loader.into_render_configs(&mut texture_loader,LoadFailureMode::DefaultToNone).unwrap();
|
||||||
|
|
||||||
let map=map_step2.add_render_configs_and_textures(
|
let map=map_step2.add_render_configs_and_textures(render_configs);
|
||||||
render_configs.into_iter(),
|
|
||||||
textures.into_iter().map(|(texture_id,texture)|
|
|
||||||
(texture_id,match texture{
|
|
||||||
strafesnet_deferred_loader::texture::Texture::ImageDDS(data)=>data,
|
|
||||||
})
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut dest=output_folder.clone();
|
let mut dest=output_folder.clone();
|
||||||
dest.push(path.file_stem().unwrap());
|
dest.push(path.file_stem().unwrap());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user