|
|
|
|
@ -82,12 +82,12 @@ mod parse {
|
|
|
|
|
tag(l)(s)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn parse_xyz<'a>(i: &'a str) -> IResult<&'a str, (f32, f32, f32)> {
|
|
|
|
|
fn parse_xyz(i: &str) -> IResult<&str, (f32, f32, f32)> {
|
|
|
|
|
tuple((float, take(1usize), float, take(1usize), float))(i)
|
|
|
|
|
.map(|(s, (x, _, y, _, z))| (s, (x, y, z)))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn parse_wxyz<'a>(i: &'a str) -> IResult<&'a str, (f32, f32, f32, f32)> {
|
|
|
|
|
fn parse_wxyz(i: &str) -> IResult<&str, (f32, f32, f32, f32)> {
|
|
|
|
|
tuple((
|
|
|
|
|
float,
|
|
|
|
|
take(1usize),
|
|
|
|
|
@ -100,7 +100,7 @@ mod parse {
|
|
|
|
|
.map(|(s, (w, _, x, _, y, _, z))| (s, (w, x, y, z)))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn parse_string<'a>(i: &'a str) -> IResult<&'a str, &'a str> {
|
|
|
|
|
fn parse_string(i: &str) -> IResult<&str, &str> {
|
|
|
|
|
let (rem, (_, out, _)) = tuple((tag("\""), take_until1("\""), tag("\"")))(i)?;
|
|
|
|
|
Ok((rem, out))
|
|
|
|
|
}
|
|
|
|
|
@ -167,7 +167,7 @@ mod parse {
|
|
|
|
|
pub(crate) fn parse_save_name(line: &str) -> Result<Name, SaveEntityParseError> {
|
|
|
|
|
let (remainder, _) = tag("name")(line)?;
|
|
|
|
|
let n = remainder.trim().to_string();
|
|
|
|
|
if n.len() == 0 {
|
|
|
|
|
if n.is_empty() {
|
|
|
|
|
Err(SaveEntityParseError::Name)
|
|
|
|
|
} else {
|
|
|
|
|
let name = Name::new(n);
|
|
|
|
|
@ -241,7 +241,7 @@ mod parse {
|
|
|
|
|
|
|
|
|
|
pub(crate) fn parse_save_camera(line: &str) -> Result<bool, SaveEntityParseError> {
|
|
|
|
|
let (_rem, cam) = tag("camera")(line)?;
|
|
|
|
|
Ok(cam.len() > 0)
|
|
|
|
|
Ok(!cam.is_empty())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
@ -318,8 +318,7 @@ fn check_loaded_entity_assets(
|
|
|
|
|
gltfs: Res<Assets<Gltf>>,
|
|
|
|
|
) {
|
|
|
|
|
events.read().for_each(|event| {
|
|
|
|
|
match event {
|
|
|
|
|
AssetEvent::LoadedWithDependencies { id } => {
|
|
|
|
|
if let AssetEvent::LoadedWithDependencies { id } = event {
|
|
|
|
|
query
|
|
|
|
|
.iter()
|
|
|
|
|
.filter(|(_, handle)| handle.id() == *id)
|
|
|
|
|
@ -343,7 +342,7 @@ fn check_loaded_entity_assets(
|
|
|
|
|
// Apply transform
|
|
|
|
|
if let Some(transform) = &saved.transform {
|
|
|
|
|
// TODO: Only update if different
|
|
|
|
|
e.insert(transform.clone());
|
|
|
|
|
e.insert(*transform);
|
|
|
|
|
} else {
|
|
|
|
|
e.remove::<Transform>();
|
|
|
|
|
}
|
|
|
|
|
@ -372,7 +371,5 @@ fn check_loaded_entity_assets(
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
_ => (),
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|