minor code refactor

main
Elijah Voigt 2 years ago
parent aed804863b
commit af53e5c2ea

@ -51,7 +51,7 @@ impl Deck {
Self::cards().into_iter()
}
pub(crate) fn shuffled() -> impl Iterator<Item = Card> {
pub(crate) fn shuffled() -> Vec<Card> {
let rs = RandomState::new();
let mut base = Self::cards();
let len = base.len();
@ -62,7 +62,11 @@ impl Deck {
base.swap(a as usize, b as usize);
}
});
base.into_iter()
base
}
pub(crate) fn iter_shuffled() -> impl Iterator<Item = Card> {
Deck::shuffled().into_iter()
}
}

@ -21,31 +21,33 @@ impl Plugin for SetupPlugin {
/// Setup drawing our cards on the screen
pub(crate) fn setup_cards(mut commands: Commands, deck: Res<Deck>) {
let size = 75.0;
Deck::shuffled().enumerate().for_each(|(i, this_card)| {
let this = deck
.cards
.get(&this_card)
.unwrap_or_else(|| panic!("fech card sprite {:?}", this_card))
.clone();
let new_this = Sprite {
custom_size: Some(Vec2::new(40.0, 64.0)),
..this
};
// for a 9x9 grid we want x to wrap every 9 and y to increment every 9
// TODO: Determine based on screen size what this offset and scaling should be
let x = i % 9;
let y = i / 9;
let l = size;
let x_off = -(size / 2.0) * 9.0;
let y_off = -(size / 2.0) * 8.0;
let t = Transform::from_xyz(l * (x as f32) + x_off, l * (y as f32) + y_off, 0.0);
commands
.spawn((new_this, this_card, t))
.observe(debug::set_debug_card)
.observe(debug::hide_debug_card)
.observe(play::reset_rotation)
.observe(play::toggle_selected);
});
Deck::iter_shuffled()
.enumerate()
.for_each(|(i, this_card)| {
let this = deck
.cards
.get(&this_card)
.unwrap_or_else(|| panic!("fech card sprite {:?}", this_card))
.clone();
let new_this = Sprite {
custom_size: Some(Vec2::new(40.0, 64.0)),
..this
};
// for a 9x9 grid we want x to wrap every 9 and y to increment every 9
// TODO: Determine based on screen size what this offset and scaling should be
let x = i % 9;
let y = i / 9;
let l = size;
let x_off = -(size / 2.0) * 9.0;
let y_off = -(size / 2.0) * 8.0;
let t = Transform::from_xyz(l * (x as f32) + x_off, l * (y as f32) + y_off, 0.0);
commands
.spawn((new_this, this_card, t))
.observe(debug::set_debug_card)
.observe(debug::hide_debug_card)
.observe(play::reset_rotation)
.observe(play::toggle_selected);
});
}
/// Setup our camera to view cardson the screen

Loading…
Cancel
Save