private void roomSelection_MatchCreated()
        {
            var match = new Match()
            {
                Guid    = Guid.NewGuid().ToString(),
                Leader  = Plugin.client.Self,
                Players = new Player[] { Plugin.client.Self as Player }
            };

            Plugin.client.CreateMatch(match);

            _roomCoordinator = BeatSaberUI.CreateFlowCoordinator <RoomCoordinator>();
            _roomCoordinator.DidFinishEvent += roomCoordinator_DidFinishEvent;
            _roomCoordinator.Match           = match;
            PresentFlowCoordinator(_roomCoordinator);
        }
Esempio n. 2
0
        public void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode)
        {
            if (scene.name == "MenuCore")
            {
                if (_notesMenu == null)
                {
                    _notesMenu = BeatSaberUI.CreateCustomMenu <CustomMenu>("Custom Notes");
                    UI.NoteListViewController noteListViewController = BeatSaberUI.CreateViewController <UI.NoteListViewController>();
                    noteListViewController.backButtonPressed += delegate() { _notesMenu.Dismiss(); };
                    _notesMenu.SetMainViewController(noteListViewController, true);
                    noteListViewController.DidSelectRowEvent += delegate(TableView view, int row) { selectedNote = row; };
                }

                CustomUI.MenuButton.MenuButtonUI.AddButton("CustomNotes", delegate() { _notesMenu.Present(); });
            }
        }
        protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling)
        {
            if (addedToHierarchy)
            {
                //Set up UI
                SetTitle("Server Selection", ViewController.AnimationType.None);
                showBackButton = false;
                _IPConnectionViewController = BeatSaberUI.CreateViewController <IPConnection>();
                _PatchNotesViewController   = BeatSaberUI.CreateViewController <PatchNotes>();

                _splashScreen            = BeatSaberUI.CreateViewController <SplashScreen>();
                _splashScreen.StatusText = "Gathering Server List...";

                ProvideInitialViewControllers(_splashScreen, _IPConnectionViewController, _PatchNotesViewController);
            }
        }
 public void ShowModPageClick()
 {
     if (_shouldOpenPage)
     {
         var currentFlow = Resources.FindObjectsOfTypeAll <FlowCoordinator>().FirstOrDefault(f => f.isActivated);
         _flowCoordinatorOwner = BeatSaberUI.CreateFlowCoordinator <FightSabersFlowCoordinator>();
         _flowCoordinatorOwner.oldCoordinator = currentFlow;
         currentFlow.PresentFlowCoordinator(_flowCoordinatorOwner);
     }
     else
     {
         _flowCoordinatorOwner.oldCoordinator.DismissFlowCoordinator(_flowCoordinatorOwner);
     }
     _shouldOpenPage = !_shouldOpenPage;
     buttonStatus    = _shouldOpenPage ? "Open FightSabers" : "Close FightSabers";
 }
        private void PresentList()
        {
            if (_menuButtonListViewController == null)
            {
                _menuButtonListViewController = BeatSaberUI.CreateViewController <MenuButtonListViewController>();
                _menuButtonListViewController.pinButtonPushed   += PinButtonWasPushed;
                _menuButtonListViewController.backButtonPressed += ListBackPressed;
            }
            _menuButtonListViewController.SetData(buttonData);

            // Using MainFlowCoordinator instead of CustomMenu for compatibility with mods
            FlowCoordinator flowCoordinator = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            flowCoordinator.InvokePrivateMethod("PresentViewController", new object[] { _menuButtonListViewController, null, false });
            flowCoordinator.SetProperty("title", "Mods");
        }
Esempio n. 6
0
 private void Awake()
 {
     if (!mainView)
     {
         mainView = BeatSaberUI.CreateViewController<DTMainSettings>();
     }
     if (!cachedPhysicsView)
     {
         cachedPhysicsView = BeatSaberUI.CreateViewController<DTPhysicsSettings>();
     }
     if (!cachedCosmeticView)
     {
         cachedCosmeticView = BeatSaberUI.CreateViewController<DTCosmeticSettings>();
     }
     ApplyResponsiveVisibility();
 }
