All Projects â†’ PradeepKumarRajamanickam â†’ kurinji

PradeepKumarRajamanickam / kurinji

Licence: MIT License
Kurinji Input Map aims to decouple game play code from device specific input api. This is achieved by providing apis that allows you to map game actions to device input events instead of directly handling device inputs.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to kurinji

input-event
🎹 Read and parse input device(like mouse, keyboard, joystick and IR-Remote)'s event data.
Stars: ✭ 45 (-4.26%)
Mutual labels:  keyboard, joystick
Ucr
Universal Control Remapper [Alpha]
Stars: ✭ 399 (+748.94%)
Mutual labels:  keyboard, joystick
ackermann-drive-teleop
ROS keyboard and joystick teleoperation scripts for robots with ackermann steering
Stars: ✭ 33 (-29.79%)
Mutual labels:  keyboard, joystick
waffle corne
Proton-C compatible Corne PCB + Firmware
Stars: ✭ 19 (-59.57%)
Mutual labels:  keyboard
pykeyboard
Best Keyboard and Pagination for the Pyrogram Library.
Stars: ✭ 42 (-10.64%)
Mutual labels:  keyboard
input-remapper
🎮 An easy to use tool to change the mapping of your input device buttons.
Stars: ✭ 1,142 (+2329.79%)
Mutual labels:  keyboard
kiwi
Kiwi turns your Pimoroni Keybow into a fully customizable poor-man's Elgato Stream Deck!
Stars: ✭ 40 (-14.89%)
Mutual labels:  keyboard
nrf52-keyboard
A BLE & 2.4G Keyboard Firmware using nrf52810/52811/52832
Stars: ✭ 101 (+114.89%)
Mutual labels:  keyboard
LowLevelInput.Net
A thread safe and event driven LowLevelMouse and LowLevelKeyboard Hook
Stars: ✭ 32 (-31.91%)
Mutual labels:  keyboard
node-anne-pro
Bluetooth communication library for the Anne Pro keyboard
Stars: ✭ 27 (-42.55%)
Mutual labels:  keyboard
LXChatBox
No description or website provided.
Stars: ✭ 38 (-19.15%)
Mutual labels:  keyboard
thaana-keyboard
Thaana keyboard replaces latin text to thaana (dhivehi) unicode characters using JavaScript
Stars: ✭ 15 (-68.09%)
Mutual labels:  keyboard
visual-ts-game-engine
Typescript project based on matter.ts implementation."This version 2 of visualjs game engine, totally different approach. Whole project is based fully dependency build. Main file is app.ts and ioc.ts. Class ioc saves singleton instances also bind. In this project html and css is also present, webpack helps and handle this type of files. GamePlay…
Stars: ✭ 15 (-68.09%)
Mutual labels:  gameplay
ember-key-manager
A service for (un)binding keyboard up and down events.
Stars: ✭ 39 (-17.02%)
Mutual labels:  keyboard
arduino-snake
Snake game for Arduino
Stars: ✭ 25 (-46.81%)
Mutual labels:  joystick
govarnam
Easily Type Indian Languages on computer and mobile. GoVarnam is a cross-platform transliteration library. Manglish -> Malayalam, Thanglish -> Tamil, Hinglish -> Hindi plus another 10 languages. GoVarnam is a near-Go port of libvarnam
Stars: ✭ 97 (+106.38%)
Mutual labels:  keyboard
Dissatisfaction-65
A 65% QMK Bluetooth keyboard with an OLED and encoder
Stars: ✭ 61 (+29.79%)
Mutual labels:  keyboard
WPF-Keyboard-Control
WPF Keyboard Control
Stars: ✭ 53 (+12.77%)
Mutual labels:  keyboard
bevy transform gizmo
A 3d gizmo for transforming entities in Bevy.
Stars: ✭ 41 (-12.77%)
Mutual labels:  bevy
esp32-hid-joystick
No description or website provided.
Stars: ✭ 59 (+25.53%)
Mutual labels:  joystick

