From 72c63af9102776cd579a7b6ad6741d7a30965065 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 5 Sep 2022 10:37:35 -0500 Subject: [PATCH] No longer concern ourselves with transforms when dynamically creating sources. --- src/lib.rs | 46 ++++++++++++---------------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 44ea21b..37a8c09 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -294,44 +294,22 @@ fn add_generator( fn add_sound_without_source( mut commands: Commands, - query: Query< - (Entity, Option<&Parent>, Option<&GlobalTransform>), - (Added, Without), - >, + query: Query, Without)>, parents: Query<&Parent>, sources: Query<&Source>, - transforms: Query<&GlobalTransform>, ) { - for (entity, parent, transform) in &query { - let should_check_for_transform = transform.is_none(); - let mut has_transform = false; - let source = if let Some(parent) = parent { - if should_check_for_transform { - has_transform = transforms.get(**parent).is_ok(); - } - let mut target = None; - let mut parent: Option<&Parent> = Some(parent); - while let Some(p) = parent { - if should_check_for_transform && !has_transform { - has_transform = transforms.get(**p).is_ok(); - } - if sources.get(**p).is_ok() { - target = Some(**p); - break; - } - parent = parents.get(**p).ok(); - } - target.map(|v| sources.get(v).unwrap()) - } else { - None - }; - if source.is_none() { - let id = commands.entity(entity).insert(Source::default()).id(); - if has_transform { - commands - .entity(id) - .insert_bundle(TransformBundle::default()); + for entity in &query { + let mut has_source = false; + let mut target = entity; + while let Ok(parent) = parents.get(target) { + if sources.get(**parent).is_ok() { + has_source = true; + break; } + target = **parent; + } + if !has_source { + commands.entity(entity).insert(Source::default()); } } }