Esempio n. 7
0
        // Using Zenject for UI lets goooooooooooo
        public override void InstallBindings()
        {
            // CanvasUtility for UI
            Container.Bind <CanvasUtility>().AsSingle().NonLazy();
            Container.Bind <MockCounter>().AsSingle().NonLazy();

            BindSettingsGroup <MainSettingsGroup>();
            BindSettingsGroup <CountersSettingsGroup>();
            BindSettingsGroup <HUDsSettingsGroup>();

            foreach (CustomCounter customCounter in Plugin.LoadedCustomCounters.Values)
            {
                if (customCounter.BSML != null && customCounter.BSML.HasType)
                {
                    Type hostType = customCounter.BSML.HostType;
                    if (hostType.BaseType == typeof(MonoBehaviour))
                    {
                        Container.Bind(hostType).WithId(customCounter.Name).FromComponentOnRoot().AsCached();
                    }
                    else
                    {
                        Container.Bind(hostType).WithId(customCounter.Name).AsCached();
                    }
                }
            }

            BindViewController <CountersPlusCreditsViewController>();
            BindViewController <CountersPlusMainScreenNavigationController>();
            BindViewController <CountersPlusBlankViewController>();
            BindViewController <CountersPlusSettingSectionSelectionViewController>();
            BindViewController <CountersPlusHorizontalSettingsListViewController>();
            BindViewController <CountersPlusCounterEditViewController>();
            BindViewController <CountersPlusMainSettingsEditViewController>();
            BindViewController <CountersPlusHUDListViewController>();
            BindViewController <CountersPlusHUDEditViewController>();

            var flowCoordinator = BeatSaberUI.CreateFlowCoordinator <CountersPlusSettingsFlowCoordinator>();

            Container.InjectSpecialInstance <CountersPlusSettingsFlowCoordinator>(flowCoordinator);

            MenuTransitionsHelperPatch.Patch(Container.ResolveId <HarmonyObj>(CoreInstaller.HARMONY_ID),
                                             Container.Resolve <CanvasUtility>(),
                                             Container.Resolve <HUDConfigModel>(),
                                             this);

            AddButton();
        }
Esempio n. 8
0
        private void FirstActivation()
        {
            // add some buttons
            RectTransform verticalLayout = UIFunctions.CreateVerticalLayoutObj(new RectOffset(6, 6, 6, 6), 1, TextAnchor.UpperCenter);

            UIFunctions.SetRect(verticalLayout, transform, new Vector2(0, 1), new Vector2(0, 1), new Vector2(85, -40), new Vector2(150, 80));

            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.BladeList, "BLADE MODEL");
            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.GuardList, "GUARD MODEL");
            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.HandleList, "HANDLE MODEL");
            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.PommelList, "POMMEL MODEL");;

            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.AccAList, "ACCESSORY A MODEL");
            UIFunctions.CreateModelSwapPanel(verticalLayout, PartEditor.AccBList, "ACCESSORY B MODEL");

            BeatSaberUI.CreateUIButton(transform.GetComponent <RectTransform>(), "PlayButton", new Vector2(69, 33), new Vector2(16, 16), delegate() { SaberForgeUI.HelpMenu.Present(); }, "?");
        }
        public void Awake()
        {
            if (_moreSongsView == null)
            {
                _moreSongsView  = BeatSaberUI.CreateViewController <MoreSongsListViewController>();
                _songDetailView = BeatSaberUI.CreateViewController <SongDetailViewController>();
                _moreSongsNavigationcontroller = BeatSaberUI.CreateViewController <NavigationController>();
                _moreSongsView.navController   = _moreSongsNavigationcontroller;
                _songDescriptionView           = BeatSaberUI.CreateViewController <SongDescriptionViewController>();
                _downloadQueueView             = BeatSaberUI.CreateViewController <DownloadQueueViewController>();

                _moreSongsView.didSelectSong     += HandleDidSelectSong;
                _moreSongsView.filterDidChange   += HandleFilterDidChange;
                _songDetailView.didPressDownload += HandleDidPressDownload;
                _songDetailView.didPressUploader += HandleDidPressUploader;
            }
        }
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// When the Unity GameObject and all children are ready
        /// </summary>
        internal void Awake()
        {
            if (m_MainView == null)
            {
                m_MainView = BeatSaberUI.CreateViewController <ManagerMain>();
            }
            if (m_LeftView == null)
            {
                m_LeftView = BeatSaberUI.CreateViewController <ManagerLeft>();
            }
            if (m_DetailView == null)
            {
                m_DetailView = BeatSaberUI.CreateViewController <ManagerDetail>();
            }

            m_MainView.FlowCoordinator = this;
        }
