fix loader
This commit is contained in:
parent
c43bbd3410
commit
ee9b7fdc80
@ -4,7 +4,7 @@ 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::deferred_loader::{LoadFailureMode,MeshDeferredLoader,RenderConfigDeferredLoader};
|
use strafesnet_deferred_loader::deferred_loader::LoadFailureMode;
|
||||||
use rbxassetid::RobloxAssetId;
|
use rbxassetid::RobloxAssetId;
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
|
|
||||||
@ -313,7 +313,8 @@ async fn download_assets(paths:Vec<PathBuf>,cookie:rbx_asset::cookie::Cookie)->A
|
|||||||
enum ConvertError{
|
enum ConvertError{
|
||||||
IO(std::io::Error),
|
IO(std::io::Error),
|
||||||
SNFMap(strafesnet_snf::map::Error),
|
SNFMap(strafesnet_snf::map::Error),
|
||||||
RbxLoader(strafesnet_rbx_loader::ReadError),
|
RobloxRead(strafesnet_rbx_loader::ReadError),
|
||||||
|
RobloxLoad(strafesnet_rbx_loader::LoadError),
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for ConvertError{
|
impl std::fmt::Display for ConvertError{
|
||||||
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
||||||
@ -346,29 +347,12 @@ fn roblox_to_snf(pathlist:Vec<std::path::PathBuf>,output_folder:PathBuf)->AResul
|
|||||||
let model=strafesnet_rbx_loader::read(
|
let model=strafesnet_rbx_loader::read(
|
||||||
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::RbxLoader)?;
|
).map_err(ConvertError::RobloxRead)?;
|
||||||
|
|
||||||
let mut place=model.into_place();
|
let mut place=model.into_place();
|
||||||
place.run_scripts();
|
place.run_scripts();
|
||||||
|
|
||||||
let mut texture_deferred_loader=RenderConfigDeferredLoader::new();
|
let map=place.to_snf(LoadFailureMode::DefaultToNone).map_err(ConvertError::RobloxLoad)?;
|
||||||
let mut mesh_deferred_loader=MeshDeferredLoader::new();
|
|
||||||
|
|
||||||
let map_step1=strafesnet_rbx_loader::convert(
|
|
||||||
place.as_ref(),
|
|
||||||
&mut texture_deferred_loader,
|
|
||||||
&mut mesh_deferred_loader,
|
|
||||||
);
|
|
||||||
|
|
||||||
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(meshpart_meshes);
|
|
||||||
|
|
||||||
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(render_configs);
|
|
||||||
|
|
||||||
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,7 +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};
|
use strafesnet_deferred_loader::deferred_loader::LoadFailureMode;
|
||||||
|
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub enum Commands{
|
pub enum Commands{
|
||||||
@ -278,7 +278,8 @@ fn bsp_contents(path:PathBuf)->AResult<()>{
|
|||||||
enum ConvertError{
|
enum ConvertError{
|
||||||
IO(std::io::Error),
|
IO(std::io::Error),
|
||||||
SNFMap(strafesnet_snf::map::Error),
|
SNFMap(strafesnet_snf::map::Error),
|
||||||
BspLoader(strafesnet_bsp_loader::ReadError),
|
BspRead(strafesnet_bsp_loader::ReadError),
|
||||||
|
BspLoad(strafesnet_bsp_loader::LoadError),
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for ConvertError{
|
impl std::fmt::Display for ConvertError{
|
||||||
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
fn fmt(&self,f:&mut std::fmt::Formatter<'_>)->std::fmt::Result{
|
||||||
@ -311,26 +312,9 @@ fn source_to_snf(pathlist:Vec<std::path::PathBuf>,output_folder:PathBuf)->AResul
|
|||||||
let bsp=strafesnet_bsp_loader::read(
|
let bsp=strafesnet_bsp_loader::read(
|
||||||
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::BspRead)?;
|
||||||
|
|
||||||
let mut texture_deferred_loader=RenderConfigDeferredLoader::new();
|
let map=bsp.to_snf(LoadFailureMode::DefaultToNone).map_err(ConvertError::BspLoad)?;
|
||||||
let mut mesh_deferred_loader=MeshDeferredLoader::new();
|
|
||||||
|
|
||||||
let map_step1=strafesnet_bsp_loader::convert(
|
|
||||||
&bsp,
|
|
||||||
&mut texture_deferred_loader,
|
|
||||||
&mut mesh_deferred_loader,
|
|
||||||
);
|
|
||||||
|
|
||||||
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(prop_meshes);
|
|
||||||
|
|
||||||
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(render_configs);
|
|
||||||
|
|
||||||
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