summaryrefslogtreecommitdiff
path: root/src/layer.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2019-06-22 10:11:18 -0500
committertom barrett <spalf0@gmail.com>2019-06-22 10:11:18 -0500
commitcccfb66c7c58bf464252e942ef2b742b41ece19e (patch)
tree8d13331a5cb65343d1a668d6dbb3fa4a62fb598a /src/layer.rs
parent99c6e61a2b8fe66dcef7eada525f6fbdd7a2cd00 (diff)
now draw at the tile level
Diffstat (limited to 'src/layer.rs')
-rw-r--r--src/layer.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/layer.rs b/src/layer.rs
new file mode 100644
index 0000000..efecd89
--- /dev/null
+++ b/src/layer.rs
@@ -0,0 +1,31 @@
+use ggez::graphics::spritebatch::SpriteBatch;
+
+use crate::tile::Tile;
+use crate::tileset::Tileset;
+
+pub struct Layer {
+ pub tiles: Vec<Tile>,
+ pub width: usize,
+ pub height: usize,
+}
+
+impl Layer {
+ pub fn new(text: &str, tileset: &Tileset, width: usize, height: usize) -> Layer {
+ Layer {
+ tiles: text
+ .replace("\n", "")
+ .split(',')
+ .enumerate()
+ .map(|(i, s)| Tile::new(s, i, tileset, width, height))
+ .collect(),
+ width,
+ height,
+ }
+ }
+
+ pub fn draw(&self, spritebatch: &mut SpriteBatch) {
+ for tile in self.tiles.iter() {
+ tile.draw(spritebatch);
+ }
+ }
+}