Esempio n. 11
0
        public void Initialize()
        {
            try
            {
                _logger.Debug("Attempting to Initialize FPS Counter");

                _targetFramerate = (int)XRDevice.refreshRate;
                _logger.Debug($"Target framerate = {_targetFramerate}");

                var gameObject = new GameObject("FPS Counter");

                var canvas = gameObject.AddComponent <Canvas>();
                canvas.renderMode = RenderMode.WorldSpace;
                gameObject.transform.localScale = Vector3.one / 10;
                gameObject.transform.position   = new Vector3(0, 3.5f, 8f);
                gameObject.transform.rotation   = Quaternion.identity;
                gameObject.AddComponent <CurvedCanvasSettings>().SetRadius(0f);

                var canvasTransform = canvas.transform as RectTransform;

                _counter             = BeatSaberUI.CreateText(canvasTransform, string.Empty, Vector3.zero);
                _counter.alignment   = TextAlignmentOptions.Center;
                _counter.fontSize    = 2.5f;
                _counter.color       = Color.white;
                _counter.lineSpacing = -50f;
                _counter.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 2f);
                _counter.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 2f);
                _counter.enableWordWrapping = false;
                _counter.overflowMode       = TextOverflowModes.Overflow;

                if (!_config.ShowRing)
                {
                    return;
                }

                _image = _fpsCounterUtils.CreateRing(canvas);
                var imageTransform = _image.rectTransform;
                imageTransform.anchoredPosition = _counter.rectTransform.anchoredPosition;
                imageTransform.localScale      *= 0.1f;
            }
            catch (Exception ex)
            {
                _logger.Error("FPS Counter Done");
                _logger.Error(ex);
            }
        }
        public void Awake()
        {
            if (_playlistsNavigationController == null && _playlistDetailViewController == null)
            {
                _playlistsNavigationController = BeatSaberUI.CreateViewController <BackButtonNavigationController>();
                _playlistsNavigationController.didFinishEvent += _playlistsNavigationController_didFinishEvent;

                GameObject _playlistDetailGameObject = Instantiate(Resources.FindObjectsOfTypeAll <StandardLevelDetailViewController>().First(), _playlistsNavigationController.rectTransform, false).gameObject;
                _playlistDetailViewController = _playlistDetailGameObject.AddComponent <PlaylistDetailViewController>();
                Destroy(_playlistDetailGameObject.GetComponent <StandardLevelDetailViewController>());
                _playlistDetailViewController.name = "PlaylistDetailViewController";

                _playlistDetailViewController.downloadButtonPressed += _playlistDetailViewController_downloadButtonPressed;
                _playlistDetailViewController.selectButtonPressed   += _playlistDetailViewController_selectButtonPressed;
                _playlistDetailViewController.SetSelectButtonText("Select");
            }
        }
Esempio n. 13
0
        protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling)
        {
            if (addedToHierarchy)
            {
                //Set up UI
                SetTitle("Event Selection", ViewController.AnimationType.None);
                showBackButton = false;

                _qualifierSelection = BeatSaberUI.CreateViewController <ItemSelection>();
                _qualifierSelection.ItemSelected += itemSelection_ItemSelected;

                _splashScreen            = BeatSaberUI.CreateViewController <SplashScreen>();
                _splashScreen.StatusText = "Gathering Event List...";

                ProvideInitialViewControllers(_splashScreen);
            }
        }
