It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.
I really like the UE approach and decided to bring it to Bevy.
Despite being the first release, it's packed with features:
Map inputs from various sources (keyboard, gamepad, etc.) to gameplay actions like Jump, Move, or Attack.
Assign actions to different contexts like OnFoot or InCar, which are regular components.
Activate or deactivate contexts by simply adding or removing components.
Control how actions accumulate input from sources and consume it.
Layer multiple contexts on a single entity, controlled by priority.
Apply modifiers to inputs, such as dead zones, inversion, scaling, etc., or create custom modifiers by implementing a trait.
Assign conditions for how and when an action is triggered, like "hold", "tap", "chord", etc. You can also create custom conditions, such as "on the ground".
React on actions with observers.
I've implemented everything from UE and even added some extras. The crate also has ~90% test coverage.
Finally released! Next up, I'll be migrating the game to use it.
After it I will need to implement some requested features for bevy_replicon.