Add Ultimate-style input binding buffers

This commit is contained in:
2026-10-03 10:42:30 +02:00
parent 47f7ae1e69
commit 32428982ad
9 changed files with 549 additions and 166 deletions
+13
View File
@@ -19,6 +19,17 @@ pub enum InputMapAction {
Attack,
}
impl InputMapAction {
pub const fn digital_action(&self) -> Option<crate::input::DigitalAction> {
match self {
Self::Jump => Some(crate::input::DigitalAction::Jump),
Self::Shield => Some(crate::input::DigitalAction::Shield),
Self::Attack => Some(crate::input::DigitalAction::Attack),
Self::MovementXDir(_) | Self::MovementYDir(_) => None,
}
}
}
#[derive(Debug)]
pub enum MenuInputMapAction {
MovementXDir(i32),
@@ -32,6 +43,7 @@ pub enum MenuInputMapAction {
pub struct KeyboardInputMapElement {
pub key: KeyCode,
pub action: InputMapAction,
pub binding_slot: u8,
}
#[derive(Debug)]
@@ -44,6 +56,7 @@ pub enum GamepadBinding {
pub struct GamepadInputMapElement {
pub binding: GamepadBinding,
pub action: InputMapAction,
pub binding_slot: u8,
}
#[derive(Debug)]