Esempio n. 14
0
        //If we're in tournament mode, we'll actually be alive when we recieve the initial
        //ConnectResponse. When we do, we need to check to see if Teams is enabled
        //so we can offer the team selection screen if needed.
        protected override void Client_ConnectedToServer(ConnectResponse response)
        {
            base.Client_ConnectedToServer(response);

            UnityMainThreadDispatcher.Instance().Enqueue(() =>
            {
                _splashScreen.StatusText = "Waiting for the coordinator to create your match...";

                if ((response.Self as Player).Team.Id == Guid.Empty && Plugin.client.State.ServerSettings.Teams.Length > 0)
                {
                    _teamSelection = BeatSaberUI.CreateViewController <TeamSelection>();
                    _teamSelection.TeamSelected += teamSelection_TeamSelected;
                    _teamSelection.SetTeams(new List <Team>(Plugin.client.State.ServerSettings.Teams));
                    ShowTeamSelection();
                }
            });
        }
Esempio n. 15
0
 /// <summary>
 /// Only ever called once on the first frame the script is Enabled. Start is called after any other script's Awake() and before Update().
 /// </summary>
 private void Start()
 {
     try {
         this.screenGO = new GameObject("NotificationText", typeof(CanvasScaler), typeof(RectMask2D), typeof(VRGraphicRaycaster), typeof(CurvedCanvasSettings));
         this.screenGO.GetComponent <VRGraphicRaycaster>().SetField("_physicsRaycaster", BeatSaberUI.PhysicsRaycasterWithCache);
         this.screenGO.transform.localScale = new Vector3(1f, 1f, 1f);
         this.notificationText                       = BeatSaberUI.CreateText(screenGO.gameObject.transform as RectTransform, "DEFAULT", Vector2.zero);
         this.notificationText.alignment             = TextAlignmentOptions.Center;
         this.notificationText.autoSizeTextContainer = false;
         this.noteJumpStartBeatOffsetDropdown        = this.playerSettingsPanelController.GetField <NoteJumpStartBeatOffsetDropdown, PlayerSettingsPanelController>("_noteJumpStartBeatOffsetDropdown");
         this.noteJumpStartBeatOffsetDropdown.didSelectCellWithIdxEvent += this.NoteJumpStartBeatOffsetDropdown_didSelectCellWithIdxEvent;
         this.NoteJumpStartBeatOffsetDropdown_didSelectCellWithIdxEvent(noteJumpStartBeatOffsetDropdown.GetIdxForOffset(playerDataModel.playerData.playerSpecificSettings.noteJumpStartBeatOffset));
     }
     catch (Exception e) {
         Plugin.Log.Error(e);
     }
 }
        public void Awake()
        {
            if (!rainbowsDescriptionView)
            {
                rainbowsDescriptionView = BeatSaberUI.CreateViewController <RainbowsDescriptionViewController>();
            }

            if (!rainbowsListView)
            {
                rainbowsListView = BeatSaberUI.CreateViewController <RainbowsListViewController>();

                if (rainbowsDescriptionView)
                {
                    rainbowsListView.rainbowChanged += rainbowsDescriptionView.ChangeDescription;
                }
            }
        }
Esempio n. 17
0
        private void Awake()
        {
            this.alternativePlayView = BeatSaberUI.CreateViewController <AlternativePlayView>();
            this.alternativePlayView.MainFlowCoordinator = this;
            this.gameModifiersView = BeatSaberUI.CreateViewController <GameModifiersView>();

            this.beatSaberSettingsView = BeatSaberUI.CreateViewController <BeatSaberView>();
            this.beatSaberSettingsView.SetMainFlowCoordinator(this);
            this.darthMaulSettingsView = BeatSaberUI.CreateViewController <DarthMaulView>();
            this.darthMaulSettingsView.SetMainFlowCoordinator(this);
            this.beatSpearSettingsView = BeatSaberUI.CreateViewController <BeatSpearView>();
            this.beatSpearSettingsView.SetMainFlowCoordinator(this);

            this.trackerSelectView = BeatSaberUI.CreateViewController <TrackerSelectView>();
            this.trackerSelectView.SetMainFlowCoordinator(this);
            this.trackerPoseView = BeatSaberUI.CreateViewController <TrackerPoseView>();
        }
