use crate::tile::Tile; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TileMap { pub width: usize, pub height: usize, pub tiles: Vec, } #[cfg(test)] mod tests { use super::*; use crate::glyph::Glyph; #[test] fn tilemap_tile_write_and_read_remain_canonical() { let mut map = TileMap { width: 2, height: 2, tiles: vec![Tile::default(); 4] }; let index = 3; map.tiles[index] = Tile { active: true, glyph: Glyph { glyph_id: 99, palette_id: 5 }, flip_x: true, flip_y: false, }; assert_eq!(map.tiles[index].glyph.glyph_id, 99); assert_eq!(map.tiles[index].glyph.palette_id, 5); assert!(map.tiles[index].flip_x); assert!(map.tiles[index].active); } }