forked from StrafesNET/strafe-project
60 lines
1.0 KiB
Rust
60 lines
1.0 KiB
Rust
pub struct Bsp(vbsp::Bsp);
|
|
impl Bsp{
|
|
pub const fn new(value:vbsp::Bsp)->Self{
|
|
Self(value)
|
|
}
|
|
}
|
|
impl AsRef<vbsp::Bsp> for Bsp{
|
|
fn as_ref(&self)->&vbsp::Bsp{
|
|
&self.0
|
|
}
|
|
}
|
|
|
|
pub struct MdlData(Vec<u8>);
|
|
impl MdlData{
|
|
pub const fn new(value:Vec<u8>)->Self{
|
|
Self(value)
|
|
}
|
|
}
|
|
impl AsRef<[u8]> for MdlData{
|
|
fn as_ref(&self)->&[u8]{
|
|
self.0.as_ref()
|
|
}
|
|
}
|
|
pub struct VtxData(Vec<u8>);
|
|
impl VtxData{
|
|
pub const fn new(value:Vec<u8>)->Self{
|
|
Self(value)
|
|
}
|
|
}
|
|
impl AsRef<[u8]> for VtxData{
|
|
fn as_ref(&self)->&[u8]{
|
|
self.0.as_ref()
|
|
}
|
|
}
|
|
pub struct VvdData(Vec<u8>);
|
|
impl VvdData{
|
|
pub const fn new(value:Vec<u8>)->Self{
|
|
Self(value)
|
|
}
|
|
}
|
|
impl AsRef<[u8]> for VvdData{
|
|
fn as_ref(&self)->&[u8]{
|
|
self.0.as_ref()
|
|
}
|
|
}
|
|
|
|
pub struct ModelData{
|
|
pub mdl:MdlData,
|
|
pub vtx:VtxData,
|
|
pub vvd:VvdData,
|
|
}
|
|
impl ModelData{
|
|
pub fn read_model(&self)->Result<vmdl::Model,vmdl::ModelError>{
|
|
Ok(vmdl::Model::from_parts(
|
|
vmdl::mdl::Mdl::read(self.mdl.as_ref())?,
|
|
vmdl::vtx::Vtx::read(self.vtx.as_ref())?,
|
|
vmdl::vvd::Vvd::read(self.vvd.as_ref())?,
|
|
))
|
|
}
|
|
} |