Beispiel #1
0
    private IEnumerator <WaitCommand> StartRebindInternal(InputBindingViewModel binding)
    {
        var bindingId = binding.Id;

        // TODO Update selected binding in the menu model
        Fmod.PlayOneShot("event:/ui/forward");
        // Disable menu input to view
        //_mouseInputToView.Disable();
        _inputModule.DeactivateModule();

        yield return(WaitCommand.WaitForNextFrame);

        _model.Rebinding = binding;

        if (bindingId.Group == InputBindingGroup.Menu)
        {
            MenuAction menuAction = (MenuAction)bindingId.ActionId;
            _inputRebinder.StartRebind(inputSource => {
                if (inputSource.IsJust)
                {
                    _menuInputBindings.UpdateMapping(menuAction, inputSource.Value);
                }
                _coroutineScheduler.Run(CompleteRebind(isCanceled: inputSource.IsNothing));
            });
        }
        else if (bindingId.Group == InputBindingGroup.Wingsuit)
        {
            WingsuitAction pilotAction = (WingsuitAction)bindingId.ActionId;
            _inputRebinder.StartRebind(inputSource => {
                if (inputSource.IsJust)
                {
                    _pilotInputBindings.UpdateMapping(pilotAction, inputSource.Value);
                }
                _coroutineScheduler.Run(CompleteRebind(isCanceled: inputSource.IsNothing));
            });
        }
        else if (bindingId.Group == InputBindingGroup.Spectator)
        {
            SpectatorAction spectatorAction = (SpectatorAction)bindingId.ActionId;
            _inputRebinder.StartRebind(inputSource => {
                if (inputSource.IsJust)
                {
                    _spectatorInputBindings.UpdateMapping(spectatorAction, inputSource.Value);
                }
                _coroutineScheduler.Run(CompleteRebind(isCanceled: inputSource.IsNothing));
            });
        }
        else if (bindingId.Group == InputBindingGroup.Parachute)
        {
            ParachuteAction parachuteAction = (ParachuteAction)bindingId.ActionId;
            _inputRebinder.StartRebind(inputSource => {
                if (inputSource.IsJust)
                {
                    _parachuteInputBindings.UpdateMapping(parachuteAction, inputSource.Value);
                }
                _coroutineScheduler.Run(CompleteRebind(isCanceled: inputSource.IsNothing));
            });
        }
    }
Beispiel #2
0
        public void SetState(InputBindingViewModel inputBinding, bool isRebinding, string rebindingText)
        {
            _bindingTitle.Clear()
            .Append(inputBinding.Group)
            .Append(" - ")
            .Append(inputBinding.Name)
            .Append(" <i>(")
            .Append(inputBinding.BindingType)
            .Append(")</i>");
            _data.TitleWrapper.SetActive(!isRebinding);
            _data.Title.SetMutableString(_bindingTitle);

            if (isRebinding)
            {
                _data.Binding.text      = rebindingText;
                _data.Binding.fontStyle = FontStyle.Italic;
            }
            else
            {
                _data.Binding.text      = inputBinding.Binding;
                _data.Binding.fontStyle = FontStyle.Bold;
            }
        }
Beispiel #3
0
 private void StartRebind(InputBindingViewModel binding)
 {
     _coroutineScheduler.Run(StartRebindInternal(binding));
 }
Beispiel #4
0
 public void StartRebind(InputBindingViewModel binding)
 {
     _startRebind(binding);
 }