|
|
|
@ -447,20 +447,51 @@ fn selected_gizmo(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fn pick_up(
|
|
|
|
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| {
|
|
|
|
events.iter_mut().for_each(|(entity, piece)| {
|
|
|
|
transform.translation += Vec3::Y;
|
|
|
|
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(
|
|
|
|
fn put_down(
|
|
|
|
mut events: RemovedComponents<game::Selected>,
|
|
|
|
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| {
|
|
|
|
events.iter().for_each(|entity| {
|
|
|
|
if let Ok(mut transform) = query.get_mut(entity) {
|
|
|
|
if let Ok(piece) = query.get_mut(entity) {
|
|
|
|
transform.translation -= Vec3::Y;
|
|
|
|
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());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|