A set of tools to find your path in a grid based dungeon. Field of view, pathfinding...
Inspired by tcod-rs and bracket-pathfinding, it aims to be simpler to use than tcod, without requiring a sdl2 dependency, and a lot faster than bracket-pathfinding.
Implement the Map
trait, and call field of vision or pathfinding algorithm.
```rust use torchbearer::{Map, Point}; use torchbearer::fov::fieldofview; use torchbearer::path::astar_path;
struct SampleMap {
width: i32,
height: i32,
transparent: Vec
impl SampleMap { fn new(width: i32, height: i32) -> Self { // (…) } }
impl Map for SampleMap { fn dimensions(&self) -> (i32, i32) { (self.width, self.height) }
fn is_transparent(&self, x: i32, y: i32) -> bool {
self.transparent[(x + y * self.width) as usize]
}
fn is_walkable(&self, x: i32, y: i32) -> bool {
self.walkable[(x + y * self.width) as usize]
}
}
let sample_map = SampleMap::new(16, 10);
// (…) You probably want at this point to add some walls to your map.
let from = (1,1); let to = (3,8); let radius = 5;
for visibleposition in fieldofview(&samplemap, from, radius) { // (…) }
if let Some(path) = astarpath(&samplemap, from, to) { // (…) } ```