Esempio n. 1
0
        public OptionsMenuController(Window parent)
        {
            _model  = new OptionsMenuModel();
            _view   = new OptionsMenu();
            _parent = parent;
            _parent.Hide();
            _view.Show();

            AddEvents();
            ModifySlidersValue();
            TabControl_SelectionChanged(null, null); // The event doesn't fire when it's the first time, has to be called manually
            ModifySkinsTab();
        }
Esempio n. 2
0
    public void Initialize()
    {
        _model = new OptionsMenuModel(_gameSettingsProvider,
                                      _activeLanguage.Languages,
                                      _versionInfo.VersionNumber,
                                      StartRebind,
                                      RestoreInputToDefaults);
        _activeLanguage.TableUpdates.Subscribe(languageTable => {
            _model.LanguageTable = languageTable;
        });


        _renderer.SetActive(false);

        _menus = new Dictionary <Menu, AbstractMenu>();
        for (int i = 0; i < _availableMenus.Count; i++)
        {
            var menu = _availableMenus[i];
            _menus[menu.Id] = menu;
            menu.Initialize(_model);
        }
        _model.MenuLoaded += menuId => {
            var menu          = _menus[menuId];
            var firstSelected = menu.GetComponentsInChildren <Selectable>()
                                .Find(s => s.isActiveAndEnabled && s.navigation.mode != Navigation.Mode.None);
            if (firstSelected.IsJust)
            {
                EventSystem.current.firstSelectedGameObject = firstSelected.Value.gameObject;
                EventSystem.current.SetSelectedGameObject(firstSelected.Value.gameObject);
            }
        };
        _model.Updated += model => {
            for (int i = 0; i < _availableMenus.Count; i++)
            {
                var menu = _availableMenus[i];
                menu.gameObject.SetActive(model.ActiveMenu == menu.Id);
            }

            var activeMenu = _menus[model.ActiveMenu];
            activeMenu.SetState(model, model.LanguageTable.AsFunc);
            _versionNumber.text = model.AppVersion;
        };
        _model.OnMenuClosed += action => {
            if (_menuCloseHandler != null)
            {
                _menuCloseHandler(action, null);
            }
        };

        _inputMappingsViewModel.InputMappings.Subscribe(inputBindings => {
            _model.InputBindings = inputBindings;
        });

        _joystickActivator.ActiveController.Subscribe(controller => {
            if (controller.HasValue)
            {
                _connectedController.text = "Active device: <i>" + controller.Value.Name + "</i>";
            }
            else
            {
                _connectedController.text = "Active device: <i>keyboard and mouse</i>";
            }
        });
    }