Esempio n. 18
0
        public KEYBOARD(RectTransform container, string DefaultKeyboard = QWERTY, bool EnableInputField = true, float x = 0, float y = 0)
        {
            this.EnableInputField = EnableInputField;
            this.container        = container;
            baseposition          = new Vector2(-50 + x, 23 + y);
            currentposition       = baseposition;
            //bool addhint = true;

            SetButtonType();

            // BUG: Make this an input field maybe

            KeyboardText                    = BeatSaberUI.CreateText(container, "", new Vector2(0, 23f));
            KeyboardText.fontSize           = 6f;
            KeyboardText.color              = Color.white;
            KeyboardText.alignment          = TextAlignmentOptions.Center;
            KeyboardText.enableWordWrapping = false;
            KeyboardText.text               = "";
            KeyboardText.enabled            = this.EnableInputField;
            //KeyboardText



            KeyboardCursor                    = BeatSaberUI.CreateText(container, "|", new Vector2(0, 0));
            KeyboardCursor.fontSize           = 6f;
            KeyboardCursor.color              = Color.cyan;
            KeyboardCursor.alignment          = TextAlignmentOptions.Left;
            KeyboardCursor.enableWordWrapping = false;
            KeyboardCursor.enabled            = this.EnableInputField;

            DrawCursor(); // BUG: Doesn't handle trailing spaces.. seriously, wtf.

            // We protect this since setting nonexistent keys will throw.

            // BUG: These are here on a temporary basis, they will be moving out as soon as API is finished


            if (DefaultKeyboard != "")
            {
                AddKeys(DefaultKeyboard);
                DefaultActions();
            }


            return;
        }
        private void _playerInfoViewController_editImageButtonPressed()
        {
            if (_imageUploadViewController == null)
            {
                _imageUploadViewController = BeatSaberUI.CreateViewController <ImageUploadViewController>();
                _imageUploadViewController.refreshButtonClicked += _imageUploadViewController_refreshButtonPressed;
                _imageUploadViewController.setButtonClicked     += _imageUploadViewController_setButtonPressed;
                _imageUploadViewController.closeButtonClicked   += _imageUploadViewController_backButtonPressed;
            }

            if (_imageUploadViewController._titleText != null)
            {
                _imageUploadViewController._titleText.text = "Change Profile Picture";
            }

            PresentViewController(_imageUploadViewController);
        }
Esempio n. 20
0
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (firstActivation)
            {
                _prevChannelButton = BeatSaberUI.CreateUIButton(rectTransform, "QuitButton", new Vector2(-55f, 34f), () => { prevPressedEvent?.Invoke(); }, "<<");
                _nextChannelButton = BeatSaberUI.CreateUIButton(rectTransform, "QuitButton", new Vector2(65f, 34f), () => { nextPressedEvent?.Invoke(); }, ">>");

                _loadingIndicator = BeatSaberUI.CreateLoadingSpinner(rectTransform);
                (_loadingIndicator.transform as RectTransform).anchoredPosition = new Vector2(4.5f, 4.5f);

                _container = new GameObject("Container", typeof(RectTransform));
                _container.transform.SetParent(rectTransform, false);

                _joinButton = BeatSaberUI.CreateUIButton(rectTransform, "QuitButton", new Vector2(4.5f, -30f), () => { joinPressedEvent?.Invoke(currentChannel); }, "Join");
                _joinButton.ToggleWordWrapping(false);
                _joinButton.transform.SetParent(_container.transform, true);

                _channelCover = new GameObject("CustomUIImage").AddComponent <Image>();

                _channelCover.material = Sprites.NoGlowMat;
                _channelCover.rectTransform.SetParent(rectTransform, false);
                _channelCover.rectTransform.anchorMin        = new Vector2(0.5f, 0.5f);
                _channelCover.rectTransform.anchorMax        = new Vector2(0.5f, 0.5f);
                _channelCover.rectTransform.anchoredPosition = new Vector2(4.5f, 4.5f);
                _channelCover.rectTransform.sizeDelta        = new Vector2(32f, 32f);
                _channelCover.sprite = UIUtilities.BlankSprite;
                _channelCover.rectTransform.SetParent(_container.transform, true);

                _channelNameText              = BeatSaberUI.CreateText(rectTransform, "CHANNEL NAME", new Vector2(4.5f, 35.50f));
                _channelNameText.alignment    = TextAlignmentOptions.Top;
                _channelNameText.overflowMode = TextOverflowModes.Overflow;
                _channelNameText.lineSpacing  = -46f;
                _channelNameText.fontSize     = 10;
                _channelNameText.transform.SetParent(_container.transform, true);

                _playerCountText           = BeatSaberUI.CreateText(rectTransform, "Players: 0", new Vector2(4.5f, -15f));
                _playerCountText.alignment = TextAlignmentOptions.Center;
                _playerCountText.transform.SetParent(_container.transform, true);

                _nowPlayingText           = BeatSaberUI.CreateText(rectTransform, "Now playing: UNKNOWN", new Vector2(4.5f, -21f));
                _nowPlayingText.alignment = TextAlignmentOptions.Center;
                _nowPlayingText.transform.SetParent(_container.transform, true);
            }
            _container.SetActive(false);
        }
