use crate::atlas::SpriteRenderer; use hurrycurry_protocol::{glam::IVec2, PacketC, TileIndex}; use std::collections::HashMap; pub struct Game { tiles: HashMap, } impl Game { pub fn new() -> Self { Self { tiles: HashMap::new(), } } pub fn packet_in(&mut self, packet: PacketC) { match packet { PacketC::UpdateMap { tile, kind, neighbors: _, } => { if let Some(kind) = kind { self.tiles.insert(tile, kind); } else { self.tiles.remove(&tile); } } _ => (), } } pub fn render(&self, ctx: &mut SpriteRenderer) { for (p, tile) in &self.tiles { ctx.draw_tile(*tile, *p) } } }