/*
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)
}
}
}