now you're thinking with functions (and piping)

main
Elijah Voigt 2 years ago
parent a6cc91aacc
commit 7549f230bf

@ -780,18 +780,23 @@ mod animations {
pub fn add_animations_ui( pub fn add_animations_ui(
player_spawned: Query<&Name, Added<AnimationPlayer>>, player_spawned: Query<&Name, Added<AnimationPlayer>>,
widget: Query<Entity, With<AnimationWidget>>, widget: Query<Entity, With<AnimationWidget>>,
gltfs: Res<Assets<Gltf>>,
mut commands: Commands, mut commands: Commands,
gltfs: Res<Assets<Gltf>>,
clips: Res<Assets<AnimationClip>>, clips: Res<Assets<AnimationClip>>,
) { ) {
player_spawned.iter().for_each(|player_name| { player_spawned.iter().for_each(|player_name| {
gltfs.iter().for_each(|(_, gltf)| { gltfs
gltf.named_animations
.iter() .iter()
.for_each(|(clip_name, handle)| { .flat_map(|(_, gltf)| gltf.named_animations.iter())
info!("Checking clip {:?}", clip_name); .filter_map(|(clip_name, handle)| {
let clip = clips.get(&handle).expect("load animation clip"); if let Some(clip) = clips.get(&handle) {
clip.compatible_with(player_name).then(|| { Some((clip_name, handle, clip))
} else {
None
}
})
.filter(|(_, _, clip)| clip.compatible_with(player_name))
.for_each(|(clip_name, handle, _)| {
create_asset_button( create_asset_button(
&widget, &widget,
&mut commands, &mut commands,
@ -803,8 +808,6 @@ mod animations {
); );
}); });
}); });
});
});
} }
// When a scene is de-selected, remove any outdated animation options // When a scene is de-selected, remove any outdated animation options

Loading…
Cancel
Save