NOTE* Kurinji is not being actively maintained/developed. Please try other plugins for newer Bevy versions. Reason for discontinuing is Bevy is still in its infacy and not very mature i.e. lot of breaking API change between releases requiring more time and effort. Combined with the lack of motivation on my part to continously update. I have decided to pause any development on Bevy plugins for the time being.

Thank you

Kurinji Input Map

Input map plugin for bevy

(Note* Previously called bevy_prototype_input_map)

kurinji

Decouples gameplay code from device specific input api. Converts user inputs from different input hardware into game specific actions, eg. keyboard "Space" or joystick "A" can be mapped to "Jump" Action.

Usage

Add to Cargo.toml dependencies

[dependencies]
kurinji = "*"
fn main() {
    App::build()
        .add_plugin(KurinjiPlugin::default())
        .add_startup_system(setup.system())
        .add_system(system.system())
        .run();
}

fn setup(
    mut kurinji: ResMut<Kurinji>,
) {
    // with data 
    // refer "example/config/gamepad.ron"
    let binding_ron = fs::read_to_string("example/config/gamepad.ron").unwrap()
    kurinji.set_bindings_with_ron(&binding_ron);

    // or

    // via code
    kurinji
    .bind_keyboard_pressed(KeyCode::Return, "SHOOT")
    .bind_mouse_motion(Axis::YNegative, "AIM_UP")
    .set_dead_zone("AIM_UP", 0.1)
}

// system
fn system(kurinji: Res<Kurinji>) {
    if input_map.is_action_active("SHOOT") {
        println!("Bang...");
    }

*Check out examples

Example

Use commands

Via Code

cargo run --example keyboard_mouse_with_code

cargo run --example gamepad_with_code

Via JSON/RON

cargo run --example keyboard_mouse_with_json

cargo run --example gamepad_with_ron

For Action Events Usage

cargo run --example with_action_events

Features

  • Supports: Keyboard, Mouse and Joystick inputs
  • Action Events: OnActionBegin, OnActionProgress, OnActionEnd
  • Event Phase: Ability to set at which event phase an action is active
  • JSON/RON Support: Ability to use serialised string to setup bindings
  • Binding Stack: Ability to Push, Additive Push and Pop bindings
  • Action Strength & Deadzone
  • Custom Strength Curve

Note* Latest commit on master branch might be unstable. Use the release tags if you are looking for stable commits or grab crate from https://crates.io/crates/kurinji

Bug Report

https://github.com/PradeepKumarRajamanickam/kurinji/issues

Release Notes

v1.0.5 (22 dec, 2020)

  • Upgrade to Bevy 0.4.0
    • author: @Nolan Darilek
  • fixed* clippy warnings

v1.0.4 (3 dec, 2020)

  • fixed* Joystick axis inputs not detected

v1.0.3 (26 Nov, 2020)

  • fixed* Events not behaving as expected #36

v1.0.0/1/2 (21 Nov, 2020)

  • rebranded* as Kurinji

v0.1.5 (18 Nov, 2020)

  • Joystick Support
  • Improved Documentations

v0.1.4 (03 Oct, 2020)

  • Event Phase
  • Action Events

v0.1.3 (18 Sept, 2020)

  • Binding Stack
  • JSON & RON Support

v0.1.2 (14 Sept, 2020)

  • New API
  • Ability to set custom strength curve

v0.1.1 (7 Sept, 2020)

  • minor* Readme changes
    • Had to bump the version to publish some readme changes

v0.1.0 (7 Sept, 2020)

  • Keyboard Key Mapping
    • Key press can now be binded to action
  • Mouse Button Mapping
    • Mouse button press can now be binded to action
  • Mouse Move Mapping
    • Mouse move event can now be mapped to action
  • Action Strength
    • Can now query strength of an action.
    • It will be in range of 0.0 - 1.0
    • Useful for analog inputs like joystick
  • Action Deadzone
    • For analog inputs sometimes it is meaningful to have a min threshold to avoid small input noise and to reduce sensitivity

Author

Pradeep Kumar Rajamanickam

Acknowledgments

Inspired by

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].