# bevy_doryen
A [Bevy](https://bevyengine.org/) plugin that integrates the
[Doryen](https://github.com/jice-nospam/doryen-rs) roguelike library with Bevy.
[](https://crates.io/crates/bevy_doryen)
[](https://docs.rs/bevy_doryen)
[](https://ilyvion.github.io/bevy_doryen/doc)
[](https://github.com/ilyvion/bevy_doryen)
[](https://bevyengine.org/learn/quick-start/plugin-development/#main-branch-tracking)
[](https://codecov.io/github/ilyvion/bevy_doryen)
## Usage
### Targeting Bevy 0.14
```toml
[dependencies]
bevy_app = "0.14"
bevy_ecs = "0.14"
bevy_doryen = "0.6"
```
```rust
use bevy_doryen::prelude::*;
App::new()
// Insert a `DoryenPluginSettings` resource to configure the plugin.
.insert_resource(DoryenPluginSettings {
// `app_options` lets you configure Doryen just as if you were
// using Doryen without Bevy. The default is `AppOptions::default()`.
app_options: AppOptions {
show_cursor: true,
resizable: true,
..AppOptions::default()
},
// Lets you configure which mouse buttons to listen for. The default
// is left, middle and right click.
mouse_button_listeners: vec![
MouseButton::Left,
MouseButton::Middle,
MouseButton::Right,
],
// Lets you configure how the application should behave when resized.
// The default is `ResizeMode::Nothing`. See `ResizeMode`'s
// documentation for more information.
resize_mode: ResizeMode::Nothing
})
// Add the `DoryenPlugin` to Bevy.
.add_plugins(DoryenPlugin)
// Add your Bevy systems like usual. Excluding startup systems, which
// only run once, these systems are run during Doryen's update phase;
// i.e. 60 times per second.
.add_systems(Startup, init)
.add_systems(Update, input)
// The `Render` schedules lets you add systems that should
// be run during Doryen's render phase.
.add_systems(Render, render)
.run();
```
See the [examples](https://github.com/ilyvion/bevy_doryen/tree/master/examples)
for more usage scenarios, as well as live demos.
## Bevy Version Support
I intend to track the latest release version of Bevy. PRs supporting this are welcome!
| 0.14 | 0.6 |
| 0.13 | 0.5 |
| 0.12.1 | 0.4.1 |
| 0.11 | 0.3 |
| 0.5 | 0.2 |
| 0.4 | 0.1 |
## License
All code in this repository is dual-licensed under either:
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option. This means you can select the license you prefer.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.