public InputKeyState RegisterKey(int keyGroup, int keyCode, InputKeyType type) { if (!FindKeyState(keyGroup, keyCode, out InputKeyState state)) { state = new InputKeyState(keyGroup, keyCode, type, false); } keyStates.Add(state); return state; }
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; }
bool FindKeyState(int keyGroup, int keyCode, out InputKeyState outState) { foreach (InputKeyState state in keyStates) { if (state.KeyGroup == keyGroup && state.KeyCode == keyCode) { outState = state; return true; } } outState = default; return false; }