summaryrefslogtreecommitdiff
path: root/shared/src/resources.rs
diff options
context:
space:
mode:
Diffstat (limited to 'shared/src/resources.rs')
-rw-r--r--shared/src/resources.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/shared/src/resources.rs b/shared/src/resources.rs
index 08fb6f5..25dd965 100644
--- a/shared/src/resources.rs
+++ b/shared/src/resources.rs
@@ -25,6 +25,7 @@ use std::{
#[derive(Debug, Default, Clone)]
pub struct Prefab {
+ pub name: Option<String>,
pub mesh: Vec<(Affine3A, Resource<MeshPart>)>,
pub light: Vec<(Vec3A, Resource<LightPart>)>,
pub environment: Option<Resource<EnvironmentPart>>,
@@ -44,6 +45,7 @@ pub struct EnvironmentPart {
#[derive(Debug, Default, Clone)]
pub struct MeshPart {
+ pub name: Option<String>,
pub index: Option<Resource<IndexArray>>,
pub g_metallic: Option<f32>,
pub g_roughness: Option<f32>,
@@ -107,6 +109,7 @@ impl ReadWrite for PrefabIndex {
impl ReadWrite for Prefab {
fn write(&self, w: &mut dyn Write) -> Result<()> {
+ write_kv_opt(w, b"name", &self.name)?;
for x in &self.mesh {
write_kv_opt(w, b"mesh", &Some(x.clone()))?;
}
@@ -119,6 +122,7 @@ impl ReadWrite for Prefab {
fn read(r: &mut dyn Read) -> Result<Self> {
let mut s = Self::default();
read_kv_iter(r, |k, v| match k {
+ b"name" => Ok(s.name = Some(read_slice(v)?)),
b"mesh" => Ok(s.mesh.push(read_slice(v)?)),
b"light" => Ok(s.light.push(read_slice(v)?)),
b"environment" => Ok(s.environment = Some(read_slice(v)?)),
@@ -171,6 +175,7 @@ impl ReadWrite for EnvironmentPart {
}
impl ReadWrite for MeshPart {
fn write(&self, w: &mut dyn Write) -> Result<()> {
+ write_kv_opt(w, b"name", &self.name)?;
write_kv_opt(w, b"index", &self.index)?;
write_kv_opt(w, b"g_metallic", &self.g_metallic)?;
write_kv_opt(w, b"g_roughness", &self.g_roughness)?;
@@ -199,6 +204,7 @@ impl ReadWrite for MeshPart {
fn read(r: &mut dyn Read) -> Result<Self> {
let mut s = Self::default();
read_kv_iter(r, |k, v| match k {
+ b"name" => Ok(s.name = Some(read_slice(v)?)),
b"index" => Ok(s.index = Some(read_slice(v)?)),
b"g_metallic" => Ok(s.g_metallic = Some(read_slice(v)?)),
b"g_roughness" => Ok(s.g_roughness = Some(read_slice(v)?)),