public IEnumerable <string> GetInput() { var allOutputs = new List <string>(); if (MouseTranslator != null) { allOutputs.AddRange(MouseTranslator.Translate(Mouse.GetState())); } if (KeyboardTranslator != null) { allOutputs.AddRange(KeyboardTranslator.Translate(Keyboard.GetState().GetPressedKeys())); } if (GamePadsTranslators != null) { var index = GamePadsTranslators.Count; allOutputs .AddRange ( GamePadsTranslators.Select(gPadTranslator => { return(gPadTranslator.Translate(GamePad.GetState(index: index--))); } ) .SelectMany(input => input)); } if (JoystickTranslators != null) { var index = JoystickTranslators.Count; allOutputs .AddRange ( JoystickTranslators.Select(joystickTranslator => { return(joystickTranslator.Translate(Joystick.GetState(index--))); } ) .SelectMany(input => input)); } if (ScreenServiceVector2Translator != null) { allOutputs.AddRange(ScreenServiceVector2Translator.Translate(ScreenService.Instance)); } return(allOutputs); }
private IList <IInputTranslator <JoystickState, IEnumerable <string> > > GetGenericJoystickTranslators() { var joystickTranslators = new List <IInputTranslator <JoystickState, IEnumerable <string> > >(); for (int i = 0; i < GamePad.MaximumGamePadCount; i++) { try { var jState = Joystick.GetState(i); if (jState.IsConnected) { JoystickTranslators.Add(new JoystickDeviceToKeysTranslator(i)); } } catch (NullReferenceException nrex) { } catch (TypeInitializationException tiex) { } } return(joystickTranslators); }