generated from 2ndbeam/bevy-template
- 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
76 lines
2.6 KiB
Rust
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);
|
|
}
|