use crate::prelude::*;
#[derive(Serialize, Deserialize, PartialEq, Clone, Debug)]
pub struct TheTileMask {
#[serde(with = "vectorize")]
pub pixels: FxHashMap<Vec2<i32>, bool>,
}
impl Default for TheTileMask {
fn default() -> Self {
Self::new()
}
}
impl TheTileMask {
pub fn new() -> Self {
TheTileMask {
pixels: FxHashMap::default(),
}
}
pub fn is_empty(&self) -> bool {
self.pixels.is_empty()
}
pub fn contains(&self, position: Vec2<i32>) -> bool {
self.pixels.contains_key(&position)
}
pub fn add_pixel(&mut self, position: Vec2<i32>, value: bool) {
self.pixels.insert(position, value);
}
pub fn remove_pixel(&mut self, position: Vec2<i32>) {
self.pixels.remove(&position);
}
}