use navmesh::*;
use std::collections::HashMap;
#[derive(Debug, Default)]
pub struct NavGrids(pub(crate) HashMap<NavGridID, NavGrid>);
impl NavGrids {
#[inline]
pub fn register(&mut self, grid: NavGrid) -> NavGridID {
let id = grid.id();
self.0.insert(id, grid);
id
}
#[inline]
pub fn unregister(&mut self, id: NavGridID) -> Option<NavGrid> {
self.0.remove(&id)
}
#[inline]
pub fn unregister_all(&mut self) {
self.0.clear()
}
#[inline]
pub fn grids_iter(&self) -> impl Iterator<Item = &NavGrid> {
self.0.values()
}
#[inline]
pub fn find_grid(&self, id: NavGridID) -> Option<&NavGrid> {
self.0.get(&id)
}
#[inline]
pub fn find_grid_mut(&mut self, id: NavGridID) -> Option<&mut NavGrid> {
self.0.get_mut(&id)
}
}