bool ProcessKeyEvent(TextCompositionEventArgs e, GameKeyBinding[] bindings) { if (e.Text.Length != 1) return false; char key = e.Text[0]; foreach (var b in bindings) { var binding = b as GameTextKeyBinding; if (binding == null) continue; if (binding.Key != key) continue; binding.Action(e); e.Handled = true; return true; } return false; }
bool ProcessKeyEvent(KeyEventArgs e, GameKeyBinding[] bindings) { var key = e.Key; foreach (var b in bindings) { var binding = b as GameRawKeyBinding; if (binding != null) { if (binding.Key != key || binding.Mods != e.KeyboardDevice.Modifiers) continue; binding.Action(e); e.Handled = true; return true; } var wild = b as GameWildKeyBinding; if (wild != null) { if (wild.Action(e)) { e.Handled = true; return true; } } } return false; }