Esempio n. 21
0
        internal static void CreateMenu()
        {
            if (SaberForgeMenu == null)
            {
                SaberForgeMenu = BeatSaberUI.CreateCustomMenu <CustomMenu>("Saber Forge");

                //create views
                mainViewController  = BeatSaberUI.CreateViewController <MainViewController>();
                rightViewController = BeatSaberUI.CreateViewController <RightViewController>();
                leftViewController  = BeatSaberUI.CreateViewController <LeftViewController>();

                //set back button
                mainViewController.backButtonPressed += delegate()
                {
                    SaberForgeMenu.Dismiss();
                };

                //set view positions
                SaberForgeMenu.SetMainViewController(mainViewController, true);
                SaberForgeMenu.SetRightViewController(rightViewController, false);
                SaberForgeMenu.SetLeftViewController(leftViewController, false);
            }

            if (HelpMenu == null)
            {
                HelpMenu = BeatSaberUI.CreateCustomMenu <CustomMenu>("Saber Forge Help");

                HelpMainViewController  helpMainViewController  = BeatSaberUI.CreateViewController <HelpMainViewController>();
                HelpRightViewController helpRightViewController = BeatSaberUI.CreateViewController <HelpRightViewController>();
                HelpLeftViewController  helpLeftViewController  = BeatSaberUI.CreateViewController <HelpLeftViewController>();

                //set back button
                helpMainViewController.backButtonPressed += delegate()
                {
                    HelpMenu.Dismiss(); rightViewController.ForceSliders(); leftViewController.ForceSliders();;
                };

                //set view positions
                HelpMenu.SetMainViewController(helpMainViewController, true);
                HelpMenu.SetRightViewController(helpRightViewController, false);
                HelpMenu.SetLeftViewController(helpLeftViewController, false);
            }

            MenuButtonUI.AddButton("Saber Forge", delegate() { SaberForgeMenu.Present(); rightViewController.ForceSliders(); leftViewController.ForceSliders(); });
        }
Esempio n. 22
0
        private void FirstActivation()
        {
            string helpText = "<size=150%><b>Instructions</b> \n" +
                              "\n" +
                              "<size=120%>1 - Adjust your sabers using the options provided in Saber Forge.\n" +
                              "\n" +
                              "2 - Open the Custom Sabers mod menu and choose the 'Saber Forge' sabers. \n" +
                              "\n" +
                              "3 - Hit bloq"
            ;

            RectTransform verticalLayout = UIFunctions.CreateVerticalLayoutObj(new RectOffset(6, 6, 6, 6), 1, TextAnchor.UpperCenter);

            UIFunctions.SetRect(verticalLayout, transform, new Vector2(0, 1), new Vector2(0, 1), new Vector2(85, -40), new Vector2(150, 80));

            TextMeshProUGUI matLabelText = BeatSaberUI.CreateText(verticalLayout, helpText, new Vector2(0, 0), new Vector2(100, 80));

            //format
            matLabelText.alignment = TextAlignmentOptions.Top;

            //donate button
            Button donate = BeatSaberUI.CreateUIButton(transform as RectTransform, "PlayButton", new Vector2(-50, -33), new Vector2(50, 16), null, "DONATE <3");

            donate.onClick.AddListener(() => { GoTo("https://ko-fi.com/frostdragonliz", donate); });
            BeatSaberUI.AddHintText(donate.transform as RectTransform, "Kofi $$ will go towards future mod and part development, ta!");


            //reload assets button TO DO
            //  Button reload = BeatSaberUI.CreateUIButton(transform as RectTransform, "PlayButton", new Vector2(0, -33), new Vector2(50, 16), null, "USER TEXTURES");
            //  reload.onClick.AddListener(() => { Plugin.ReloadAssets(); });
            //  BeatSaberUI.AddHintText(reload.transform as RectTransform, "Force a reload of SaberForge Assets");

            //tutes button
            Button tutorials = BeatSaberUI.CreateUIButton(transform as RectTransform, "PlayButton", new Vector2(8, -33), new Vector2(50, 16), null, "TUTORIALS");

            tutorials.onClick.AddListener(() => { GoTo("https://www.youtube.com/playlist?list=PLyJh_4G6B76PPdL-rAmb44-475D0_0UBs", tutorials); });
            BeatSaberUI.AddHintText(tutorials.transform as RectTransform, "YouTube Tutorials");


            //github button
            Button github = BeatSaberUI.CreateUIButton(transform as RectTransform, "PlayButton", new Vector2(60, -33), new Vector2(50, 16), null, "SOURCE");

            github.onClick.AddListener(() => { GoTo("https://github.com/lizfrost/SaberForge", github); });
            BeatSaberUI.AddHintText(github.transform as RectTransform, "Source and mod info");
        }
