diff --git a/assets/.gitattributes b/assets/.gitattributes new file mode 100644 index 0000000..2063859 --- /dev/null +++ b/assets/.gitattributes @@ -0,0 +1,36 @@ +open_circle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_circle_white.png filter=lfs diff=lfs merge=lfs -text +open_circle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_green.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +open_circle_red.png filter=lfs diff=lfs merge=lfs -text +open_circle_purple.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_green.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_white.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +open_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +open_diamond_white.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_green.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +open_diamond_green.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_white.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +open_diamond_red.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_red.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_red.png filter=lfs diff=lfs merge=lfs -text diff --git a/assets/filled_circle_green.png b/assets/filled_circle_green.png index 5dfcfe2..da697aa 100644 Binary files a/assets/filled_circle_green.png and b/assets/filled_circle_green.png differ diff --git a/assets/filled_circle_purple.png b/assets/filled_circle_purple.png index 716a25f..54f51b9 100644 Binary files a/assets/filled_circle_purple.png and b/assets/filled_circle_purple.png differ diff --git a/assets/filled_circle_red.png b/assets/filled_circle_red.png index 9534586..020dea6 100644 Binary files a/assets/filled_circle_red.png and b/assets/filled_circle_red.png differ diff --git a/assets/filled_circle_white.png b/assets/filled_circle_white.png index 3c7be0d..9fa8f31 100644 Binary files a/assets/filled_circle_white.png and b/assets/filled_circle_white.png differ diff --git a/assets/filled_diamond_green.png b/assets/filled_diamond_green.png index d76893c..c2382a6 100644 Binary files a/assets/filled_diamond_green.png and b/assets/filled_diamond_green.png differ diff --git a/assets/filled_diamond_purple.png b/assets/filled_diamond_purple.png index 74b7871..2d0006c 100644 Binary files a/assets/filled_diamond_purple.png and b/assets/filled_diamond_purple.png differ diff --git a/assets/filled_diamond_red.png b/assets/filled_diamond_red.png index dc5b117..6449a18 100644 Binary files a/assets/filled_diamond_red.png and b/assets/filled_diamond_red.png differ diff --git a/assets/filled_diamond_white.png b/assets/filled_diamond_white.png index dc7d8ed..43439b0 100644 Binary files a/assets/filled_diamond_white.png and b/assets/filled_diamond_white.png differ diff --git a/assets/filled_squiggle_green.png b/assets/filled_squiggle_green.png index 8ecc866..19c4faf 100644 Binary files a/assets/filled_squiggle_green.png and b/assets/filled_squiggle_green.png differ diff --git a/assets/filled_squiggle_purple.png b/assets/filled_squiggle_purple.png index aa100ac..703c122 100644 Binary files a/assets/filled_squiggle_purple.png and b/assets/filled_squiggle_purple.png differ diff --git a/assets/filled_squiggle_red.png b/assets/filled_squiggle_red.png index 6c6f488..84af086 100644 Binary files a/assets/filled_squiggle_red.png and b/assets/filled_squiggle_red.png differ diff --git a/assets/filled_squiggle_white.png b/assets/filled_squiggle_white.png index b48787e..f999cff 100644 Binary files a/assets/filled_squiggle_white.png and b/assets/filled_squiggle_white.png differ diff --git a/assets/open_circle_green.png b/assets/open_circle_green.png index 83a315a..41fc0bb 100644 Binary files a/assets/open_circle_green.png and b/assets/open_circle_green.png differ diff --git a/assets/open_circle_purple.png b/assets/open_circle_purple.png index b34074d..fad1c01 100644 Binary files a/assets/open_circle_purple.png and b/assets/open_circle_purple.png differ diff --git a/assets/open_circle_red.png b/assets/open_circle_red.png index fe6aa1b..b1f394c 100644 Binary files a/assets/open_circle_red.png and b/assets/open_circle_red.png differ diff --git a/assets/open_circle_white.png b/assets/open_circle_white.png index 0bc1537..8717bed 100644 Binary files a/assets/open_circle_white.png and b/assets/open_circle_white.png differ diff --git a/assets/open_diamond_green.png b/assets/open_diamond_green.png index 1d5915a..10d92c6 100644 Binary files a/assets/open_diamond_green.png and b/assets/open_diamond_green.png differ diff --git a/assets/open_diamond_purple.png b/assets/open_diamond_purple.png index c3e92f7..b799076 100644 Binary files a/assets/open_diamond_purple.png and b/assets/open_diamond_purple.png differ diff --git a/assets/open_diamond_red.png b/assets/open_diamond_red.png index b0d2cb6..ec25550 100644 Binary files a/assets/open_diamond_red.png and b/assets/open_diamond_red.png differ diff --git a/assets/open_diamond_white.png b/assets/open_diamond_white.png index 22aaced..cdd1158 100644 Binary files a/assets/open_diamond_white.png and b/assets/open_diamond_white.png differ diff --git a/assets/open_squiggle_green.png b/assets/open_squiggle_green.png index 48500d0..9bb86ae 100644 Binary files a/assets/open_squiggle_green.png and b/assets/open_squiggle_green.png differ diff --git a/assets/open_squiggle_purple.png b/assets/open_squiggle_purple.png index f9f5180..3e21a0a 100644 Binary files a/assets/open_squiggle_purple.png and b/assets/open_squiggle_purple.png differ diff --git a/assets/open_squiggle_red.png b/assets/open_squiggle_red.png index e49d9a1..6f28e5e 100644 Binary files a/assets/open_squiggle_red.png and b/assets/open_squiggle_red.png differ diff --git a/assets/open_squiggle_white.png b/assets/open_squiggle_white.png index c660ce3..659577b 100644 Binary files a/assets/open_squiggle_white.png and b/assets/open_squiggle_white.png differ diff --git a/assets/shaded_circle_green.png b/assets/shaded_circle_green.png index a008701..5daec2d 100644 Binary files a/assets/shaded_circle_green.png and b/assets/shaded_circle_green.png differ diff --git a/assets/shaded_circle_purple.png b/assets/shaded_circle_purple.png index bd9a247..871eb84 100644 Binary files a/assets/shaded_circle_purple.png and b/assets/shaded_circle_purple.png differ diff --git a/assets/shaded_circle_red.png b/assets/shaded_circle_red.png index f9a95cf..0d40d4f 100644 Binary files a/assets/shaded_circle_red.png and b/assets/shaded_circle_red.png differ diff --git a/assets/shaded_circle_white.png b/assets/shaded_circle_white.png index c4e1ac9..1be9bd6 100644 Binary files a/assets/shaded_circle_white.png and b/assets/shaded_circle_white.png differ diff --git a/assets/shaded_diamond_green.png b/assets/shaded_diamond_green.png index 27c6c1a..a3d87a7 100644 Binary files a/assets/shaded_diamond_green.png and b/assets/shaded_diamond_green.png differ diff --git a/assets/shaded_diamond_purple.png b/assets/shaded_diamond_purple.png index f938e2f..1ebc9c5 100644 Binary files a/assets/shaded_diamond_purple.png and b/assets/shaded_diamond_purple.png differ diff --git a/assets/shaded_diamond_red.png b/assets/shaded_diamond_red.png index ca8b3e7..132f33b 100644 Binary files a/assets/shaded_diamond_red.png and b/assets/shaded_diamond_red.png differ diff --git a/assets/shaded_diamond_white.png b/assets/shaded_diamond_white.png index fdb17c6..3909dba 100644 Binary files a/assets/shaded_diamond_white.png and b/assets/shaded_diamond_white.png differ diff --git a/assets/shaded_squiggle_green.png b/assets/shaded_squiggle_green.png index 36b8b1f..4c1a36b 100644 Binary files a/assets/shaded_squiggle_green.png and b/assets/shaded_squiggle_green.png differ diff --git a/assets/shaded_squiggle_purple.png b/assets/shaded_squiggle_purple.png index c8d535b..18e59ab 100644 Binary files a/assets/shaded_squiggle_purple.png and b/assets/shaded_squiggle_purple.png differ diff --git a/assets/shaded_squiggle_red.png b/assets/shaded_squiggle_red.png index 77c9d7a..c7d6055 100644 Binary files a/assets/shaded_squiggle_red.png and b/assets/shaded_squiggle_red.png differ diff --git a/assets/shaded_squiggle_white.png b/assets/shaded_squiggle_white.png index c58a200..c02f929 100644 Binary files a/assets/shaded_squiggle_white.png and b/assets/shaded_squiggle_white.png differ diff --git a/src/boot.rs b/src/boot.rs index 5f8cb2c..ec23e13 100644 --- a/src/boot.rs +++ b/src/boot.rs @@ -11,11 +11,21 @@ impl Plugin for BootPlugin { } /// loads assets for the game -pub(crate) fn load(mut commands: Commands, server: Res) { +pub(crate) fn load( + mut commands: Commands, + server: Res, + mut texture_atlases: ResMut>, +) { let cards: HashMap = Deck::iter_cards() .map(|card| { + let sprite_info = card.sprite(); + let texture_atlas = TextureAtlas { + layout: texture_atlases.add(sprite_info.1), + index: sprite_info.2 as usize, + }; let sprite = Sprite { - image: server.load(card.sprite()), + image: server.load(sprite_info.0), + texture_atlas: Some(texture_atlas), ..default() }; diff --git a/src/deck.rs b/src/deck.rs index 7739f1f..6f2676c 100644 --- a/src/deck.rs +++ b/src/deck.rs @@ -57,28 +57,33 @@ pub(crate) struct Card { } impl Card { - pub(crate) fn sprite(&self) -> String { - let col = match self.color { - ItemColor::Red => "cr", - ItemColor::Green => "cg", - ItemColor::Purple => "cp", + pub(crate) fn sprite(&self) -> (String, TextureAtlasLayout, u8) { + let fname = { + let col = match self.color { + ItemColor::Red => "red", + ItemColor::Green => "green", + ItemColor::Purple => "purple", + }; + let pat = match self.pattern { + ItemPattern::Solid => "filled", + ItemPattern::Striped => "shaded", + ItemPattern::Open => "open", + }; + let shape = match self.shape { + ItemShape::Oval => "circle", + ItemShape::Diamond => "diamond", + ItemShape::Squiggle => "squiggle", + }; + format!("{}_{}_{}.png", pat, shape, col) }; let num = match self.number { - ItemNumber::One => "n1", - ItemNumber::Two => "n2", - ItemNumber::Three => "n3", + ItemNumber::One => 0, + ItemNumber::Two => 1, + ItemNumber::Three => 2, }; - let pat = match self.pattern { - ItemPattern::Solid => "pso", - ItemPattern::Striped => "pst", - ItemPattern::Open => "pop", - }; - let shape = match self.shape { - ItemShape::Oval => "so", - ItemShape::Diamond => "sd", - ItemShape::Squiggle => "ss", - }; - format!("{}_{}_{}_{}.png", col, num, pat, shape) + let layout = TextureAtlasLayout::from_grid(UVec2 { x: 20, y: 32 }, 3, 1, None, None); + + (fname, layout, num) } } diff --git a/src/main.rs b/src/main.rs index 86a3451..f8887da 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,7 @@ use bevy::prelude::*; fn main() { App::new() - .add_plugins(DefaultPlugins) + .add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest())) .add_plugins(( deck::DeckPlugin, debug::DebugPlugin,