minor code refactor

main
Elijah Voigt 2 years ago
parent aed804863b
commit af53e5c2ea

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

Loading…
Cancel
Save