public void RegisterKeyEvent(KeyCodeEventPair keycodeEvent, InputKeyCallback callback) { if (!keyCallbacks.ContainsKey(keycodeEvent)) { keyCallbacks.Add(keycodeEvent, new List <InputKeyCallback>()); } // Check to see if callback exists for (int i = 0; i < keyCallbacks[keycodeEvent].Count; i++) { if (keyCallbacks[keycodeEvent][i] == callback) { // Duplicate return; } } keyCallbacks[keycodeEvent].Add(callback); }
public void UnregisterKeyEvent(KeyCodeEventPair keycodeEvent, InputKeyCallback callback) { if (keyCallbacks.ContainsKey(keycodeEvent)) { for (int i = 0; i < keyCallbacks[keycodeEvent].Count; i++) { if (keyCallbacks[keycodeEvent][i] == callback) { keyCallbacks[keycodeEvent].RemoveAt(i); break; } } // If no more callbacks, remove this entry in the list if (keyCallbacks[keycodeEvent].Count == 0) { keyCallbacks.Remove(keycodeEvent); } } }
public void AddCallback(InputKeyCallback callback) { Callbacks.Add(callback); }
public InputKeyState RegisterKey(int keyGroup, int keyCode, InputKeyType type, InputKeyCallback callback) { InputKeyState state = RegisterKey(keyGroup, keyCode, type); if (callback != null) { state.AddCallback(callback); } return state; }