bevy-input-sequence 0.2.0

Recognizes input sequences and send events
use std::time::Duration;

use bevy::prelude::*;

use bevy_input_sequence::*;

#[derive(Event, Clone, Debug)]
struct MyEvent;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_input_sequence_event::<MyEvent>()
        .add_systems(Startup, setup)
        .add_systems(Update, input_sequence_event_system)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(
        InputSequence::new(MyEvent, keyseq!(ctrl-W ctrl-D ctrl-S ctrl-A))
            .time_limit(Duration::from_secs(1)),
    );
    println!("Press ctrl-W ctrl-D ctrl-S ctrl-A to emit event.");
}

fn input_sequence_event_system(mut er: EventReader<MyEvent>) {
    for e in er.read() {
        println!("{e:?} emitted.");
    }
}