Docs Crates.io Crates.io

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.

Get started

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, walkable: 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) { // (…) } ```