A simple-to-use input manager for the Bevy game engine that empowers players and makes accessibility easy.
[dependencies]
# Add bevy_ineffable as a dependency to your `Cargo.toml`
bevy_ineffable = "0.6.0"
use bevy::prelude::*;
use bevy_ineffable::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
// Always add the IneffablePlugin:
.add_plugins(IneffablePlugin)
// Also register GooseInput as an InputAction:
.register_input_action::<GooseInput>()
.add_systems(Startup, init)
.add_systems(Update, update)
.run();
}
/// Define an enum and derive `InputAction`.
/// These are the abstract actions that keys can be bound to.
#[derive(InputAction)]
pub enum GooseInput {
/// In this example, the only thing the player can do is honk.
/// We must define what kind of input Honk is. Honking is
/// enacted instantaneously, so we'll define it as a pulse.
#[ineffable(pulse)]
Honk,
// You can add more actions here...
}
/// Create a config that binds the space bar to the `Honk` action.
fn init(mut ineffable: IneffableCommands) {
// The builder pattern is used here, but configs can also
// be loaded as an asset.
let config = InputConfig::builder()
.bind(
ineff!(GooseInput::Honk),
PulseBinding::just_pressed(KeyCode::Space),
)
.build();
ineffable.set_config(&config);
}
/// Whenever the Honk action pulses, write to the console.
fn update(ineffable: Res<Ineffable>) {
if ineffable.just_pulsed(ineff!(GooseInput::Honk)) {
println!("Honk!");
}
}
Mor examples can be found in the examples/
directory. Each example is in its own file. Try out the first one by
running:
cargo run --example basics
bevy | bevy_ineffable |
---|---|
0.12 | 0.1.0 - 0.3.0 |
0.13 | 0.4.0 - 0.5.0 |
0.14 | 0.6.0 |
Ineffable is dual-licensed under either:
at your option. This means that when using this crate in your game, you may choose which license to use.
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.