private void Awake() { DontDestroyOnLoad(gameObject); Instance = this; _songBlacklist = Config.Instance.Blacklist; InitializeCommands(); }
protected override void DidActivate(bool firstActivation, ActivationType type) { if (firstActivation) { if (!SongLoader.AreSongsLoaded) { SongLoader.SongsLoadedEvent += SongLoader_SongsLoadedEvent; } InitConfirmationDialog(); _songListTableCellInstance = Resources.FindObjectsOfTypeAll <LevelListTableCell>().First(x => (x.name == "LevelListTableCell")); _songPreviewPlayer = Resources.FindObjectsOfTypeAll <SongPreviewPlayer>().FirstOrDefault(); DidSelectRowEvent += DidSelectRow; RequestBot.SongRequestQueued += (song) => RefreshTable(); RequestBot.SongRequestDequeued += (song) => RefreshTable(); RectTransform container = new GameObject("CustomListContainer", typeof(RectTransform)).transform as RectTransform; container.SetParent(rectTransform, false); container.sizeDelta = new Vector2(60f, 0f); // Blacklist button _blacklistButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "QuitButton")), container, false); _blacklistButton.ToggleWordWrapping(false); (_blacklistButton.transform as RectTransform).anchoredPosition = new Vector2(90f, 10f); _blacklistButton.SetButtonText("Blacklist"); //_blacklistButton.GetComponentInChildren<Image>().color = Color.red; _blacklistButton.onClick.RemoveAllListeners(); _blacklistButton.onClick.AddListener(delegate() { _onConfirm = () => { RequestBot.Blacklist(_selectedRow); }; var song = RequestBot.FinalRequestQueue[_selectedRow].song; _warningTitle.text = "Blacklist Song Warning"; _warningMessage.text = $"Blacklisting {song["songName"].Value} by {song["authorName"].Value}\r\nDo you want to continue?"; _confirmationDialog.Present(); }); BeatSaberUI.AddHintText(_blacklistButton.transform as RectTransform, "Block the selected request from being queued in the future."); // Skip button _skipButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "QuitButton")), container, false); _skipButton.ToggleWordWrapping(false); (_skipButton.transform as RectTransform).anchoredPosition = new Vector2(90f, 0f); _skipButton.SetButtonText("Skip"); //_skipButton.GetComponentInChildren<Image>().color = Color.yellow; _skipButton.onClick.RemoveAllListeners(); _skipButton.onClick.AddListener(delegate() { _onConfirm = () => { _lastSelection = -1; RequestBot.Skip(_selectedRow); }; var song = RequestBot.FinalRequestQueue[_selectedRow].song; _warningTitle.text = "Skip Song Warning"; _warningMessage.text = $"Skipping {song["songName"].Value} by {song["authorName"].Value}\r\nDo you want to continue?"; _confirmationDialog.Present(); }); BeatSaberUI.AddHintText(_skipButton.transform as RectTransform, "Remove the selected request from the queue."); // Play button _playButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "QuitButton")), container, false); _playButton.ToggleWordWrapping(false); (_playButton.transform as RectTransform).anchoredPosition = new Vector2(90f, -10f); _playButton.SetButtonText("Play"); _playButton.GetComponentInChildren <Image>().color = Color.green; _playButton.onClick.RemoveAllListeners(); _playButton.onClick.AddListener(delegate() { SetUIInteractivity(false); RequestBot.Process(_selectedRow); }); BeatSaberUI.AddHintText(_playButton.transform as RectTransform, "Download and scroll to the currently selected request."); } base.DidActivate(firstActivation, type); RefreshTable(); SetUIInteractivity(true); }