we have a card drawn! progress!

main
Elijah Voigt 2 years ago
parent 44c83563a5
commit 8c405d98eb

@ -2,46 +2,78 @@ use bevy::{prelude::*, utils::HashMap};
fn main() { fn main() {
App::new() App::new()
.add_systems(Startup, startup)
.add_plugins(DefaultPlugins) .add_plugins(DefaultPlugins)
.init_state::<GameState>()
.add_systems(Startup, (load, start_setup).chain())
.add_systems(
OnEnter(GameState::Setup),
(setup_cards, setup_camera, start_play).chain(),
)
.run(); .run();
} }
fn startup(mut commands: Commands, server: Res<AssetServer>) { #[derive(States, Default, Debug, Clone, PartialEq, Eq, Hash)]
enum GameState {
#[default]
Boot,
Setup,
Play,
}
fn load(mut commands: Commands, server: Res<AssetServer>) {
let sprite = Sprite { let sprite = Sprite {
image: server.load("red_oval_open_one.png"), image: server.load("red_oval_open_one.png"),
..default() ..default()
}; };
let mut cards = HashMap::new();
let card = Card { let card = Card {
color: ItemColor::Red, color: ItemColor::Red,
shape: ItemShape::Oval, shape: ItemShape::Oval,
pattern: ItemPattern::Open, pattern: ItemPattern::Open,
number: ItemNumber::One, number: ItemNumber::One,
}; };
let mut cards = HashMap::new();
cards.insert(card, sprite); cards.insert(card, sprite);
// [ItemColor::Red, ItemColor::Green, ItemColor::Purple]
// .iter()
// .for_each(|c| {
// [ItemNumber::One, ItemNumber::Two, ItemNumber::Three]
// .iter()
// .for_each(|n| {
// [ItemPattern::Solid, ItemPattern::Striped, ItemPattern::Open]
// .iter()
// .for_each(|p| {
// [ItemShape::Oval, ItemShape::Diamond, ItemShape::Squiggle]
// .iter()
// .for_each(|s| {
// cards.insert((*c, *s, *p, *n), sprite.clone());
// });
// });
// });
// });
let test_deck = Deck { cards }; let test_deck = Deck { cards };
commands.insert_resource(test_deck); commands.insert_resource(test_deck);
} }
// 81 cards total fn setup_camera(mut commands: Commands) {
commands.spawn((
Camera2d,
Camera {
hdr: true,
..default()
},
));
}
fn setup_cards(mut commands: Commands, deck: Res<Deck>) {
let this = deck
.cards
.get(&Card {
color: ItemColor::Red,
shape: ItemShape::Oval,
pattern: ItemPattern::Open,
number: ItemNumber::One,
})
.unwrap()
.clone();
commands.spawn(this);
}
fn start_play(mut game_state: ResMut<NextState<GameState>>) {
game_state.set(GameState::Play);
}
fn start_setup(mut game_state: ResMut<NextState<GameState>>) {
game_state.set(GameState::Setup);
}
// We expect 81 cards total
#[derive(Resource)] #[derive(Resource)]
struct Deck { struct Deck {
cards: HashMap<Card, Sprite>, cards: HashMap<Card, Sprite>,

Loading…
Cancel
Save