Esempio n. 23
0
        public void SearchButtonPressed()
        {
            if (_searchFlowCoordinator == null)
            {
                _searchFlowCoordinator      = BeatSaberUI.CreateFlowCoordinator <SearchFlowCoordinator>();
                _searchFlowCoordinator.name = "EnhancedSearchFlowCoordinator";

                _searchFlowCoordinator.BackButtonPressed         += DismissSearchFlowCoordinator;
                _searchFlowCoordinator.SongSelected              += SelectSongFromSearchResult;
                _searchFlowCoordinator.SearchFilterButtonPressed += ApplySearchFilter;
            }

            IAnnotatedBeatmapLevelCollection levelPack;

            if (SongBrowserTweaks.Initialized)
            {
                if (SongBrowserTweaks.IsFilterApplied())
                {
                    levelPack = LevelSelectionNavigationController.GetPrivateField <IBeatmapLevelPack>("_levelPack", typeof(LevelSelectionNavigationController));
                }
                // technically, the _lastPack doesn't actually contain the pack being shown
                // (since SongBrowser always overrides the selected pack with its own pack to handle sorting/filtering)
                // but any non-filtered level pack is going to contain the same levels anyways
                // and i'll need the true level pack ID for word storage caching
                else
                {
                    levelPack = _lastPack;
                }
            }
            else if (FilterList.AnyApplied)
            {
                levelPack = _filteredLevelPack;
            }
            else
            {
                levelPack = _lastPack;
            }

            _searchFlowCoordinator.Activate(_freePlayFlowCoordinator, levelPack);

            if (!ButtonPanel.IsSingletonAvailable || !ButtonPanel.instance.Initialized)
            {
                Logger.log.Debug("'Search' button pressed.");
            }
        }
Esempio n. 24
0
        public override void __Activate(ActivationType activationType)
        {
            selected = SaberLoader.FindSaberByName(Plugin._currentSaberName);

            base.__Activate(activationType);
            _customListTableView.SelectCellWithIdx(selected);

            if (_backButton == null)
            {
                _backButton = BeatSaberUI.CreateBackButton(rectTransform as RectTransform);
                _backButton.onClick.AddListener(delegate()
                {
                    backButtonPressed?.Invoke();

                    SaberPreviewController.Instance.DestroyPreview();
                    _customListTableView.didSelectCellWithIdxEvent -= _sabersTableView_DidSelectRowEvent;
                    if (menuShockwave)
                    {
                        menuShockwave.enabled = menuShockwaveOriginalState;
                    }
                });
            }

            PreviewCurrent();

            if (menuShockwave)
            {
                menuShockwaveOriginalState = menuShockwave.enabled;
                menuShockwave.enabled      = false;
            }

            var _versionNumber = BeatSaberUI.CreateText(rectTransform, "Text", new Vector2(-10f, -10f));

            (_versionNumber.transform as RectTransform).anchoredPosition = new Vector2(-10f, 10f);
            (_versionNumber.transform as RectTransform).anchorMax        = new Vector2(1f, 0f);
            (_versionNumber.transform as RectTransform).anchorMin        = new Vector2(1f, 0f);

            _versionNumber.text     = $"v{Plugin.PluginVersion}";
            _versionNumber.fontSize = 5;
            _versionNumber.color    = Color.white;

            _customListTableView.didSelectCellWithIdxEvent += _sabersTableView_DidSelectRowEvent;
            _customListTableView.ScrollToCellWithIdx(selected, TableViewScroller.ScrollPositionType.Beginning, false);
            _customListTableView.SelectCellWithIdx(selected, false);
        }
