#rogue-like #console #fov #field-of-view

doryen-fov

A pure rust library containing 2D field of view algorithms for roguelikes

1 unstable release

0.1.1 Jun 15, 2019
0.1.0 Jun 15, 2019

#1359 in Game dev

Download history 18/week @ 2024-06-01 11/week @ 2024-06-08 16/week @ 2024-06-15 19/week @ 2024-06-22 13/week @ 2024-06-29 9/week @ 2024-07-06 17/week @ 2024-07-13 16/week @ 2024-07-20 30/week @ 2024-07-27 16/week @ 2024-08-03 20/week @ 2024-08-10 10/week @ 2024-08-17 14/week @ 2024-08-24 21/week @ 2024-08-31 19/week @ 2024-09-07 13/week @ 2024-09-14

68 downloads per month
Used in 2 crates

MIT license

19KB
409 lines

doryen-fov

Build Status Documentation

A pure rust library containing 2D field of view algorithms for roguelikes.

compilation instructions

native compilation

cargo run --example fov

web assembly compilation

rustup target install wasm32-unknown-unknown
cargo install cargo-web
cargo web start --example fov

usage

Cargo.toml :

[dependency]
doryen-fov="*"

main.rs :

use doryen_fov::{FovAlgorithm, FovRecursiveShadowCasting, MapData};

fn main() {
    let mut fov = FovRecursiveShadowCasting::new();
    let map_width = 10;
    let map_height = 10;
    let mut map = MapData::new(map_width, map_height); // build an empty map
    map.set_transparent(5, 5, false); // put some wall
    let radius = 0;
    let player_x = 5;
    let player_y = 6;
    map.clear_fov(); // compute_fov does not clear the existing fov
    fov.compute_fov(&mut map, player_x, player_y, radius, false);
    assert!(map.is_in_fov(5, 7));
}

contributions

You can contribute to this library through pull requests. If you do so, please update the CHANGELOG.md and CREDITS.md files. If you provide a new feature, consider adding an example as a tutorial/showcase.

No runtime deps