pickup/putdown animationsgit add .; git commit

selection-refactor
Elijah Voigt 2 years ago
parent 1aec9ae9ce
commit 668bb64e68

@ -447,20 +447,51 @@ fn selected_gizmo(
}
fn pick_up(
mut events: Query<&mut Transform, (With<game::Piece>, With<Display3d>, Added<game::Selected>)>,
mut events: Query<
(Entity, &game::Piece),
(With<game::Piece>, With<Display3d>, Added<game::Selected>),
>,
assets_map: Res<AssetsMap>,
gltfs: Res<Assets<Gltf>>,
children: Query<&Children>,
mut players: Query<&mut AnimationPlayer>,
) {
events.iter_mut().for_each(|mut transform| {
transform.translation += Vec3::Y;
events.iter_mut().for_each(|(entity, piece)| {
let gltf = gltfs.get(&assets_map.models).expect("Load GLTF content");
children.iter_descendants(entity).for_each(|child| {
if let Ok(mut player) = players.get_mut(child) {
let animation = match piece {
game::Piece::Queen => gltf.named_animations.get("QueenPickup"),
game::Piece::Drone => gltf.named_animations.get("DronePickup"),
game::Piece::Pawn => gltf.named_animations.get("PawnPickup"),
};
player.play(animation.expect("Pickup Animation").clone());
}
})
});
}
fn put_down(
mut events: RemovedComponents<game::Selected>,
mut query: Query<&mut Transform, (With<game::Piece>, With<Display3d>)>,
mut query: Query<&game::Piece, (With<game::Piece>, With<Display3d>)>,
assets_map: Res<AssetsMap>,
gltfs: Res<Assets<Gltf>>,
children: Query<&Children>,
mut players: Query<&mut AnimationPlayer>,
) {
events.iter().for_each(|entity| {
if let Ok(mut transform) = query.get_mut(entity) {
transform.translation -= Vec3::Y;
if let Ok(piece) = query.get_mut(entity) {
let gltf = gltfs.get(&assets_map.models).expect("Load GLTF content");
children.iter_descendants(entity).for_each(|child| {
if let Ok(mut player) = players.get_mut(child) {
let animation = match piece {
game::Piece::Queen => gltf.named_animations.get("QueenPutDown"),
game::Piece::Drone => gltf.named_animations.get("DronePutDown"),
game::Piece::Pawn => gltf.named_animations.get("PawnPutDown"),
};
player.play(animation.expect("PutDown Animation").clone());
}
})
}
})
}

Loading…
Cancel
Save