doryen-fov
A pure rust library containing 2D field of view algorithms for roguelikes.
compilation instructions
- install rust : https://www.rust-lang.org/learn/get-started
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));
}
license
This code is released under the MIT license.
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.