1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
use ggez::graphics::spritebatch::SpriteBatch;
use crate::cell::Cell;
use crate::entity::Operable;
use crate::tileset::Tileset;
#[derive(Debug, Clone)]
pub struct Layer {
pub cells: Vec<Cell>,
dimensions: (usize, usize),
}
impl Operable for Layer {
fn update(&mut self) {
for cell in self.cells.iter_mut() {
cell.update();
}
}
fn draw(&self, spritebatch: &mut SpriteBatch) {
for cell in self.cells.iter() {
cell.draw(spritebatch);
}
}
}
impl Layer {
pub fn new(text: &str, tileset: &Tileset, dimensions: (usize, usize)) -> Layer {
Layer {
cells: text
.replace("\n", "")
.split(',')
.enumerate()
.map(|(i, s)| Cell::new(s, i, tileset, dimensions))
.collect(),
dimensions,
}
}
}
|