bevy-expedition-demo/src/tests/input.rs
2ndbeam 7c386d4128 refactor!: Split everything into submodules
- Bump version to 0.2.0
- Split every module to systems, observers, plugins, etc
- Renamed Crate to Container
- Removed Wall component
- Removed try_insert_item system
- Removed inventory::ui module
2026-03-19 14:23:26 +03:00

76 lines
2.6 KiB
Rust

use super::super::*;
use crate::input::plugin::*;
use leafwing_input_manager::prelude::*;
#[derive(Actionlike, Reflect, Clone, Debug, PartialEq, Eq, Hash, Default)]
enum Action {
#[default]
#[actionlike(DualAxis)]
DualAxis,
#[actionlike(Axis)]
SingleAxis,
Button,
}
#[test]
fn asset_from_map() {
let mut input_map = InputMap::default();
input_map.insert(Action::Button, KeyCode::KeyE);
input_map.insert(Action::Button, GamepadButton::East);
input_map.insert_axis(Action::SingleAxis, GamepadAxis::LeftStickX);
input_map.insert_axis(Action::SingleAxis, VirtualAxis::ad());
input_map.insert_dual_axis(Action::DualAxis, GamepadStick::RIGHT);
input_map.insert_dual_axis(Action::DualAxis, VirtualDPad::wasd());
let mut expected_input_asset = InputAsset::default();
expected_input_asset.insert(Action::Button, MultiInput {
keyboard: Some(vec![KeyCode::KeyE]),
gamepad: Some(vec![GamepadButton::East]),
mouse: None,
}.into());
expected_input_asset.insert(Action::SingleAxis, InputKind::Axis(vec![
Box::new(GamepadAxis::LeftStickX),
Box::new(VirtualAxis::ad()),
]));
expected_input_asset.insert(Action::DualAxis, InputKind::DualAxis(vec![
Box::new(GamepadStick::RIGHT),
Box::new(VirtualDPad::wasd()),
]));
let input_asset = InputAsset::from(input_map);
assert_eq!(input_asset, expected_input_asset);
}
#[test]
fn map_from_asset() {
let mut input_asset = InputAsset::default();
input_asset.insert(Action::Button, MultiInput {
keyboard: Some(vec![KeyCode::KeyE]),
gamepad: Some(vec![GamepadButton::East]),
mouse: None,
}.into());
input_asset.insert(Action::SingleAxis, InputKind::Axis(vec![
Box::new(GamepadAxis::LeftStickX),
Box::new(VirtualAxis::ad()),
]));
input_asset.insert(Action::DualAxis, InputKind::DualAxis(vec![
Box::new(GamepadStick::RIGHT),
Box::new(VirtualDPad::wasd()),
]));
let mut expected_input_map = InputMap::default();
expected_input_map.insert(Action::Button, KeyCode::KeyE);
expected_input_map.insert(Action::Button, GamepadButton::East);
expected_input_map.insert_axis(Action::SingleAxis, GamepadAxis::LeftStickX);
expected_input_map.insert_axis(Action::SingleAxis, VirtualAxis::ad());
expected_input_map.insert_dual_axis(Action::DualAxis, GamepadStick::RIGHT);
expected_input_map.insert_dual_axis(Action::DualAxis, VirtualDPad::wasd());
let input_map = InputMap::from(input_asset);
assert_eq!(input_map, expected_input_map);
}