Esempio n. 25
0
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (activationType == ActivationType.AddedToHierarchy)
            {
                title = "Media Panel";

                if (mainFlowCoordinator == null)
                {
                    mainFlowCoordinator = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
                }

                mainModNavigationController = BeatSaberUI.CreateViewController <GeneralNavigationController>();
                mainModNavigationController.didFinishEvent += (_) => mainFlowCoordinator.InvokeMethod("DismissFlowCoordinator", this, null, false);

                ProvideInitialViewControllers(mainModNavigationController, null, null);
                OpenFileList();
            }
        }
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (firstActivation)
            {
                title = "Platform Select";

                ui = PlatformUI._instance;
            }
            if (_platformListViewController == null)
            {
                _platformListViewController = BeatSaberUI.CreateViewController <PlatformListViewController>();
                _platformListViewController.platformListBackWasPressed += Dismiss;
            }
            if (activationType == FlowCoordinator.ActivationType.AddedToHierarchy)
            {
                ProvideInitialViewControllers(_platformListViewController, null, null);
            }
        }
        public void Awake()
        {
            if (!saberPreviewView)
            {
                saberPreviewView = BeatSaberUI.CreateViewController <SaberPreviewViewController>();
            }

            if (!saberSettingsView)
            {
                saberSettingsView = BeatSaberUI.CreateViewController <SaberSettingsViewController>();
            }

            if (!saberListView)
            {
                saberListView = BeatSaberUI.CreateViewController <SaberListViewController>();
                saberListView.customSaberChanged += saberPreviewView.OnSaberWasChanged;
            }
        }
        private void roomSelection_MatchCreated()
        {
            var match = new Match
            {
                Guid = Guid.NewGuid().ToString(),
                // Always a player when is the client
                Player = Plugin.client.SelfObject as Player
            };

            match.Players.Add(Plugin.client.SelfObject as Player);

            Plugin.client.CreateMatch(match);

            _roomCoordinator = BeatSaberUI.CreateFlowCoordinator <RoomCoordinator>();
            _roomCoordinator.DidFinishEvent += roomCoordinator_DidFinishEvent;
            _roomCoordinator.Match           = match;
            PresentFlowCoordinator(_roomCoordinator);
        }
Esempio n. 29
0
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (firstActivation)
            {
                if (activationType == ActivationType.AddedToHierarchy)
                {
                    _backButton = BeatSaberUI.CreateBackButton(rectTransform);
                    _backButton.onClick.AddListener(delegate() { if (!_isInTransition && !_parentViewController.GetPrivateField <bool>("_isInTransition"))
                                                                 {
                                                                     didFinishEvent?.Invoke();
                                                                 }
                                                    });

                    _loadingIndicator = BeatSaberUI.CreateLoadingSpinner(rectTransform);
                    _loadingIndicator.SetActive(false);
                }
            }
        }
Esempio n. 30
0
 protected override void DidActivate(bool firstActivation, ActivationType activationType)
 {
     if (firstActivation)
     {
         title = "BeFit Users";
         ui    = BeFitUI._instance;
     }
     if (_beFitListViewController == null)
     {
         _beFitListViewController = BeatSaberUI.CreateViewController <BeFitListViewController>();
         _beFitListViewController.beFitListBackWasPressed += Dismiss;
         _beFitListViewController.beFitListNewUserPressed += Dismiss;
     }
     if (activationType == FlowCoordinator.ActivationType.AddedToHierarchy)
     {
         ProvideInitialViewControllers(_beFitListViewController, null, null);
     }
 }