/* Hurry Curry! - a game about cooking Copyright 2024 metamuffin This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License only. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ 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) } } }