示例#1
0
        public static void OnLoad()
        {
            try
            {
                var _levelListViewController = Resources.FindObjectsOfTypeAll <SelectLevelCategoryViewController>().Last();

                _levelListViewController.didActivateEvent += _levelListViewController_didActivateEvent;

                if (_levelListViewController)
                {
                    // move the icon control
                    var iconSegmentedControl = _levelListViewController.GetField <IconSegmentedControl, SelectLevelCategoryViewController>("_levelFilterCategoryIconSegmentedControl");
                    ((RectTransform)iconSegmentedControl.transform).anchoredPosition = new Vector2(0, 4.5f);

                    _requestButton = _levelListViewController.CreateUIButton("SRMButton", "PracticeButton", new Vector2(14, -4.5f), new Vector2(15f, 105f),
                                                                             () =>
                    {
                        _requestButton.interactable = false;
                        SRMButtonPressed();
                        _requestButton.interactable = true;
                    },
                                                                             "SRM");


                    _requestButton.ToggleWordWrapping(false);
                    _requestButton.SetButtonTextSize(5f);

                    UIHelper.AddHintText(_requestButton.transform as RectTransform, "Manage the current request queue");

                    UpdateRequestUI();
                    Plugin.Log("Created request button!");
                }
            }
            catch
            {
                Plugin.Log("Unable to create request button");
            }

            // check if flow coordinator has been setup yet
            if (_flowCoordinator == null)
            {
                _flowCoordinator = BeatSaberMarkupLanguage.BeatSaberUI.CreateFlowCoordinator <RequestFlowCoordinator>();
            }

            SongListUtils.Initialize();

            ChatHandler.instance.Init();

            WriteQueueSummaryToFile();
            WriteQueueStatusToFile(QueueMessage(RequestBotConfig.Instance.RequestQueueOpen));

            if (Instance)
            {
                return;
            }
            new GameObject("SongRequestManager").AddComponent <RequestBot>();
        }
        public static void OnLoad()
        {
            try
            {
                var _levelListViewController = Resources.FindObjectsOfTypeAll <LevelCollectionViewController>().First();
                if (_levelListViewController)
                {
                    _requestButton = UIHelper.CreateUIButton(_levelListViewController.rectTransform, "OkButton", new Vector2(66, -3.5f),
                                                             new Vector2(9f, 5.5f), () => { _requestButton.interactable = false; SRMButtonPressed(); _requestButton.interactable = true; }, "SRM");

                    (_requestButton.transform as RectTransform).anchorMin = new Vector2(1, 1);
                    (_requestButton.transform as RectTransform).anchorMax = new Vector2(1, 1);

                    _requestButton.ToggleWordWrapping(false);
                    _requestButton.SetButtonTextSize(3.5f);
                    UIHelper.AddHintText(_requestButton.transform as RectTransform, "Manage the current request queue");

                    UpdateRequestUI();
                    Plugin.Log("Created request button!");
                }
            }
            catch
            {
                Plugin.Log("Unable to create request button");
            }

            // check if flow coordinator has been setup yet
            if (_flowCoordinator == null)
            {
                _flowCoordinator = BeatSaberMarkupLanguage.BeatSaberUI.CreateFlowCoordinator <RequestFlowCoordinator>();
            }

            SongListUtils.Initialize();

            ChatHandler.instance.Init();

            WriteQueueSummaryToFile();
            WriteQueueStatusToFile(QueueMessage(RequestBotConfig.Instance.RequestQueueOpen));

            if (Instance)
            {
                return;
            }
            new GameObject("SongRequestManager").AddComponent <RequestBot>();
        }
示例#3
0
        public static void OnLoad()
        {
            try
            {
                var _levelListViewController = Resources.FindObjectsOfTypeAll <LevelPackLevelsViewController>().First();
                if (_levelListViewController)
                {
                    _requestButton = BeatSaberUI.CreateUIButton(_levelListViewController.rectTransform, "OkButton", new Vector2(66, -3.5f),
                                                                new Vector2(9f, 5.5f), () => { _requestButton.interactable = false; _songRequestMenu.Present(); _requestButton.interactable = true; }, "SRM");

                    (_requestButton.transform as RectTransform).anchorMin = new Vector2(1, 1);
                    (_requestButton.transform as RectTransform).anchorMax = new Vector2(1, 1);

                    _requestButton.ToggleWordWrapping(false);
                    _requestButton.SetButtonTextSize(3.5f);
                    BeatSaberUI.AddHintText(_requestButton.transform as RectTransform, "Manage the current request queue");

                    UpdateRequestUI();
                    Plugin.Log("Created request button!");
                }
            }
            catch
            {
                Plugin.Log("Unable to create request button");
            }

            if (_songRequestListViewController == null)
            {
                _songRequestListViewController = BeatSaberUI.CreateViewController <RequestBotListViewController>();
            }


            if (_KeyboardViewController == null)
            {
                _KeyboardViewController = BeatSaberUI.CreateViewController <CustomViewController>();

                RectTransform KeyboardContainer = new GameObject("KeyboardContainer", typeof(RectTransform)).transform as RectTransform;
                KeyboardContainer.SetParent(_KeyboardViewController.rectTransform, false);
                KeyboardContainer.sizeDelta = new Vector2(60f, 40f);

                var mykeyboard = new KEYBOARD(KeyboardContainer, "");

#if UNRELEASED
                //mykeyboard.AddKeys(BOTKEYS, 0.4f);
                AddKeyboard(mykeyboard, "emotes.kbd", 0.4f);
#endif
                mykeyboard.AddKeys(KEYBOARD.QWERTY); // You can replace this with DVORAK if you like
                mykeyboard.DefaultActions();



#if UNRELEASED
                const string SEARCH = @"

[CLEAR SEARCH]/0 /2 [NEWEST]/0 /2 [UNFILTERED]/30 /2 [PP]/0'!addsongs/top/pp pp%CR%' /2 [SEARCH]/0";
#else
                const string SEARCH = @"

[CLEAR SEARCH]/0 /2 [NEWEST]/0 /2 [UNFILTERED]/30 /2 [SEARCH]/0";
#endif


                mykeyboard.SetButtonType("OkButton"); // Adding this alters button positions??! Why?
                mykeyboard.AddKeys(SEARCH, 0.75f);

                mykeyboard.SetAction("CLEAR SEARCH", ClearSearch);
                mykeyboard.SetAction("UNFILTERED", UnfilteredSearch);
                mykeyboard.SetAction("SEARCH", MSD);
                mykeyboard.SetAction("NEWEST", Newest);


#if UNRELEASED
                AddKeyboard(mykeyboard, "decks.kbd", 0.4f);
#endif

                // The UI for this might need a bit of work.

                AddKeyboard(mykeyboard, "RightPanel.kbd");
            }

            if (_songRequestMenu == null)
            {
                _songRequestMenu = BeatSaberUI.CreateCustomMenu <CustomMenu>("Song Request Queue");
                _songRequestMenu.SetMainViewController(_songRequestListViewController, true);
                _songRequestMenu.SetRightViewController(_KeyboardViewController, false);
            }

            SongListUtils.Initialize();

            WriteQueueSummaryToFile();
            WriteQueueStatusToFile(QueueMessage(RequestBotConfig.Instance.RequestQueueOpen));

            // Yes, this is disabled on purpose. StreamCore will init this class for you now, so don't uncomment this! -Brian
            //if (Instance) return;
            //new GameObject("SongRequestManager").AddComponent<RequestBot>();
        }