mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-27 16:36:02 +03:00
dont panic on unknown keypresses
This commit is contained in:
parent
a11fe98ca9
commit
806a139788
@ -2,6 +2,8 @@ use piston::input as pi;
|
||||
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
pub enum Event {
|
||||
// TODO Get rid of this after handling all cases.
|
||||
Unknown,
|
||||
LeftMouseButtonDown,
|
||||
LeftMouseButtonUp,
|
||||
RightMouseButtonDown,
|
||||
@ -43,10 +45,16 @@ impl Event {
|
||||
}
|
||||
|
||||
if let Some(pi::Button::Keyboard(key)) = ev.press_args() {
|
||||
return Event::KeyPress(Key::from_piston_key(key, ev.button_args()));
|
||||
if let Some(key) = Key::from_piston_key(key, ev.button_args()) {
|
||||
return Event::KeyPress(key);
|
||||
}
|
||||
return Event::Unknown;
|
||||
}
|
||||
if let Some(pi::Button::Keyboard(key)) = ev.release_args() {
|
||||
return Event::KeyRelease(Key::from_piston_key(key, ev.button_args()));
|
||||
if let Some(key) = Key::from_piston_key(key, ev.button_args()) {
|
||||
return Event::KeyRelease(key);
|
||||
}
|
||||
return Event::Unknown;
|
||||
}
|
||||
|
||||
if ev.update_args().is_some() {
|
||||
@ -211,14 +219,14 @@ impl Key {
|
||||
}
|
||||
}
|
||||
|
||||
fn from_piston_key(key: pi::Key, args: Option<pi::ButtonArgs>) -> Key {
|
||||
fn from_piston_key(key: pi::Key, args: Option<pi::ButtonArgs>) -> Option<Key> {
|
||||
if let Some(a) = args {
|
||||
if a.scancode == Some(39) {
|
||||
return Key::Semicolon;
|
||||
return Some(Key::Semicolon);
|
||||
}
|
||||
}
|
||||
|
||||
match key {
|
||||
Some(match key {
|
||||
pi::Key::A => Key::A,
|
||||
pi::Key::B => Key::B,
|
||||
pi::Key::C => Key::C,
|
||||
@ -273,8 +281,9 @@ impl Key {
|
||||
pi::Key::Up => Key::UpArrow,
|
||||
pi::Key::Down => Key::DownArrow,
|
||||
_ => {
|
||||
panic!("Unknown piston key {:?}", key);
|
||||
println!("Unknown piston key {:?}", key);
|
||||
return None;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user