public void OnKeyDown(KeyboardKeyEventArgs e) { if (e.IsRepeat) { return; } KeyboardEventFunction callbacks = null; var evnt = new KeyboardEvent(e); keyBindings.TryGetValue(evnt, out callbacks); if (callbacks != null) { activeKeys.Add(evnt); } var newAxis = axisManager.Handle(e); foreach (var a in newAxis) { if (!activeAxis.Contains(a)) { activeAxis.Add(a); } } }
public void RegisterKeybinding(KeyboardEvent evnt, KeyboardEventFunction callback) { KeyboardEventFunction cb; if (keyBindings.TryGetValue(evnt, out cb)) { cb += callback; } else { keyBindings.Add(evnt, callback); } }
public void DigestAll() { foreach (var k in activeKeys) { KeyboardEventFunction callbacks = null; keyBindings.TryGetValue(k, out callbacks); if (callbacks != null) { callbacks.Invoke(); } } foreach (var a in activeAxis) { axisManager.ExecuteById(a); } }