Пример #1
0
        public void Load(IModuleContext context)
        {
            var settingsManager = context.ServiceLocator.GetInstance<ISettingsManager>();
            settingsManager.RegisterSettings<KeyboardBindingSettings>();
            settingsManager.RegisterSettings<GamepadBindingSettings>();
            settingsManager.RegisterSettings<InputSettings>();

            SetDefaults(settingsManager);

            InputManager inputManager = new InputManager();

            context.InputSourceAssembler.ConfigureInputSource((c) =>
                {
                    var settings = settingsManager.LoadSettings<InputSettings>(c);

                    if (settings.IsUserInputEnabled)
                    {
                        var bindings = settingsManager.LoadSettings<KeyboardBindingSettings>(c);
                        KeyboardInputSource keyboard = new KeyboardInputSource(inputManager.GetKeyboard(), bindings);
                        return keyboard;
                    }

                    return null;

                });


            context.InputSourceAssembler.ConfigureInputSource((c) =>
                {
                    var settings = settingsManager.LoadSettings<InputSettings>(c);

                    if (settings.IsUserInputEnabled)
                    {
                        CompositeInputSource cis = new CompositeInputSource();

                        for (Int32 i = 0; i < inputManager.GetJoystickCount(); i++)
                        {
                            var bindings = settingsManager.LoadSettings<GamepadBindingSettings>(c);

                            if (i == 0)
                            {
                                GamepadInputSource gamepad = new GamepadInputSource(inputManager.GetJoystick(i), bindings.Gamepad1Bindings);
                                cis.AddInputSource(gamepad);
                            }
                            else if (i == 1)
                            {
                                GamepadInputSource gamepad = new GamepadInputSource(inputManager.GetJoystick(i), bindings.Gamepad2Bindings);
                                cis.AddInputSource(gamepad);
                            }
                        }

                        return cis;
                    }

                    return null;
                });
        }
Пример #2
0
        public SmsInputViewModel(ISettingsManager settingsManager, InputManager inputManager)
        {
            _settingsManager = settingsManager;
            _keyboardSettings = _settingsManager.LoadSettings<KeyboardBindingSettings>(new EmulationContext(new Game(String.Empty, String.Empty), new EmulatedSystem("SMS")));
            _gamepadSettings = _settingsManager.LoadSettings<GamepadBindingSettings>(new EmulationContext(new Game(String.Empty, String.Empty), new EmulatedSystem("SMS")));
            _newKeyboardBindings = new List<KeyboardBindingSettings.KeyBinding>(_keyboardSettings.Bindings);
            _newGamepad1BindingSettings = new List<GamepadBindingSettings.GamepadBinding>(_gamepadSettings.Gamepad1Bindings);
            _newGamepad2BindingSettings = new List<GamepadBindingSettings.GamepadBinding>(_gamepadSettings.Gamepad2Bindings);

            UpdateStrings();
        }