|
|
|
@ -117,7 +117,7 @@ fn test_tokenize() {
|
|
|
|
pub(crate) fn parse_save_transform(
|
|
|
|
pub(crate) fn parse_save_transform(
|
|
|
|
tokens: &Vec<Token>,
|
|
|
|
tokens: &Vec<Token>,
|
|
|
|
) -> Result<Vec<Box<dyn Reflect>>, SaveEntityParseError> {
|
|
|
|
) -> Result<Vec<Box<dyn Reflect>>, SaveEntityParseError> {
|
|
|
|
if tokens[0] == Token::Tag("transform".into()) {
|
|
|
|
if tokens.get(0) == Some(&Token::Tag("transform".into())) {
|
|
|
|
let mut t = Transform::default();
|
|
|
|
let mut t = Transform::default();
|
|
|
|
let mut idx = 1;
|
|
|
|
let mut idx = 1;
|
|
|
|
while idx < tokens.len() {
|
|
|
|
while idx < tokens.len() {
|
|
|
|
@ -320,16 +320,24 @@ impl Component for SaveModel {
|
|
|
|
///
|
|
|
|
///
|
|
|
|
pub(crate) fn parse_save_model(
|
|
|
|
pub(crate) fn parse_save_model(
|
|
|
|
tokens: &Vec<Token>,
|
|
|
|
tokens: &Vec<Token>,
|
|
|
|
) -> Result<Box<dyn Reflect>, SaveEntityParseError> {
|
|
|
|
) -> Result<Vec<Box<dyn Reflect>>, SaveEntityParseError> {
|
|
|
|
todo!("parse_save_model");
|
|
|
|
if tokens.get(0) == Some(&Token::Tag("model".into())) {
|
|
|
|
|
|
|
|
if let Token::Str(gltf_file) = tokens.get(1).expect("model requires gltf file") {
|
|
|
|
/*
|
|
|
|
if let Token::Str(scene_name) = tokens.get(2).expect("model requires scene name") {
|
|
|
|
Ok(SaveModel {
|
|
|
|
Ok(vec![SaveModel {
|
|
|
|
gltf_file: gltf_path.into(),
|
|
|
|
gltf_file: gltf_file.into(),
|
|
|
|
scene_name: scene_name.into(),
|
|
|
|
scene_name: scene_name.clone(),
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.clone_value()])
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Err(SaveEntityParseError::Component("Model".into()))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Err(SaveEntityParseError::Component("Model".into()))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Err(SaveEntityParseError::Component("Model".into()))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.clone_value())
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
#[test]
|
|
|
|
@ -337,15 +345,14 @@ fn test_parse_model() {
|
|
|
|
let line = "model \"models/foo.glb\" \"My Scene\"";
|
|
|
|
let line = "model \"models/foo.glb\" \"My Scene\"";
|
|
|
|
let tokens = tokenize(line);
|
|
|
|
let tokens = tokenize(line);
|
|
|
|
let parsed = parse_save_model(&tokens).unwrap();
|
|
|
|
let parsed = parse_save_model(&tokens).unwrap();
|
|
|
|
let expected = SaveModel {
|
|
|
|
let expected = vec![SaveModel {
|
|
|
|
gltf_file: "models/foo.glb".into(),
|
|
|
|
gltf_file: "models/foo.glb".into(),
|
|
|
|
scene_name: "My Scene".into(),
|
|
|
|
scene_name: "My Scene".into(),
|
|
|
|
};
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
|
|
assert!(expected
|
|
|
|
parsed.iter().zip(expected).for_each(|(p, e)| {
|
|
|
|
.clone_value()
|
|
|
|
assert!(e.clone_value().reflect_partial_eq(p.as_reflect()).unwrap());
|
|
|
|
.reflect_partial_eq(parsed.as_reflect())
|
|
|
|
});
|
|
|
|
.unwrap());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[derive(Component, Debug, Default, PartialEq, Reflect, Clone)]
|
|
|
|
#[derive(Component, Debug, Default, PartialEq, Reflect, Clone)]
|
|
|
|
|