Here are the examples of the csharp api UnityEngine.Events.UnityEvent.AddListener(UnityEngine.Events.UnityAction) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
105 Examples
19
Source : PlayerManagementViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
[UIAction("refresh-visuals")]
public void Refresh(bool selected, bool highlighted)
{
if (playerInfo != null)
{
playerName.text = playerInfo.playerName;
playerName.color = playerInfo.updateInfo.playerNameColor;
preplacedHostButton.onClick.RemoveAllListeners();
preplacedHostButton.onClick.AddListener(() => _buttonsInterface.TransferHostButtonWasPressed(playerInfo));
muteButton.onClick.RemoveAllListeners();
muteButton.onClick.AddListener(() => _buttonsInterface.MuteButtonWasPressed(playerInfo));
}
_isInitialized = true;
}
19
Source : DownloadQueueViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType type)
{
if (firstActivation && type == ActivationType.AddedToHierarchy)
{
SongDownloader.Instance.songDownloaded -= SongDownloaded;
SongDownloader.Instance.songDownloaded += SongDownloaded;
_songListTableCellInstance = Resources.FindObjectsOfTypeAll<LevelListTableCell>().First(x => (x.name == "LevelListTableCell"));
RectTransform viewControllersContainer = FindObjectsOfType<RectTransform>().First(x => x.name == "ViewControllers");
var headerPanelRectTransform = Instantiate(viewControllersContainer.GetComponentsInChildren<RectTransform>(true).First(x => x.name == "HeaderPanel" && x.parent.name == "PlayerSettingsViewController"), rectTransform);
headerPanelRectTransform.gameObject.SetActive(true);
_replacedleText = headerPanelRectTransform.GetComponentInChildren<TextMeshProUGUI>();
_replacedleText.text = "DOWNLOAD QUEUE";
_pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().Last(x => (x.name == "PageUpButton")), rectTransform, false);
(_pageUpButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, -18f);
(_pageUpButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageUpButton.interactable = true;
_pageUpButton.onClick.AddListener(delegate ()
{
_queuedSongsTableView.PageScrollUp();
});
_pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().First(x => (x.name == "PageDownButton")), rectTransform, false);
(_pageDownButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 9f);
(_pageDownButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageDownButton.interactable = true;
_pageDownButton.onClick.AddListener(delegate ()
{
_queuedSongsTableView.PageScrollDown();
});
RectTransform container = new GameObject("CustomListContainer", typeof(RectTransform)).transform as RectTransform;
container.SetParent(rectTransform, false);
container.anchorMin = new Vector2(0.2f, 0.5f);
container.anchorMax = new Vector2(0.8f, 0.5f);
container.sizeDelta = new Vector2(0f, 0f);
container.ancreplaceddPosition = new Vector2(0f, -4f);
_queuedSongsTableView = new GameObject("CustomTableView", typeof(RectTransform)).AddComponent<TableView>();
_queuedSongsTableView.gameObject.AddComponent<RectMask2D>();
_queuedSongsTableView.transform.SetParent(container, false);
_queuedSongsTableView.SetPrivateField("_isInitialized", false);
_queuedSongsTableView.SetPrivateField("_preallocatedCells", new TableView.CellsGroup[0]);
_queuedSongsTableView.Init();
(_queuedSongsTableView.transform as RectTransform).anchorMin = new Vector2(0f, 0f);
(_queuedSongsTableView.transform as RectTransform).anchorMax = new Vector2(1f, 1f);
(_queuedSongsTableView.transform as RectTransform).sizeDelta = new Vector2(0f, 54f);
(_queuedSongsTableView.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 0f);
ReflectionUtil.SetPrivateField(_queuedSongsTableView, "_pageUpButton", _pageUpButton);
ReflectionUtil.SetPrivateField(_queuedSongsTableView, "_pageDownButton", _pageDownButton);
_queuedSongsTableView.selectionType = TableViewSelectionType.None;
_queuedSongsTableView.dataSource = this;
_abortButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(36f, -30f), new Vector2(20f, 10f), AbortDownloads, "Abort All");
_abortButton.ToggleWordWrapping(false);
}
}
19
Source : PlaylistDetailViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType type)
{
if (firstActivation && type == ActivationType.AddedToHierarchy)
{
gameObject.SetActive(true);
rectTransform.sizeDelta = new Vector2(60f ,0f);
_levelDetails = GetComponentsInChildren<StandardLevelDetailView>(true).First(x => x.name == "LevelDetail");
_levelDetails.gameObject.SetActive(true);
RemoveCustomUIElements(rectTransform);
Destroy(GetComponentsInChildren<LevelParamsPanel>().First(x => x.name == "LevelParamsPanel").gameObject);
RectTransform yourStats = GetComponentsInChildren<RectTransform>(true).First(x => x.name == "Stats");
yourStats.gameObject.SetActive(true);
RectTransform characteristicsRect = GetComponentsInChildren<RectTransform>(true).First(x => x.name == "BeatmapCharacteristicSegmentedControl");
RectTransform difficultyRect = GetComponentsInChildren<RectTransform>(true).First(x => x.name == "BeatmapDifficultySegmentedControl");
Destroy(characteristicsRect.gameObject);
Destroy(difficultyRect.gameObject);
TextMeshProUGUI[] _textComponents = GetComponentsInChildren<TextMeshProUGUI>();
try
{
songNameText = _textComponents.First(x => x.name == "SongNameText");
_textComponents.First(x => x.name == "replacedle").text = "Playlist";
songNameText.enableWordWrapping = true;
songNameText.rectTransform.sizeDelta = new Vector2(-22f, 20f);
_textComponents.First(x => x.name == "replacedle" && x.transform.parent.name == "MaxCombo").text = "Author";
authorText = _textComponents.First(x => x.name == "Value" && x.transform.parent.name == "MaxCombo");
authorText.rectTransform.sizeDelta = new Vector2(24f, 0f);
_textComponents.First(x => x.name == "replacedle" && x.transform.parent.name == "Highscore").text = "Total songs";
totalSongsText = _textComponents.First(x => x.name == "Value" && x.transform.parent.name == "Highscore");
Destroy(_textComponents.First(x => x.transform.parent.name == "MaxRank").transform.parent.gameObject);
}
catch (Exception e)
{
Plugin.log.Critical("Unable to convert detail view controller! Exception: " + e);
}
_selectButton = _levelDetails.playButton;
_selectButton.SetButtonText(_selectButtonText);
_selectButton.ToggleWordWrapping(false);
_selectButton.onClick.RemoveAllListeners();
_selectButton.onClick.AddListener(() => { selectButtonPressed?.Invoke(_currentPlaylist); });
if (addDownloadButton)
{
_downloadButton = _levelDetails.practiceButton;
_downloadButton.SetButtonIcon(Sprites.DownloadIcon);
_downloadButton.onClick.RemoveAllListeners();
_downloadButton.onClick.AddListener(() => { downloadButtonPressed?.Invoke(_currentPlaylist); });
}
else
{
Destroy(_levelDetails.practiceButton.gameObject);
}
coverImage = _levelDetails.GetPrivateField<Image>("_coverImage");
}
}
19
Source : StarsUIControl.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
private void TransformButton(int index)
{
if (viewControllersContainer == null)
{
viewControllersContainer = FindObjectsOfType<RectTransform>().First(x => x.name == "ViewControllers");
practiceButtonTemplate = viewControllersContainer.GetComponentsInChildren<Button>(true).First(x => x.name == "PracticeButton");
}
_starButtons[index] = Instantiate(practiceButtonTemplate, transform as RectTransform, false);
_starButtons[index].gameObject.SetActive(true);
_starButtons[index].onClick = new Button.ButtonClickedEvent();
_starButtons[index].onClick.AddListener(() => { HandleStarPressedEvent(index + 1); });
_starButtons[index].name = "CustomUIButton";
_starButtons[index].SetButtonText("");
_starButtons[index].SetButtonIcon(Sprites.StarEmpty);
(_starButtons[index].transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f);
(_starButtons[index].transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f);
(_starButtons[index].transform as RectTransform).ancreplaceddPosition = new Vector2(10f * index, 0f);
(_starButtons[index].transform as RectTransform).sizeDelta = new Vector2(10f, 10f);
RectTransform iconTransform = _starButtons[index].GetComponentsInChildren<RectTransform>(true).First(x => x.name == "Icon");
iconTransform.gameObject.SetActive(true);
Destroy(iconTransform.parent.GetComponent<HorizontalLayoutGroup>());
iconTransform.sizeDelta = new Vector2(8f, 8f);
iconTransform.ancreplaceddPosition = new Vector2(5f, -4.8f);
_starButtons[index].GetComponentsInChildren<Image>().First(x => x.name == "Stroke").enabled = false;
}
19
Source : MoreSongsListViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType type)
{
if (firstActivation && type == ActivationType.AddedToHierarchy)
{
rectTransform.anchorMin = new Vector2(0.5f, 0f);
rectTransform.anchorMax = new Vector2(0.5f, 1f);
rectTransform.sizeDelta = new Vector2(74f, 0f);
rectTransform.pivot = new Vector2(0.4f, 0.5f);
_pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().Last(x => (x.name == "PageUpButton")), rectTransform, false);
(_pageUpButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, -14.75f);
(_pageUpButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageUpButton.interactable = true;
_pageUpButton.onClick.AddListener(delegate ()
{
pageUpPressed?.Invoke();
});
_pageUpButton.interactable = false;
_pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().First(x => (x.name == "PageDownButton")), rectTransform, false);
(_pageDownButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 9f);
(_pageDownButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageDownButton.interactable = true;
_pageDownButton.onClick.AddListener(delegate ()
{
pageDownPressed?.Invoke();
});
_sortByButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(15f, 36.5f), new Vector2(30f, 6f), () => { SelectTopButtons(TopButtonsState.SortBy); }, "Sort by");
_sortByButton.SetButtonTextSize(3f);
_topButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(-20f, 36.5f), new Vector2(20f, 6f), () =>
{
sortByTop?.Invoke();
SelectTopButtons(TopButtonsState.Select);
},
"Downloads");
_topButton.SetButtonTextSize(3f);
_topButton.ToggleWordWrapping(false);
_topButton.gameObject.SetActive(false);
_newButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(0f, 36.5f), new Vector2(20f, 6f), () =>
{
sortByNew?.Invoke();
SelectTopButtons(TopButtonsState.Select);
}, "Newest");
_newButton.SetButtonTextSize(3f);
_newButton.ToggleWordWrapping(false);
_newButton.gameObject.SetActive(false);
_starButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(20f, 36.5f), new Vector2(20f, 6f), () =>
{
sortByPlays?.Invoke();
SelectTopButtons(TopButtonsState.Select);
}, "Plays");
_starButton.SetButtonTextSize(3f);
_starButton.ToggleWordWrapping(false);
_starButton.gameObject.SetActive(false);
_searchButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton", new Vector2(-15, 36.5f), new Vector2(30f, 6f), () =>
{
searchButtonPressed?.Invoke();
SelectTopButtons(TopButtonsState.Search);
}, "Search");
_searchButton.SetButtonTextSize(3f);
_loadingIndicator = BeatSaberUI.CreateLoadingSpinner(rectTransform);
(_loadingIndicator.transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f);
(_loadingIndicator.transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f);
(_loadingIndicator.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 0f);
_loadingIndicator.SetActive(true);
_songListTableCellInstance = Resources.FindObjectsOfTypeAll<LevelListTableCell>().First(x => (x.name == "LevelListTableCell"));
RectTransform container = new GameObject("CustomListContainer", typeof(RectTransform)).transform as RectTransform;
container.SetParent(rectTransform, false);
container.sizeDelta = new Vector2(60f, 0f);
_songsTableView = new GameObject("CustomTableView", typeof(RectTransform)).AddComponent<TableView>();
_songsTableView.gameObject.AddComponent<RectMask2D>();
_songsTableView.transform.SetParent(container, false);
_songsTableView.SetPrivateField("_isInitialized", false);
_songsTableView.SetPrivateField("_preallocatedCells", new TableView.CellsGroup[0]);
_songsTableView.Init();
(_songsTableView.transform as RectTransform).anchorMin = new Vector2(0f, 0f);
(_songsTableView.transform as RectTransform).anchorMax = new Vector2(1f, 1f);
(_songsTableView.transform as RectTransform).sizeDelta = new Vector2(0f, 60f);
(_songsTableView.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, -3f);
_songsTableView.dataSource = this;
_songsTableView.didSelectCellWithIdxEvent += _songsTableView_DidSelectRowEvent;
}
else
{
_songsTableView.ReloadData();
}
}
19
Source : SongDescriptionViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType activationType)
{
if (firstActivation)
{
var headerPanelRectTransform = Instantiate(Resources.FindObjectsOfTypeAll<RectTransform>().First(x => x.name == "HeaderPanel" && x.parent.name == "PlayerSettingsViewController"), rectTransform);
headerPanelRectTransform.gameObject.SetActive(true);
_replacedleText = headerPanelRectTransform.GetComponentInChildren<TextMeshProUGUI>();
_replacedleText.text = "SONG DESCRIPTION";
_pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "PageUpButton"), rectTransform, false);
(_pageUpButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).ancreplaceddPosition = new Vector2(52f, -12f);
(_pageUpButton.transform as RectTransform).sizeDelta = new Vector2(8f, 6f);
_pageUpButton.GetComponentsInChildren<RectTransform>().First(x => x.name == "BG").sizeDelta = new Vector2(8f, 6f);
_pageUpButton.GetComponentsInChildren<UnityEngine.UI.Image>().First(x => x.name == "Arrow").sprite = Sprites.DoubleArrow;
_pageUpButton.onClick.AddListener(delegate ()
{
PageUpButtonPressed();
});
_pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "PageDownButton"), rectTransform, false);
(_pageDownButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).ancreplaceddPosition = new Vector2(52f, 10f);
(_pageDownButton.transform as RectTransform).sizeDelta = new Vector2(8f, 6f);
_pageDownButton.GetComponentsInChildren<RectTransform>().First(x => x.name == "BG").sizeDelta = new Vector2(8f, 6f);
_pageDownButton.GetComponentsInChildren<UnityEngine.UI.Image>().First(x => x.name == "Arrow").sprite = Sprites.DoubleArrow;
_pageDownButton.onClick.AddListener(delegate ()
{
PageDownButtonPressed();
});
_textViewport = new GameObject("DescriptionViewport", typeof(RectTransform), typeof(RectMask2D)).transform as RectTransform;
_textViewport.SetParent(rectTransform, false);
_textViewport.anchorMin = new Vector2(0.05f, 0.025f);
_textViewport.anchorMax = new Vector2(0.9f, 0.85f);
_textViewport.sizeDelta = new Vector2(0f, 0f);
_textViewport.ancreplaceddPosition = new Vector2(0f, 0f);
_descriptionText = BeatSaberUI.CreateText(_textViewport, "", new Vector2(0f, 0f));
_descriptionText.fontSize = 4f;
_descriptionText.enableWordWrapping = true;
_descriptionText.overflowMode = TextOverflowModes.Overflow;
_descriptionText.lineSpacing = -40f;
_descriptionText.ignoreRectMaskCulling = true;
_descriptionText.rectTransform.anchorMin = new Vector2(0f, 0f);
_descriptionText.rectTransform.anchorMax = new Vector2(1f, 1f);
_descriptionText.rectTransform.sizeDelta = new Vector2(0f, 0f);
_descriptionText.rectTransform.ancreplaceddPosition = new Vector2(0f, 0f);
_linkHandler = _descriptionText.gameObject.AddComponent<TextMeshProHyperlinkHandler>();
_linkHandler.linkClicked += linkClicked;
}
SetDescription("");
}
19
Source : SongDetailViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType type)
{
if (firstActivation)
{
gameObject.SetActive(true);
_levelDetails = GetComponentsInChildren<StandardLevelDetailView>(true).First(x => x.name == "LevelDetail");
_levelDetails.gameObject.SetActive(true);
RemoveCustomUIElements(rectTransform);
_levelParams = GetComponentsInChildren<LevelParamsPanel>().First(x => x.name == "LevelParamsPanel");
foreach (HoverHint hint in _levelParams.transform.GetComponentsInChildren<HoverHint>())
{
switch (hint.name)
{
case "Time":
{
hint.GetComponentInChildren<Image>().sprite = Sprites.DownloadIcon;
}; break;
case "BPM":
{
hint.GetComponentInChildren<Image>().sprite = Sprites.PlayIcon;
}; break;
case "NotesCount":
{
hint.GetComponentInChildren<Image>().sprite = Resources.FindObjectsOfTypeAll<Sprite>().First(x => x.name == "MetronomeIcon");
}; break;
case "ObstaclesCount":
{
hint.GetComponentInChildren<Image>().sprite = Sprites.ThumbUp;
}; break;
case "BombsCount":
{
hint.GetComponentInChildren<Image>().sprite = Sprites.ThumbDown;
}; break;
}
Destroy(hint);
}
RectTransform yourStats = GetComponentsInChildren<RectTransform>().First(x => x.name == "Stats");
yourStats.gameObject.SetActive(true);
TextMeshProUGUI[] _textComponents = GetComponentsInChildren<TextMeshProUGUI>();
try
{
songNameText = _textComponents.First(x => x.name == "SongNameText");
downloadsText = _textComponents.First(x => x.name == "ValueText" && x.transform.parent.name == "Time");
downloadsText.fontSize = 3f;
playsText = _textComponents.First(x => x.name == "ValueText" && x.transform.parent.name == "BPM");
playsText.fontSize = 3f;
_textComponents.First(x => x.name == "replacedle" && x.transform.parent.name == "MaxRank").text = "Expert/+";
difficulty1Text = _textComponents.First(x => x.name == "Value" && x.transform.parent.name == "MaxRank");
_textComponents.First(x => x.name == "replacedle" && x.transform.parent.name == "Highscore").text = "Hard";
difficulty2Text = _textComponents.First(x => x.name == "Value" && x.transform.parent.name == "Highscore");
_textComponents.First(x => x.name == "replacedle" && x.transform.parent.name == "MaxCombo").text = "Easy/Normal";
difficulty3Text = _textComponents.First(x => x.name == "Value" && x.transform.parent.name == "MaxCombo");
}
catch (Exception e)
{
Plugin.log.Critical("Unable to convert detail view controller! Exception: " + e);
}
_downloadButton = _levelDetails.playButton;
_downloadButton.SetButtonText("DOWNLOAD");
_downloadButton.ToggleWordWrapping(false);
_downloadButton.onClick.RemoveAllListeners();
_downloadButton.onClick.AddListener(() => { downloadButtonPressed?.Invoke(_currentSong); });
(_downloadButton.transform as RectTransform).sizeDelta = new Vector2(26f, 8.8f);
_favoriteButton = _levelDetails.practiceButton;
_favoriteButton.SetButtonIcon(Sprites.AddToFavorites);
_favoriteButton.onClick.RemoveAllListeners();
_favoriteButton.onClick.AddListener(() => { favoriteButtonPressed?.Invoke(_currentSong); });
coverImage = _levelDetails.GetPrivateField<Image>("_coverImage");
}
}
19
Source : PlaylistListViewController.cs
with MIT License
from andruzzzhka
with MIT License
from andruzzzhka
protected override void DidActivate(bool firstActivation, ActivationType type)
{
if (firstActivation && type == ActivationType.AddedToHierarchy)
{
rectTransform.anchorMin = new Vector2(0.5f, 0f);
rectTransform.anchorMax = new Vector2(0.5f, 1f);
rectTransform.sizeDelta = new Vector2(75f, 0f);
rectTransform.pivot = new Vector2(0.5f, 0.5f);
_pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().Last(x => (x.name == "PageUpButton")), rectTransform, false);
(_pageUpButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 1f);
(_pageUpButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, -9f);
(_pageUpButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageUpButton.interactable = true;
_pageUpButton.onClick.AddListener(delegate ()
{
_songsTableView.PageScrollUp();
});
_pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll<Button>().First(x => (x.name == "PageDownButton")), rectTransform, false);
(_pageDownButton.transform as RectTransform).anchorMin = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).anchorMax = new Vector2(0.5f, 0f);
(_pageDownButton.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 9f);
(_pageDownButton.transform as RectTransform).sizeDelta = new Vector2(40f, 10f);
_pageDownButton.interactable = true;
_pageDownButton.onClick.AddListener(delegate ()
{
_songsTableView.PageScrollDown();
});
_songListTableCellInstance = Resources.FindObjectsOfTypeAll<LevelListTableCell>().First(x => (x.name == "LevelListTableCell"));
RectTransform container = new GameObject("CustomListContainer", typeof(RectTransform)).transform as RectTransform;
container.SetParent(rectTransform, false);
container.anchorMin = new Vector2(0f, 0.5f);
container.anchorMax = new Vector2(1f, 0.5f);
container.sizeDelta = new Vector2(0f, 0f);
container.ancreplaceddPosition = new Vector2(0f, 0f);
_songsTableView = new GameObject("CustomTableView", typeof(RectTransform)).AddComponent<TableView>();
_songsTableView.gameObject.AddComponent<RectMask2D>();
_songsTableView.transform.SetParent(container, false);
_songsTableView.SetPrivateField("_isInitialized", false);
_songsTableView.SetPrivateField("_preallocatedCells", new TableView.CellsGroup[0]);
_songsTableView.Init();
(_songsTableView.transform as RectTransform).anchorMin = new Vector2(0f, 0f);
(_songsTableView.transform as RectTransform).anchorMax = new Vector2(1f, 1f);
(_songsTableView.transform as RectTransform).sizeDelta = new Vector2(0f, 60f);
(_songsTableView.transform as RectTransform).ancreplaceddPosition = new Vector2(0f, 0f);
_songsTableView.dataSource = this;
_songsTableView.ScrollToCellWithIdx(0, TableView.ScrollPositionType.Beginning, false);
_lastSelectedRow = -1;
_songsTableView.didSelectCellWithIdxEvent += _songsTableView_DidSelectRowEvent;
}
else
{
_songsTableView.ReloadData();
_songsTableView.ScrollToCellWithIdx(0, TableView.ScrollPositionType.Beginning, false);
_lastSelectedRow = -1;
}
}
19
Source : Logs_Controller.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start()
{
//Object Setup
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
//Sound Setup
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
//Event Setup
//Submit.onEndEdit.AddListener(val =>
//{
//});onEndEdit
Submit.onEndEdit.AddListener(delegate { OnSubmitCheck(); });
}
19
Source : Logs_Controller2.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start()
{
//Object Setup
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
//Sound Setup
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
//Event Setup
//Submit.onEndEdit.AddListener(val =>
//{
//});onEndEdit
Submit.onEndEdit.AddListener(delegate { OnSubmitChecks(); });
}
19
Source : Stacks_Controller.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start()
{
//Object Setup
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
Submitter = GameObject.FindWithTag("Writer").GetComponent<InputField>();
//Sound Setup
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
//Event Setup
//Submit.onEndEdit.AddListener(val =>
//{
//});onEndEdit
Submitter.onEndEdit.AddListener(delegate { OnSubmitChecking(); });
}
19
Source : Store2_Script.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start () {
//Object Setup
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
//Sound Setup
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
//Event Setup
Submit.onClick.AddListener(OnSubmitChecker);
}
19
Source : Tree_Controller.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start()
{
//Object Setup
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
//Sound Setup
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
//Event Setup
//Submit.onEndEdit.AddListener(val =>
//{
//});onEndEdit
Submit.onEndEdit.AddListener(delegate { OnSubmitChecka(); });
}
19
Source : Submit_Numbers.cs
with MIT License
from Aroueterra
with MIT License
from Aroueterra
void Start () {
Alert = GameObject.Find("Alert");
Player = GameObject.Find("Player");
PC = GameObject.Find("Progress_Obj").GetComponent<Progress_Controller>();
audi_source = Player.GetComponent<Player_Movement>().audi;
fail = Player.GetComponent<Player_Movement>().Fail;
success = Player.GetComponent<Player_Movement>().Success;
IF[3].text = (4).ToString();
Submit = this.gameObject.GetComponent<Button>();
Submit.onClick.AddListener(OnSubmitChecko);
}
19
Source : ColorSlider.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
private void Awake()
{
slider = GetComponent<Slider>();
Hsvpicker.ONValueChanged.AddListener(ColorChanged);
Hsvpicker.OnhsvChanged.AddListener(HSVChanged);
slider.onValueChanged.AddListener(SliderChanged);
}
19
Source : ExtensionButtonUI.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
public void SetClickAction(UnityAction onClick)
{
button.onClick.RemoveAllListeners();
button.onClick.AddListener(onClick);
}
19
Source : HexColorField.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
private void Awake()
{
hexInputField = GetComponent<InputField>();
// Add listeners to keep text (and color) up to date
hexInputField.onEndEdit.AddListener(UpdateColor);
Hsvpicker.ONValueChanged.AddListener(UpdateHex);
}
19
Source : VolumeSlider.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
private void Start()
{
if (TryGetComponent<SettingsBinder>(out var settingsBinder))
{
slider.onValueChanged.AddListener(OnHandleMove);
slider.SetValueWithoutNotify((float?)settingsBinder.RetrieveValueFromSettings() ?? 0);
UpdateDisplay(false);
}
}
19
Source : BetterSlider.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
protected virtual void Start()
{
if (TryGetComponent<SettingsBinder>(out var settingsBinder))
{
Slider.onValueChanged.AddListener(OnHandleMove);
var settingValue = Convert.ToSingle(settingsBinder.RetrieveValueFromSettings());
Slider.SetValueWithoutNotify(settingValue);
UpdateDisplay(false);
}
}
19
Source : CM_DialogBox.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
private void Start() => uiButton.onClick.AddListener(() => SendResult(0));
19
Source : CM_DialogBox.cs
with GNU General Public License v2.0
from Caeden117
with GNU General Public License v2.0
from Caeden117
private void SetupButton(int index, string text, TMP_Fontreplacedet font, int width = 100)
{
Button buttonComponent;
if (index == 0)
{
buttonComponent = uiButton;
}
else
{
if (index > tempButtons.Count)
{
var newButton = Instantiate(uiButton.gameObject, uiButton.transform.parent);
buttonComponent = newButton.GetComponent<Button>();
buttonComponent.onClick.AddListener(() => SendResult(index));
tempButtons.Add(buttonComponent);
}
else
{
buttonComponent = tempButtons[index - 1];
}
}
SetupButton(buttonComponent, text, font, width);
}
19
Source : CountersPlusCreditsViewController.cs
with MIT License
from Caeden117
with MIT License
from Caeden117
protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling)
{
base.DidActivate(firstActivation, firstActivation, screenSystemEnabling);
if (!firstActivation) return;
version.transform.parent.localPosition = new Vector3(0, 2.5f, 0);
version.text = $"Version <color={(versionUtility.HasLatestVersion ? "#00FF00" : "#FF0000")}>{versionUtility.PluginVersion}</color>";
creator.text = "Developed by: <color=#00c0ff>Caeden117</color>";
update.text = $"<color=#FF0000>Version {versionUtility.BeatModsVersion} available for download!</color>";
System.DateTime date = System.DateTime.Now;
aprilfools.gameObject.SetActive(date.Month == 4 && date.Day == 1);
if (versionUtility.HasLatestVersion) update.gameObject.SetActive(false);
linkOpened.gameObject.SetActive(false);
github.onClick.AddListener(() => GoTo("https://github.com/Caeden117/CountersPlus", github));
issues.onClick.AddListener(() => GoTo("https://github.com/Caeden117/CountersPlus/issues", issues));
donate.onClick.AddListener(() => GoTo("https://ko-fi.com/Caeden117", donate));
}
19
Source : DSSTerminalDisplay.cs
with MIT License
from ccgould
with MIT License
from ccgould
public override bool FindAllComponents()
{
try
{
#region Canvas
var canvasGameObject = gameObject.GetComponentInChildren<Canvas>()?.gameObject;
if (canvasGameObject == null)
{
QuickLogger.Error("Canvas cannot be found");
return false;
}
#endregion
#region Home
var home = InterfaceHelpers.FindGameObject(canvasGameObject, "Home");
#endregion
#region VehiclesPage
var vehiclesPage = InterfaceHelpers.FindGameObject(canvasGameObject, "VehiclesPage");
#endregion
#region VehicleDockingSettingsPage
var vehiclesDockingSettingsPage = InterfaceHelpers.FindGameObject(canvasGameObject, "VehicleDockingSettingsPage");
#endregion
#region Item Page
var itemPage = InterfaceHelpers.FindGameObject(vehiclesDockingSettingsPage, "ItemPage");
#endregion
#region Category Page
var categoryPage = InterfaceHelpers.FindGameObject(vehiclesDockingSettingsPage, "CategoryPage");
#endregion
#region VehiclesContainersPage
var vehiclesContainersPage = InterfaceHelpers.FindGameObject(canvasGameObject, "VehiclesContainersPage");
#endregion
#region BaseItemsPage
var baseItemsPage = InterfaceHelpers.FindGameObject(canvasGameObject, "BaseItemsPage");
#endregion
#region GettingDataPage
var gettingDataPage = InterfaceHelpers.FindGameObject(canvasGameObject, "GettingData");
#endregion
#region Settings
var settings = InterfaceHelpers.FindGameObject(canvasGameObject, "SettingsPage");
#endregion
#region PoweredOff
var poweredOff = InterfaceHelpers.FindGameObject(canvasGameObject, "PowerOffPage");
#endregion
#region ColorPageMain
var colorMainPage = InterfaceHelpers.FindGameObject(canvasGameObject, "ColorPageMain");
#endregion
#region ScreenColorPicker
var screenColorPicker = InterfaceHelpers.FindGameObject(canvasGameObject, "TerminalColorPage");
#endregion
#region AntennnaColorPicker
_antennaColorPicker = InterfaceHelpers.FindGameObject(canvasGameObject, "AntennaColorPage");
#endregion
#region Base Grid
_baseGrid = _mono.gameObject.AddComponent<GridHelper>();
_baseGrid.OnLoadDisplay += OnLoadBaseGrid;
_baseGrid.Setup(12, DSSModelPrefab.BaseItemPrefab, home, _startColor, _hoverColor, OnButtonClick); //Minus 2 ItemPerPage because of the added Home button
#endregion
#region Vehicle Grid
_vehicleGrid = _mono.gameObject.AddComponent<GridHelper>();
_vehicleGrid.OnLoadDisplay += OnLoadVehicleGrid;
_vehicleGrid.Setup(12, DSSModelPrefab.VehicleItemPrefab, vehiclesPage, _startColor, _hoverColor, OnButtonClick); //Minus 1 ItemPerPage because of the added Home button
#endregion
#region Vehicle Containers Grid
_vehicleContainersGrid = _mono.gameObject.AddComponent<GridHelper>();
_vehicleContainersGrid.OnLoadDisplay += OnLoadVehicleContainersGrid;
_vehicleContainersGrid.Setup(12, DSSModelPrefab.VehicleItemPrefab, vehiclesContainersPage, _startColor, _hoverColor, OnButtonClick, 5,
"PrevBTN", "NextBTN", "Grid", "Paginator", "HomeBTN", "VehiclesPageBTN"); //Minus 1 ItemPerPage because of the added Home button
#endregion
#region Item Grid
_itemGrid = _mono.gameObject.AddComponent<GridHelper>();
_itemGrid.OnLoadDisplay += OnLoadItemsGrid;
_itemGrid.Setup(4, DSSModelPrefab.FilterItemPrefab, itemPage, _startColor, _hoverColor, OnButtonClick); //Minus 1 ItemPerPage because of the added Home button
#endregion
#region Category Grid
_categoryGrid = _mono.gameObject.AddComponent<GridHelper>();
_categoryGrid.OnLoadDisplay += OnLoadCategoryGrid;
_categoryGrid.Setup(4, DSSModelPrefab.FilterItemPrefab, categoryPage, _startColor, _hoverColor, OnButtonClick); //Minus 1 ItemPerPage because of the added Home button
#endregion
#region Base Items Page
_baseItemsGrid = _mono.gameObject.AddComponent<GridHelper>();
_baseItemsGrid.OnLoadDisplay += OnLoadBaseItemsGrid;
_baseItemsGrid.Setup(44, DSSModelPrefab.ItemPrefab, baseItemsPage, _startColor, _hoverColor, OnButtonClick);
_counter = GameObjectHelpers.FindGameObject(baseItemsPage, "Counter").GetComponent<Text>();
#endregion
#region DumpBTNButton
var closeBTN = InterfaceHelpers.FindGameObject(baseItemsPage, "DumpButton");
InterfaceHelpers.CreateButton(closeBTN, "DumpBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.DumpToBase());
#endregion
#region ColorPickerBTN
var colorPickerBTN = InterfaceHelpers.FindGameObject(settings, "ColorPickerBTN");
InterfaceHelpers.CreateButton(colorPickerBTN, "ColorPickerBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.ColorPage());
#endregion
#region RenameBTN
var renameBTN = InterfaceHelpers.FindGameObject(settings, "RenameBaseBTN");
InterfaceHelpers.CreateButton(renameBTN, "RenameBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.Rename());
#endregion
#region SettingsBTN
var settingsBTN = InterfaceHelpers.FindGameObject(home, "SettingsBTN");
InterfaceHelpers.CreateButton(settingsBTN, "SettingsBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.SettingPage());
#endregion
#region HomePowerBTN
var homePowerBTN = InterfaceHelpers.FindGameObject(home, "PowerBTN");
InterfaceHelpers.CreateButton(homePowerBTN, "PowerBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.PowerButton());
#endregion
#region PoweredOffPowerBTN
var poweredOffPowerBTN = InterfaceHelpers.FindGameObject(poweredOff, "PowerBTN");
InterfaceHelpers.CreateButton(poweredOffPowerBTN, "PowerBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.PowerButton());
#endregion
#region ColorPickerMainHomeBTN
var colorPickerMainHomeBTN = InterfaceHelpers.FindGameObject(colorMainPage, "HomeBTN");
InterfaceHelpers.CreateButton(colorPickerMainHomeBTN, "SettingsBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.SettingPage());
#endregion
#region SettingHomeBTN
var settingsHomeBTN = InterfaceHelpers.FindGameObject(settings, "HomeBTN");
InterfaceHelpers.CreateButton(settingsHomeBTN, "HomeBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.GoToHome());
#endregion
#region Terminal Color BTN
var terminalColorBTN = InterfaceHelpers.FindGameObject(colorMainPage, "TerminalColorBTN");
InterfaceHelpers.CreateButton(terminalColorBTN, "TerminalColorBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, string.Format(AuxPatchers.ColorPageFormat(), AuxPatchers.Terminal()));
#endregion
#region VehicleSettingsBTN
var vehicleSettingBTN = InterfaceHelpers.FindGameObject(settings, "AutoDockBTN");
InterfaceHelpers.CreateButton(vehicleSettingBTN, "AutoDockBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.GoToDockedVehiclesSettings());
#endregion
#region Toggle
_toggle = InterfaceHelpers.FindGameObject(vehiclesDockingSettingsPage, "Toggle").GetComponent<Toggle>();
_toggle.onValueChanged.AddListener(OnAutoPullToggled);
#endregion
#region Search
var inputField = InterfaceHelpers.FindGameObject(baseItemsPage, "InputField");
if(inputField != null)
{
var text = InterfaceHelpers.FindGameObject(inputField, "Placeholder")?.GetComponent<Text>();
if (text != null)
{
text.text = AuxPatchers.SearchForItemsMessage();
}
else
{
return false;
}
var searchField = inputField.AddComponent<SearchField>();
searchField.OnSearchValueChanged += UpdateSearch;
}
else
{
//throw new MissingComponentException("Cannot find Input Field");
return false;
}
#endregion
#region Antenna Color BTN
var antennaColorBTN = InterfaceHelpers.FindGameObject(colorMainPage, "AntennaColorBTN");
InterfaceHelpers.CreateButton(antennaColorBTN, "AntennaColorBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, string.Format(AuxPatchers.ColorPageFormat(), AuxPatchers.Antenna()));
#endregion
#region ColorPage
_terminalColorPage.SetupGrid(90, DSSModelPrefab.ColorItemPrefab, screenColorPicker, OnButtonClick, _startColor, _hoverColor, 5,
"PrevBTN", "NextBTN", "Grid", "Paginator", "HomeBTN", "ColorPickerBTN");
#endregion
#region BaseItemDecription
var baseItemPageDesc = InterfaceHelpers.FindGameObject(colorMainPage, "replacedle")?.GetComponent<Text>();
baseItemPageDesc.text = AuxPatchers.ColorMainPageDesc();
#endregion
#region BaseName
_baseNameLabel = InterfaceHelpers.FindGameObject(baseItemsPage, "BaseLabel")?.GetComponent<Text>();
#endregion
#region BaseItemsLoading
_gettingData = InterfaceHelpers.FindGameObject(gettingDataPage, "replacedle")?.GetComponent<Text>();
#endregion
#region DockSettingsHomeBTN
var dockSettingsHomeBTN = InterfaceHelpers.FindGameObject(vehiclesDockingSettingsPage, "HomeBTN");
InterfaceHelpers.CreateButton(dockSettingsHomeBTN, "SettingsBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, AuxPatchers.SettingPage());
#endregion
return true;
}
catch (Exception e)
{
QuickLogger.Error(e.Message);
QuickLogger.Error(e.StackTrace);
return false;
}
}
19
Source : SearchField.cs
with MIT License
from ccgould
with MIT License
from ccgould
private void Awake()
{
_inputField = GetComponent<InputField>();
_inputField.onValueChanged.AddListener(OnValueChanged);
_inputField.onEndEdit.AddListener(OnEndEdit);
}
19
Source : FCSMessageBoxDialog.cs
with MIT License
from ccgould
with MIT License
from ccgould
private void Initialize()
{
if(_initialized) return;
_messageText = GameObjectHelpers.FindGameObject(gameObject, "Message")?.GetComponent<Text>();
_cancelBTNObject = GameObjectHelpers.FindGameObject(gameObject, "CancelBTN");
_cancelBTN = _cancelBTNObject?.GetComponent<Button>();
_cancelBTNText = _cancelBTNObject?.GetComponentInChildren<Text>(true);
_cancelBTN?.onClick.AddListener(() =>
{
OnCancelButtonClick?.Invoke(_messageId);
HideMessageBox();
});
_confirmButtonObject = GameObjectHelpers.FindGameObject(gameObject, "ConfirmBTN");
_confirmBTNText = _confirmButtonObject?.GetComponentInChildren<Text>(true);
_confirmBTN = _confirmButtonObject?.GetComponent<Button>();
_confirmBTN?.onClick.AddListener(() =>
{
OnConfirmButtonClick?.Invoke(_messageId);
HideMessageBox();
});
_initialized = true;
}
19
Source : QTDisplayManager.cs
with MIT License
from ccgould
with MIT License
from ccgould
public override bool FindAllComponents()
{
#region Canvas
var canvasGameObject = gameObject.GetComponentInChildren<Canvas>()?.gameObject;
if (canvasGameObject == null)
{
QuickLogger.Error("Canvas cannot be found");
return false;
}
#endregion
#region L_Panel
var lPanel = canvasGameObject.FindChild("Left_Panel")?.gameObject;
if (lPanel == null)
{
QuickLogger.Error("Unable to find L_Panel GameObject");
return false;
}
#endregion
#region R_Panel
var rPanel = canvasGameObject.FindChild("Right_Panel")?.gameObject;
if (rPanel == null)
{
QuickLogger.Error("Unable to find R_Panel GameObject");
return false;
}
#endregion
#region Home
var home = canvasGameObject.FindChild("Home")?.gameObject;
if (home == null)
{
QuickLogger.Error("Unable to find Home GameObject");
return false;
}
#endregion
#region confirmation
var confirmation = canvasGameObject.FindChild("Confirmation")?.gameObject;
if (confirmation == null)
{
QuickLogger.Error("Unable to find Home GameObject");
return false;
}
#endregion
#region ColorPicker
var colorPicker = canvasGameObject.FindChild("ColorPicker")?.gameObject;
if (colorPicker == null)
{
QuickLogger.Error("Unable to find colorPicker GameObject");
return false;
}
#endregion
#region Color Picker Button
var colorPickerBtn = InterfaceHelpers.FindGameObject(rPanel, "ColorPickerBTN");
if (colorPickerBtn == null) return false;
InterfaceHelpers.CreateButton(colorPickerBtn, "ColorPageBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MaxInteractionRange);
#endregion
#region Color Picker Button
var renameBtn = InterfaceHelpers.FindGameObject(rPanel, "RenameBTN");
if (renameBtn == null) return false;
InterfaceHelpers.CreateButton(renameBtn, "RenameBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MaxInteractionRange);
#endregion
#region Text Field
_textField = InterfaceHelpers.FindGameObject(lPanel, "UnitName")?.GetComponent<Text>();
#endregion
#region Grid
_teleportGrid.Setup(7, QuantumTeleporterBuildable.ItemPrefab, home, _startColor, _hoverColor, OnButtonClick,
5, "PrevBTN", "NextBTN", "Grid", "Paginator", string.Empty);
_teleportGrid.OnLoadDisplay += OnLoadDisplay;
#endregion
#region Color Grid
var _colorGrid = InterfaceHelpers.FindGameObject(colorPicker, "Grid");
if (_colorGrid == null)
{
QuickLogger.Error<QTDisplayManager>("Cant find color page on home page");
return false;
}
#endregion
#region Color Paginator
var _colorPaginator = InterfaceHelpers.FindGameObject(colorPicker, "Paginator");
if (_colorPaginator == null)
{
QuickLogger.Error<QTDisplayManager>("Cant find paginator on color picker page");
return false;
}
#endregion
#region ColorPage
_colorPage.SetupGrid(30, QuantumTeleporterBuildable.ColorItemPrefab, _colorGrid, _colorPaginator.GetComponent<Text>(), OnButtonClick);
#endregion
#region Home Button
var homeBtn = InterfaceHelpers.FindGameObject(colorPicker, "HomeBTN");
if (homeBtn == null) return false;
InterfaceHelpers.CreateButton(homeBtn, "HomeBTN", InterfaceButtonMode.Background,
OnButtonClick, _startColor, _hoverColor, MaxInteractionRange);
#endregion
#region Prev Color Button
var prevColorBtn = InterfaceHelpers.FindGameObject(colorPicker, "PrevBTN");
if (prevColorBtn == null) return false;
InterfaceHelpers.CreatePaginator(prevColorBtn, -1,_colorPage.ChangeColorPageBy,_startColor,_hoverColor);
#endregion
#region Next Color Button
var nextColorBtn = InterfaceHelpers.FindGameObject(colorPicker, "NextBTN");
if (nextColorBtn == null) return false;
InterfaceHelpers.CreatePaginator(nextColorBtn, 1, _colorPage.ChangeColorPageBy, _startColor, _hoverColor);
#endregion
#region Global Toggle
var isGlobalToggle = InterfaceHelpers.FindGameObject(lPanel, "Toggle");
if (isGlobalToggle == null) return false;
var globalToggleLabel = InterfaceHelpers.FindGameObject(isGlobalToggle, "Label");
if (globalToggleLabel == null) return false;
globalToggleLabel.GetComponent<Text>().text = QuantumTeleporterBuildable.MakeGlobalUnit();
_isGlobalToggle = isGlobalToggle.GetComponent<Toggle>();
_isGlobalToggle.onValueChanged.AddListener(delegate
{
ToggleValueChanged(_isGlobalToggle);
});
#endregion
#region Intra Tele Button
var intraTele = InterfaceHelpers.FindGameObject(home, "Intra_TeleBtn");
if (intraTele == null) return false;
_intraTeleBtn = InterfaceHelpers.CreateButton(intraTele, "IntraTeleBtn", InterfaceButtonMode.Background,
OnButtonClick, Color.black, Color.white, MaxInteractionRange);
_intraTeleBtn.ChangeText(QuantumTeleporterBuildable.LocalNetwork());
#endregion
#region GLobal Tele Button
var globalTele = InterfaceHelpers.FindGameObject(home, "Global_TeleBtn");
if (globalTele == null) return false;
_globalTeleBtn = InterfaceHelpers.CreateButton(globalTele, "GlobalTeleBtn", InterfaceButtonMode.Background,
OnButtonClick, Color.black, Color.white, MaxInteractionRange);
_globalTeleBtn.ChangeText(QuantumTeleporterBuildable.GlobalNetwork());
#endregion
#region Information Label
var unitInfo = InterfaceHelpers.FindGameObject(lPanel, "UnitNameInfo");
if (unitInfo == null) return false;
var infoText = unitInfo.GetComponent<Text>();
infoText.text = LeftPanelText();
#endregion
#region Yes Button
var yesBTNGO = InterfaceHelpers.FindGameObject(confirmation, "YesBTN");
if (yesBTNGO == null) return false;
var yesBTN = InterfaceHelpers.CreateButton(yesBTNGO, "ConfirmYesBtn", InterfaceButtonMode.Background,
OnButtonClick, Color.black, Color.white, MaxInteractionRange);
yesBTN.ChangeText(QuantumTeleporterBuildable.Confirm());
#endregion
#region No Button
var noBTNGO = InterfaceHelpers.FindGameObject(confirmation, "NoBTN");
if (noBTNGO == null) return false;
var noBTN = InterfaceHelpers.CreateButton(noBTNGO, "ConfirmNoBtn", InterfaceButtonMode.Background,
OnButtonClick, Color.black, Color.white, MaxInteractionRange);
noBTN.ChangeText(QuantumTeleporterBuildable.Cancel());
#endregion
#region Confirmation
var confirmMessage = InterfaceHelpers.FindGameObject(confirmation, "Message");
if (confirmMessage == null) return false;
confirmMessage.GetComponent<Text>().text = QuantumTeleporterBuildable.ConfirmMessage();
#endregion
#region Destination
var destination = InterfaceHelpers.FindGameObject(confirmation, "Destination");
if (destination == null) return false;
_destination = destination.GetComponent<Text>();
#endregion
return true;
}
19
Source : PredictionBar.cs
with MIT License
from chrislee0419
with MIT License
from chrislee0419
public void ClearAndSetPredictionButtons(string searchText)
{
// NOTE: searchText should be lower-cased (keyboard sends lowercase characters)
if (!_initialized)
return;
ClearPredictionButtons();
if (string.IsNullOrEmpty(searchText))
return;
// create new or re-use old buttons
PredictionButton btn = default;
float currentX = 0f;
var predictions = WordPredictionEngine.instance.GetSuggestedWords(searchText);
for (int i = 0; i < predictions.Count && currentX < _xEndPos - _xStartPos; ++i)
{
var word = predictions[i].Word;
var type = predictions[i].Type;
if (_unusedButtons.Any())
{
btn = _unusedButtons.Pop();
btn.SetActive(true);
}
else
{
btn = new PredictionButton(_parent);
}
btn.Button.onClick.RemoveAllListeners();
btn.Button.onClick.AddListener(delegate ()
{
string[] searchTextWords = WordPredictionEngine.RemoveSymbolsRegex.Replace(searchText, " ").Split(WordPredictionEngine.SpaceCharArray);
if (searchTextWords.Length == 0)
{
// this should never be able to happen
// implies we got a suggested word from an empty search query
searchText = word;
}
else
{
char lastChar = searchText[searchText.Length - 1];
string lastSearchWord = searchTextWords[searchTextWords.Length - 1];
if (type == SuggestionType.Prefixed || type == SuggestionType.FuzzyMatch)
{
int index = searchText.LastIndexOf(lastSearchWord);
searchText = searchText.Remove(index) + word;
}
else if (type == SuggestionType.FollowUp)
{
string space = lastChar == ' ' ? "" : " ";
searchText = searchText + space + word;
}
else
{
searchText = word;
}
}
PredictionPressed?.Invoke(searchText, type);
});
btn.SetText(word.ToUpper(), _fontSize);
btn.Type = type;
var width = btn.PreferredTextWidth + 8f;
var rt = btn.Button.transform as RectTransform;
rt.sizeDelta = new Vector2(width, 7f);
rt.ancreplaceddPosition = new Vector2(_xStartPos + currentX, _yPos);
currentX += width + 1.5f;
_predictionButtons.Add(btn);
}
// remove the last button created, since it goes past the end of the screen
// we have to do this here, since we don't know the width of the strings to be displayed before button creation
if (PredictionButton.IsValid(btn) && currentX >= _xEndPos - _xStartPos)
{
_predictionButtons.Remove(btn);
btn.SetActive(false);
_unusedButtons.Push(btn);
}
}
19
Source : SongListUI.cs
with MIT License
from chrislee0419
with MIT License
from chrislee0419
public void OnLateMenuSceneLoadedFresh()
{
Button soloFreePlayButton = Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "SoloFreePlayButton");
Button partyFreePlayButton = Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "PartyFreePlayButton");
Button campaignButton = Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "CampaignButton");
soloFreePlayButton.onClick.AddListener(() => OnModeSelection(FreePlayMode.Solo));
partyFreePlayButton.onClick.AddListener(() => OnModeSelection(FreePlayMode.Party));
campaignButton.onClick.AddListener(() => OnModeSelection(FreePlayMode.Campaign));
if (_bottomScreen != null)
_bottomScreen.Dispose();
if (SongBrowserTweaks.ModLoaded)
{
// delay building UI until SongBrowser elements are built (after the user selects mode)
}
else
{
InitializeAdditionalScreens(true);
}
}
19
Source : SongBrowserTweaks.cs
with MIT License
from chrislee0419
with MIT License
from chrislee0419
private static bool _Init()
{
#if LESS_DEPS
return false;
#else
// acquire all the UI elements we need to change before modifying
LevelCollectionViewController levelCollectionViewController;
Button xButton;
Button filterByButton;
Button[] existingFilterButtons;
var levelSelectionNavigationController = SongListUI.instance.LevelSelectionNavigationController;
try
{
levelCollectionViewController = levelSelectionNavigationController.GetPrivateField<LevelCollectionViewController>("_levelCollectionViewController");
_songBrowserUI = Resources.FindObjectsOfTypeAll<SongBrowserUI>().First();
_searchButton = levelCollectionViewController.GetComponentsInChildren<Button>(true).First(x => x.name == "FilterSearchButton");
existingFilterButtons = levelCollectionViewController.GetComponentsInChildren<Button>(true).Where(x => x.name.StartsWith("Filter") && x.name.EndsWith("Button")).ToArray();
// these buttons are found using their respective x positions (will need to be changed if button position changes)
xButton = levelCollectionViewController.GetComponentsInChildren<Button>(true).First(x => x.name == "CustomUIButton" && (x.transform as RectTransform).ancreplaceddPosition.x == -32.5f);
filterByButton = levelCollectionViewController.GetComponentsInChildren<Button>(true).First(x => x.name == "CustomUIButton" && (x.transform as RectTransform).ancreplaceddPosition.x == 30.5);
_clearFiltersButton = levelCollectionViewController.GetComponentsInChildren<Button>(true).First(x => x.name == "CustomUIButton" && (x.transform as RectTransform).ancreplaceddPosition.x == 54.5f);
}
catch (InvalidOperationException)
{
Logger.log.Debug("Unable to find the buttons created by SongBrowser");
return false;
}
// SongBrowser filter buttons
if (!PluginConfig.DisableSearch)
{
_searchButton.onClick.RemoveAllListeners();
_searchButton.onClick.AddListener(delegate ()
{
SongListUI.instance.SearchButtonPressed();
_filterButton.gameObject.SetActive(false);
_songBrowserUI.InvokeMethod("RefreshOuterUIState", new object[] { UIState.Main });
});
}
else
{
Logger.log.Info("Enhanced search functionality is disabled. SongBrowser's \"Search\" button is not modified");
}
if (!PluginConfig.DisableFilters)
{
foreach (var button in existingFilterButtons)
{
if (button.name == "FilterSearchButton")
continue;
button.onClick.AddListener(delegate ()
{
// search button should be hidden already via RefreshOuterUIState
_filterButton.gameObject.SetActive(false);
SongListUI.instance.UnapplyFilters();
});
}
// create this mod's filter button
_filterButton = BeatSaberUI.CreateUIButton(levelCollectionViewController.rectTransform, "ApplyButton", new Vector2(-18f + (12.75f * existingFilterButtons.Length), 37f), new Vector2(16.75f, 5f),
delegate ()
{
SongListUI.instance.FilterButtonPressed();
_filterButton.gameObject.SetActive(false);
_songBrowserUI.InvokeMethod("RefreshOuterUIState", new object[] { UIState.Main });
},
"Other Filters");
_filterButton.SetButtonTextSize(2.25f);
_filterButton.GetComponentsInChildren<HorizontalLayoutGroup>().First(btn => btn.name == "Content").padding = new RectOffset(4, 4, 2, 2);
_filterButton.ToggleWordWrapping(false);
_filterButton.gameObject.SetActive(false);
// SongBrowser outer UI buttons
filterByButton.onClick.AddListener(delegate ()
{
_filterButton.gameObject.SetActive(true);
});
_clearFiltersButton.onClick.RemoveAllListeners();
_clearFiltersButton.onClick.AddListener(delegate ()
{
SongListUI.instance.ClearButtonPressed();
// filters are cancelled by ClearButtonPressed -> UnapplyFilters -> FilterFlowCoordinatorFiltersUnapplied
// but only if custom filters are applied, otherwise we do it here
if ((_songBrowserUI as SongBrowserUI).Model.Settings.filterMode != SongFilterMode.None)
_FiltersUnapplied();
});
xButton.onClick.AddListener(delegate ()
{
_filterButton.gameObject.SetActive(false);
});
// custom filter handler when the same level pack is selected
SongBrowserModel.CustomFilterHandler = delegate (IAnnotatedBeatmapLevelCollection levelPack)
{
FilterList.ApplyFilter(levelPack.beatmapLevelCollection.beatmapLevels, out var filteredLevels, false);
return filteredLevels.ToList();
};
// on first load, SongBrowser uses the previously applied settings
// if this mod's filters was applied last, we have to disable it, since our filters aren't saved across sessions
if ((_songBrowserUI as SongBrowserUI).Model.Settings.filterMode == SongFilterMode.Custom)
{
(_songBrowserUI as SongBrowserUI).CancelFilter();
(_songBrowserUI as SongBrowserUI).ProcessSongList();
(_songBrowserUI as SongBrowserUI).RefreshSongUI();
}
}
else
{
Logger.log.Info("Filter functionality is disabled. SongBrowser's buttons are not modified");
}
Initialized = true;
Logger.log.Info("Modified SongBrowser's search, filter, and clear filter buttons");
return true;
#endif
}
19
Source : SongDetailsDisplay.cs
with MIT License
from chrislee0419
with MIT License
from chrislee0419
private void Awake()
{
rectTransform = this.GetComponent<RectTransform>();
// cover image background
var mask = new GameObject("SearchCoverImageMask").AddComponent<Mask>();
mask.transform.SetParent(this.transform, false);
mask.rectTransform.anchorMin = Vector2.zero;
mask.rectTransform.anchorMax = Vector2.one;
mask.rectTransform.ancreplaceddPosition = Vector2.zero;
mask.rectTransform.sizeDelta = Vector2.zero;
var maskImage = mask.gameObject.AddComponent<Image>();
maskImage.sprite = UIUtilities.RoundRectPanelSprite;
maskImage.material = UIUtilities.NoGlowMaterial;
maskImage.color = UIUtilities.RoundRectDefaultColour;
maskImage.type = Image.Type.Sliced;
_coverImage = new GameObject("SearchCoverImage").AddComponent<RawImage>();
_coverImage.transform.SetParent(mask.transform, false);
_coverImage.rectTransform.anchorMin = Vector2.zero;
_coverImage.rectTransform.anchorMax = Vector2.one;
_coverImage.rectTransform.ancreplaceddPosition = Vector2.zero;
_coverImage.rectTransform.sizeDelta = new Vector2(2f, 2f);
_coverImage.enabled = false;
_coverImage.texture = null;
_coverImage.color = new Color(1f, 1f, 1f, 0.16f);
// song text
var nameContainer = CreateContainer(
mask.transform,
"SongNameContainer",
new Vector2(0f, 1f),
Vector2.one,
new Vector2(0f, -1f),
new Vector2(-4f, 12f),
new Vector2(0.5f, 1f));
_songNameText = BeatSaberUI.CreateText(nameContainer, "", Vector2.zero, Vector2.zero);
_songNameText.name = "SongNameText";
_songNameText.rectTransform.anchorMin = new Vector2(0f, 0.5f);
_songNameText.rectTransform.anchorMax = Vector2.one;
_songNameText.rectTransform.sizeDelta = new Vector2(-6f, 0f);
_songNameText.alignment = TextAlignmentOptions.Center;
_songNameText.overflowMode = TextOverflowModes.Ellipsis;
_songNameText.enableWordWrapping = false;
_songNameText.fontSize = 4f;
_songAuthorText = BeatSaberUI.CreateText(nameContainer, "", Vector2.zero, Vector2.zero);
_songAuthorText.name = "SongAuthorText";
_songAuthorText.rectTransform.anchorMin = Vector2.zero;
_songAuthorText.rectTransform.anchorMax = new Vector2(AuthorTextMapperTextXHalfPoint, 0.5f);
_songAuthorText.rectTransform.sizeDelta = new Vector2(-3f, 0f);
_songAuthorText.alignment = TextAlignmentOptions.Center;
_songAuthorText.overflowMode = TextOverflowModes.Ellipsis;
_songAuthorText.enableWordWrapping = false;
_songAuthorText.fontSize = 3.4f;
_songMapperText = BeatSaberUI.CreateText(nameContainer, "", Vector2.zero, Vector2.zero);
_songMapperText.name = "SongMapperText";
_songMapperText.rectTransform.anchorMin = new Vector2(AuthorTextMapperTextXHalfPoint, 0f);
_songMapperText.rectTransform.anchorMax = new Vector2(1f, 0.5f);
_songMapperText.rectTransform.sizeDelta = new Vector2(-3f, 0f);
_songMapperText.alignment = TextAlignmentOptions.Center;
_songMapperText.overflowMode = TextOverflowModes.Ellipsis;
_songMapperText.enableWordWrapping = false;
_songMapperText.fontSize = 3.4f;
// characteristics panel
const float HalfPoint = 0.34f;
const float BackgroundScale = 0.65f;
const float CharacteristicsreplacedleYAnchor = 0.8f;
var characteristicsBG = CreateBackground(
mask.transform,
"Characteristics",
new Vector2(0f, 1f),
new Vector2(HalfPoint, 1f),
new Vector2(0.5f, -14f),
new Vector2(-3f, 13f),
new Vector2(0.5f, 1f),
BackgroundScale);
var characteristicsreplacedleText = BeatSaberUI.CreateText(characteristicsBG, "CHARACTERISTICS", new Vector2(0f, -0.25f), new Vector2(0f, -0.5f));
characteristicsreplacedleText.name = "Difficultiesreplacedle";
characteristicsreplacedleText.rectTransform.anchorMin = new Vector2(0f, CharacteristicsreplacedleYAnchor);
characteristicsreplacedleText.rectTransform.anchorMax = Vector2.one;
characteristicsreplacedleText.alignment = TextAlignmentOptions.Top;
characteristicsreplacedleText.fontSize = 2.1f;
characteristicsreplacedleText.color = replacedleColour;
var characteristicsContainerParent = CreateContainer(characteristicsBG, "Container", Vector2.zero, new Vector2(1f, CharacteristicsreplacedleYAnchor), Vector2.zero, Vector2.zero).gameObject;
var vlg = characteristicsContainerParent.AddComponent<VerticalLayoutGroup>();
vlg.spacing = 0.5f;
vlg.padding = new RectOffset(1, 1, 0, 0);
var iconRow = CreateContainer(characteristicsContainerParent.transform, "Row", Vector2.zero, Vector2.one, Vector2.zero, Vector2.zero).gameObject;
var layoutElement = iconRow.AddComponent<LayoutElement>();
layoutElement.preferredHeight = CharacteristicIconSize;
var hlg = iconRow.AddComponent<HorizontalLayoutGroup>();
hlg.spacing = CharacteristicIconSpacing;
_characteristicsIconContainers.Add(iconRow);
_characteristics = Resources.FindObjectsOfTypeAll<CustomLevelLoader>().First().GetField<BeatmapCharacteristicCollectionSO, CustomLevelLoader>("_beatmapCharacteristicCollection");
// song info panel
var songInfoBG = CreateBackground(
mask.transform,
"SongInfo",
new Vector2(HalfPoint, 1f),
Vector2.one,
new Vector2(-0.5f, -14f),
new Vector2(-3f, 6f),
new Vector2(0.5f, 1f),
BackgroundScale);
var container = new GameObject("Time").AddComponent<RectTransform>();
container.SetParent(songInfoBG.transform, false);
container.anchorMin = new Vector2(0.15f, 0f);
container.anchorMax = new Vector2(0.45f, 1f);
container.ancreplaceddPosition = Vector2.zero;
container.sizeDelta = Vector2.zero;
var timeIcon = new GameObject("TimeIcon").AddComponent<Image>();
timeIcon.rectTransform.SetParent(container, false);
timeIcon.rectTransform.anchorMin = new Vector2(0.25f, 0.5f);
timeIcon.rectTransform.anchorMax = new Vector2(0.25f, 0.5f);
timeIcon.rectTransform.ancreplaceddPosition = Vector2.zero;
timeIcon.rectTransform.sizeDelta = new Vector2(3.2f, 3.2f);
timeIcon.sprite = Resources.FindObjectsOfTypeAll<Image>().First(x => x.name == "Icon" && x.sprite?.name == "ClockIcon").sprite;
_timeText = BeatSaberUI.CreateText(container, "", Vector2.zero, Vector2.zero);
_timeText.name = "TimeText";
_timeText.rectTransform.anchorMin = new Vector2(0.5f, 0f);
_timeText.rectTransform.anchorMax = new Vector2(1f, 1f);
_timeText.alignment = TextAlignmentOptions.Center;
_timeText.overflowMode = TextOverflowModes.Truncate;
_timeText.enableWordWrapping = false;
_timeText.fontSize = 3.2f;
container = new GameObject("BPM").AddComponent<RectTransform>();
container.SetParent(songInfoBG.transform, false);
container.anchorMin = new Vector2(0.55f, 0f);
container.anchorMax = new Vector2(0.85f, 1f);
container.ancreplaceddPosition = Vector2.zero;
container.sizeDelta = Vector2.zero;
var bpmIcon = new GameObject("BPMIcon").AddComponent<Image>();
bpmIcon.rectTransform.SetParent(container, false);
bpmIcon.rectTransform.anchorMin = new Vector2(0.25f, 0.5f);
bpmIcon.rectTransform.anchorMax = new Vector2(0.25f, 0.5f);
bpmIcon.rectTransform.ancreplaceddPosition = Vector2.zero;
bpmIcon.rectTransform.sizeDelta = new Vector2(3.2f, 3.2f);
bpmIcon.sprite = Resources.FindObjectsOfTypeAll<Image>().First(x => x.name == "Icon" && x.sprite?.name == "MetronomeIcon").sprite;
_bpmText = BeatSaberUI.CreateText(container, "", Vector2.zero, Vector2.zero);
_bpmText.name = "BPMText";
_bpmText.rectTransform.anchorMin = new Vector2(0.5f, 0f);
_bpmText.rectTransform.anchorMax = new Vector2(1f, 1f);
_bpmText.alignment = TextAlignmentOptions.Center;
_bpmText.overflowMode = TextOverflowModes.Truncate;
_bpmText.enableWordWrapping = false;
_bpmText.fontSize = 3.2f;
// difficulties panel
var difficultiesBG = CreateBackground(
mask.transform,
"Difficulties",
new Vector2(0f, 1f),
new Vector2(HalfPoint, 1f),
new Vector2(0.5f, -28f),
new Vector2(-3f, 28f),
new Vector2(0.5f, 1f),
BackgroundScale);
string[] DifficultyStrings = { "Easy", "Normal", "Hard", "Expert", "ExpertPlus" };
string[] DifficultyTexts =
{
"<color=#55CC55>Easy</color>",
"<color=#2299EE>Normal</color>",
"<color=#FF9900>Hard</color>",
"<color=#FF4433>Expert</color>",
"<color=#AA22BB>Expert+</color>"
};
const float IconSize = 2.5f;
const float DifficultiesreplacedleYAnchor = 0.88f;
float divisionSize = DifficultiesreplacedleYAnchor / DifficultyStrings.Length;
for (int i = 0; i < DifficultyStrings.Length; ++i)
{
float minYAnchor = DifficultiesreplacedleYAnchor - divisionSize * (i + 1);
float maxYAnchor = DifficultiesreplacedleYAnchor - divisionSize * i;
float halfYAnchor = (minYAnchor + maxYAnchor) / 2f;
// offset 1u to the right
var text = BeatSaberUI.CreateText(difficultiesBG, DifficultyTexts[i], new Vector2(2f, 0f), new Vector2(-2f, 0f));
text.name = DifficultyStrings[i] + "Text";
text.rectTransform.anchorMin = new Vector2(0f, minYAnchor);
text.rectTransform.anchorMax = new Vector2(0.5f, maxYAnchor);
text.alignment = TextAlignmentOptions.Center;
text.overflowMode = TextOverflowModes.Truncate;
text.enableWordWrapping = false;
text.fontSize = 2.9f;
var image = new GameObject("Icon").AddComponent<Image>();
image.rectTransform.SetParent(difficultiesBG.transform, false);
image.rectTransform.anchorMin = new Vector2(0.75f, halfYAnchor);
image.rectTransform.anchorMax = new Vector2(0.75f, halfYAnchor);
image.rectTransform.ancreplaceddPosition = Vector2.zero;
image.rectTransform.sizeDelta = new Vector2(IconSize, IconSize);
image.sprite = UIUtilities.BlankSprite;
image.color = Color.black;
image.material = UIUtilities.NoGlowMaterial;
_difficultyElements.Add(DifficultyStrings[i], image);
}
var difficultiesreplacedleText = BeatSaberUI.CreateText(difficultiesBG, "DIFFICULTIES", new Vector2(0f, -0.25f), new Vector2(0f, -0.5f));
difficultiesreplacedleText.name = "Difficultiesreplacedle";
difficultiesreplacedleText.rectTransform.anchorMin = new Vector2(0f, DifficultiesreplacedleYAnchor);
difficultiesreplacedleText.rectTransform.anchorMax = Vector2.one;
difficultiesreplacedleText.alignment = TextAlignmentOptions.Top;
difficultiesreplacedleText.fontSize = 2.1f;
difficultiesreplacedleText.color = replacedleColour;
// details text
var detailsTextBG = CreateBackground(
mask.transform,
"DetailsText",
new Vector2(HalfPoint, 1f),
Vector2.one,
new Vector2(-0.5f, -21f),
new Vector2(-3f, 35f),
new Vector2(0.5f, 1f),
BackgroundScale);
var detailsreplacedleText = BeatSaberUI.CreateText(detailsTextBG, "ADDITIONAL INFORMATION", new Vector2(0f, -1.5f), new Vector2(0f, 1.5f));
detailsreplacedleText.name = "Detailsreplacedle";
detailsreplacedleText.rectTransform.anchorMin = new Vector2(0f, 1f);
detailsreplacedleText.rectTransform.anchorMax = Vector2.one;
detailsreplacedleText.alignment = TextAlignmentOptions.Top;
detailsreplacedleText.fontSize = 2.1f;
detailsreplacedleText.color = replacedleColour;
_detailsText = BeatSaberUI.CreateText(detailsTextBG, "", new Vector2(0f, -2f), new Vector2(-6f, -3f));
_detailsText.name = "DetailsText";
_detailsText.rectTransform.anchorMin = Vector2.zero;
_detailsText.rectTransform.anchorMax = Vector2.one;
_detailsText.alignment = TextAlignmentOptions.TopLeft;
_detailsText.overflowMode = TextOverflowModes.Truncate;
_detailsText.enableWordWrapping = true;
_detailsText.fontSize = 3f;
_loadingSpinner = UIUtilities.CreateLoadingSpinner(detailsTextBG);
_loadingSpinner.SetActive(false);
// buttons
var buttonsContainer = CreateContainer(
mask.transform,
"ButtonContainer",
Vector2.zero,
new Vector2(1f, 0f),
new Vector2(0f, 3f),
new Vector2(-4f, 11f),
new Vector2(0.5f, 0f));
hlg = buttonsContainer.gameObject.AddComponent<HorizontalLayoutGroup>();
hlg.spacing = 3f;
var buttonPrefab = Resources.FindObjectsOfTypeAll<Button>().First(x => x.name == "PlayButton");
_selectButton = Instantiate(buttonPrefab, buttonsContainer, false);
_selectButton.name = "SelectSongButton";
_selectButton.SetButtonText("SELECT SONG");
_selectButton.SetButtonTextSize(4.7f);
_selectButton.interactable = true;
_selectButton.GetComponentInChildren<Image>().color = new Color(0f, 0.706f, 1f, 0.784f);
_selectButton.ToggleWordWrapping(false);
_selectButton.onClick.RemoveAllListeners();
_selectButton.onClick.AddListener(() => SelectButtonPressed?.Invoke());
_keyboardButton = Instantiate(buttonPrefab, buttonsContainer, false);
_keyboardButton.name = "DisplayKeyboardButton";
_keyboardButton.SetButtonText("DISPLAY\nKEYBOARD");
_keyboardButton.SetButtonTextSize(3.3f);
_keyboardButton.interactable = true;
_keyboardButton.GetComponentInChildren<Image>().color = new Color(0f, 0.706f, 1f, 0.784f);
_keyboardButton.onClick.RemoveAllListeners();
_keyboardButton.onClick.AddListener(() => KeyboardButtonPressed?.Invoke());
_keyboardButton.gameObject.SetActive(PluginConfig.SearchKeyboard == SearchKeyboardType.Compact);
var detailView = Resources.FindObjectsOfTypeAll<StandardLevelDetailView>().First();
_blurRenderer = detailView.GetField<KawaseBlurRendererSO, StandardLevelDetailView>("_kawaseBlurRenderer");
}
19
Source : ShopInjector.cs
with MIT License
from Dazegambler
with MIT License
from Dazegambler
static GameObject CreateVariantOption(GameObject panel, UKContentWeapon weapon, int i)
{
var go = GameObject.Instantiate(variantTemplate, panel.transform);
var info = go.GetComponent<VariationInfo>();
info.enabled = false;
var cbget = info.GetComponentInChildren<ColorBlindGet>();
cbget.GetComponent<Image>().sprite = weapon.Icon;
cbget.variationNumber = i;
info.transform.Find("Text").GetComponent<Text>().text = weapon.Variants[i].name;
info.transform.Find("Text (1)").gameObject.SetActive(false);
// very hacky
var equipmentStuffs = info.transform.Find("EquipmentStuffs");
Button lb = equipmentStuffs.Find("PreviousButton").GetComponent<Button>();
Button rb = equipmentStuffs.Find("NextButton").GetComponent<Button>();
Image img = info.equipButton.transform.GetChild(0).GetComponent<Image>();
var isEquipped = GunSetterPatch.equippedDict[weapon.Variants[i]];
img.sprite = info.equipSprites[isEquipped ? 1 : 0];
UnityAction del = () =>
{
GunSetterPatch.equippedDict[weapon.Variants[i]] = !GunSetterPatch.equippedDict[weapon.Variants[i]];
img.sprite = info.equipSprites[GunSetterPatch.equippedDict[weapon.Variants[i]] ? 1 : 0];
MonoSingleton<GunSetter>.Instance.ResetWeapons();
};
lb.onClick.AddListener(del);
rb.onClick.AddListener(del);
go.GetComponent<RectTransform>().offsetMax = new Vector2(0, 160 - (i * variantHeight));
go.GetComponent<RectTransform>().offsetMin = new Vector2(-360, 80 - (i * variantHeight));
//todo: equip buttons
return go;
}
19
Source : Tracking_Controller.cs
with MIT License
from DMagic1
with MIT License
from DMagic1
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(gameObject);
return;
}
_instance = this;
OnWidgetSelect.AddListener(new UnityAction<TrackingStationWidget>(OnWidgetSelected));
OnWidgetAwake.AddListener(new UnityAction<TrackingStationWidget>(OnWidgetAwaken));
GameEvents.onNewVesselCreated.Add(new EventData<Vessel>.OnEvent(OnVesselCreate));
GameEvents.onVesselDestroy.Add(new EventData<Vessel>.OnEvent(OnVesselDestroy));
GameEvents.onKnowledgeChanged.Add(new EventData<GameEvents.HostedFromToAction<IDiscoverable, DiscoveryLevels>>.OnEvent(OnKnowledgeChange));
_CurrentMode = (Tracking_Mode)Tracking_Persistence.SortMode;
StartCoroutine(WaitForTrackingStation());
}
19
Source : FullVesselItem.cs
with MIT License
from DMagic1
with MIT License
from DMagic1
private void Awake()
{
if (m_Toggle != null)
m_Toggle.onValueChanged.AddListener(new UnityEngine.Events.UnityAction<bool>(OnVesselToggle));
}
19
Source : FullVesselItem.cs
with MIT License
from DMagic1
with MIT License
from DMagic1
public void SelectVessel()
{
if (m_Toggle == null)
return;
m_Toggle.onValueChanged.RemoveAllListeners();
m_Toggle.group.SetAllTogglesOff();
m_Toggle.isOn = true;
m_Toggle.onValueChanged.AddListener(new UnityEngine.Events.UnityAction<bool>(OnVesselToggle));
}
19
Source : VesselItem.cs
with MIT License
from DMagic1
with MIT License
from DMagic1
public void SelectVessel()
{
if (m_Toggle == null)
return;
m_Toggle.onValueChanged.RemoveAllListeners();
m_Toggle.group.SetAllTogglesOff();
m_Toggle.isOn = true;
m_Toggle.onValueChanged.AddListener(new UnityEngine.Events.UnityAction<bool>(OnVesselToggle));
}
19
Source : Settings.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override void OnViewCreation()
{
/// Update opacity
SDK.UI.Backgroundable.SetOpacity(m_MessageFrame_Background, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_EventFrame_TriggerTab, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_EventFrame_ConditionsTab, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_EventFrame_ConditionsTab_ConditionContent, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_EventFrame_ActionsTab, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_EventFrame_ActionsTab_ActionContent, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_AddConditionFrame_Background, 0.50f);
SDK.UI.Backgroundable.SetOpacity(m_AddActionFrame_Background, 0.50f);
SDK.UI.ModalView.SetOpacity(m_InputKeyboard.modalView, 0.75f);
/// Scale down up & down button
m_EventFrame_ConditionsTab_UpButton.transform.localScale = Vector3.one * 0.6f;
m_EventFrame_ConditionsTab_DownButton.transform.localScale = Vector3.one * 0.6f;
m_EventFrame_ActionsTab_UpButton.transform.localScale = Vector3.one * 0.6f;
m_EventFrame_ActionsTab_DownButton.transform.localScale = Vector3.one * 0.6f;
/// Setup condition list
if (m_EventFrame_ConditionsTab_ListView.GetComponent<LayoutElement>())
{
var l_LayoutElement = m_EventFrame_ConditionsTab_ListView.GetComponent<LayoutElement>();
l_LayoutElement.preferredWidth = 45;
l_LayoutElement.preferredHeight = 40;
var l_BSMLTableView = m_EventFrame_ConditionsTab_ListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_EventFrame_ConditionsTab_ListView.GetComponentInChildren<CustomListTableData>());
m_EventFrame_ConditionsTab_List = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SimpleTextList>();
m_EventFrame_ConditionsTab_List.TableViewInstance = l_BSMLTableView;
m_EventFrame_ConditionsTab_List.CellSizeValue = 5f;
l_BSMLTableView.didSelectCellWithIdxEvent += OnConditionSelected;
l_BSMLTableView.SetDataSource(m_EventFrame_ConditionsTab_List, false);
/// Bind events
m_EventFrame_ConditionsTab_UpButton.onClick.AddListener(OnConditionPageUpPressed);
m_EventFrame_ConditionsTab_DownButton.onClick.AddListener(OnConditionPageDownPressed);
}
/// Setup action list
if (m_EventFrame_ActionsTab_ListView.GetComponent<LayoutElement>())
{
var l_LayoutElement = m_EventFrame_ActionsTab_ListView.GetComponent<LayoutElement>();
l_LayoutElement.preferredWidth = 45;
l_LayoutElement.preferredHeight = 40;
var l_BSMLTableView = m_EventFrame_ActionsTab_ListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_EventFrame_ActionsTab_ListView.GetComponentInChildren<CustomListTableData>());
m_EventFrame_ActionsTab_List = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SimpleTextList>();
m_EventFrame_ActionsTab_List.TableViewInstance = l_BSMLTableView;
m_EventFrame_ActionsTab_List.CellSizeValue = 5f;
l_BSMLTableView.didSelectCellWithIdxEvent += OnActionSelected;
l_BSMLTableView.SetDataSource(m_EventFrame_ActionsTab_List, false);
/// Bind events
m_EventFrame_ActionsTab_UpButton.onClick.AddListener(OnActionPageUpPressed);
m_EventFrame_ActionsTab_DownButton.onClick.AddListener(OnActionPageDownPressed);
}
SDK.UI.DropDownListSetting.Setup(m_AddConditionFrame_DropDown, null, true);
SDK.UI.DropDownListSetting.Setup(m_AddActionFrame_DropDown, null, true);
/// Create type selector
m_EventFrame_TabSelectorControl = SDK.UI.TextSegmentedControl.Create(m_EventFrame_TabSelector.transform as RectTransform, false);
m_EventFrame_TabSelectorControl.SetTexts(new string[] { "Trigger", "Conditions", "Actions" });
m_EventFrame_TabSelectorControl.ReloadData();
m_EventFrame_TabSelectorControl.didSelectCellEvent += OnTabSelected;
/// Select a null event to hide everything
SelectEvent(null);
}
19
Source : SettingsRight.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override void OnViewCreation()
{
/// Update background color
SDK.UI.Backgroundable.SetOpacity(m_EventListFrame_Background, 0.5f);
SDK.UI.Backgroundable.SetOpacity(m_AddEventFrame_Background, 0.75f);
SDK.UI.Backgroundable.SetOpacity(m_ImportEventFrame_Background, 0.75f);
SDK.UI.Backgroundable.SetOpacity(m_TemplateEventFrame_Background, 0.75f);
SDK.UI.ModalView.SetOpacity(m_NewEventNameKeyboard.modalView, 0.75f);
SDK.UI.ModalView.SetOpacity(m_RenameKeyboard.modalView, 0.75f);
var l_Event = new BeatSaberMarkupLanguage.Parser.BSMLAction(this, this.GetType().GetMethod(nameof(OnFilterChanged), BindingFlags.Instance | BindingFlags.NonPublic));
/// Setup filters
SDK.UI.DropDownListSetting.Setup(m_FilterFrame_DropDown, l_Event, true, 1f);
/// Scale down up & down button
m_EventsUpButton.transform.localScale = Vector3.one * 0.5f;
m_EventsDownButton.transform.localScale = Vector3.one * 0.5f;
/// Prepare event list
var l_BSMLTableView = m_EventsListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_EventsListView.GetComponentInChildren<CustomListTableData>());
m_EventsList = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SimpleTextList>();
m_EventsList.TableViewInstance = l_BSMLTableView;
m_EventsList.CellSizeValue = 4.8f;
l_BSMLTableView.didSelectCellWithIdxEvent += OnEventSelected;
l_BSMLTableView.SetDataSource(m_EventsList, false);
/// Bind events
m_EventsUpButton.onClick.AddListener(OnPageUpPressed);
m_EventsDownButton.onClick.AddListener(OnPageDownPressed);
/// Remove new event type selector label
SDK.UI.DropDownListSetting.Setup(m_AddEventFrame_DropDown, null, true, 0.95f);
/// Remove import event type selector label
SDK.UI.DropDownListSetting.Setup(m_ImportEventFrame_DropDown, null, true, 0.95f);
/// Remove template event type selector label
SDK.UI.DropDownListSetting.Setup(m_TemplateEventFrame_DropDown, null, true, 0.95f);
OnFilterChanged(null);
}
19
Source : ManagerMain.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override sealed void OnViewCreation()
{
/// Scale down up & down button
m_SongUpButton.transform.localScale = Vector3.one * 0.6f;
m_SongDownButton.transform.localScale = Vector3.one * 0.6f;
/// Create type selector
m_TypeSegmentControl = SDK.UI.TextSegmentedControl.Create(m_TypeSegmentPanel.transform as RectTransform, false);
m_TypeSegmentControl.SetTexts(new string[] { "Requests", "History", "Blacklist" });
m_TypeSegmentControl.ReloadData();
m_TypeSegmentControl.didSelectCellEvent += OnQueueTypeChanged;
/// Prepare song list
var l_BSMLTableView = m_SongListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_SongListView.GetComponentInChildren<CustomListTableData>());
m_SongList = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SongList>();
m_SongList.PlayPreviewAudio = Config.ChatRequest.PlayPreviewMusic;
m_SongList.PreviewAudioVolume = 1.0f;
m_SongList.TableViewInstance = l_BSMLTableView;
m_SongList.Init();
l_BSMLTableView.SetDataSource(m_SongList, false);
/// Bind events
m_SongUpButton.onClick.AddListener(OnSongPageUpPressed);
m_SongList.OnCoverFetched += OnSongCoverFetched;
m_SongList.TableViewInstance.didSelectCellWithIdxEvent += OnSongSelected;
m_SongDownButton.onClick.AddListener(OnSongPageDownPressed);
/// Show song info panel
m_SongInfo_Detail = new SDK.UI.LevelDetail(m_SongInfoPanel.transform);
UnselectSong();
m_SongInfo_Detail.SetFavoriteToggleEnabled(true);
m_SongInfo_Detail.SetFavoriteToggleImage("BeatSaberPlus.Modules.ChatRequest.Resources.Blacklist.png", "BeatSaberPlus.Modules.ChatRequest.Resources.Unblacklist.png");
m_SongInfo_Detail.SetFavoriteToggleHoverHint("Add/Remove to blacklist");
m_SongInfo_Detail.SetFavoriteToggleCallback(OnBlacklistButtonPressed);
m_SongInfo_Detail.SetPracticeButtonEnabled(true);
m_SongInfo_Detail.SetPracticeButtonText("Skip");
m_SongInfo_Detail.SetPracticeButtonAction(SkipOrAddToQueueSong);
m_SongInfo_Detail.SetPlayButtonText("Play");
m_SongInfo_Detail.SetPlayButtonEnabled(true);
m_SongInfo_Detail.SetPlayButtonAction(PlaySong);
/// Force change to tab Request
OnQueueTypeChanged(null, 0);
}
19
Source : ModerationRight.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override void OnViewCreation()
{
/// Update background color
SDK.UI.Backgroundable.SetOpacity(m_Background, 0.5f);
/// Scale down up & down button
m_UsersUpButton.transform.localScale = Vector3.one * 0.5f;
m_UsersDownButton.transform.localScale = Vector3.one * 0.5f;
/// Prepare user list
var l_BSMLTableView = m_UsersListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_UsersListView.GetComponentInChildren<CustomListTableData>());
m_UsersList = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SimpleTextList>();
m_UsersList.TableViewInstance = l_BSMLTableView;
l_BSMLTableView.SetDataSource(m_UsersList, false);
/// Bind events
m_UsersUpButton.onClick.AddListener(OnUsersPageUpPressed);
l_BSMLTableView.didSelectCellWithIdxEvent += OnUserSelected;
m_UsersDownButton.onClick.AddListener(OnUsersPageDownPressed);
}
19
Source : ModerationShortcut.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override void OnViewCreation()
{
/// Update background color
SDK.UI.Backgroundable.SetOpacity(m_Shortcut_Background, 0.5f);
SDK.UI.ModalView.SetOpacity(m_NewKeyboard.modalView, 0.75f);
/// Scale down up & down button
m_ShortcutUpButton.transform.localScale = Vector3.one * 0.5f;
m_ShortcutDownButton.transform.localScale = Vector3.one * 0.5f;
/// Prepare event list
var l_BSMLTableView = m_ShortcutListView.GetComponentInChildren<BSMLTableView>();
l_BSMLTableView.SetDataSource(null, false);
GameObject.DestroyImmediate(m_ShortcutListView.GetComponentInChildren<CustomListTableData>());
m_ShortcutList = l_BSMLTableView.gameObject.AddComponent<SDK.UI.DataSource.SimpleTextList>();
m_ShortcutList.TableViewInstance = l_BSMLTableView;
m_ShortcutList.CellSizeValue = 4.8f;
l_BSMLTableView.didSelectCellWithIdxEvent += OnShortcutSelected;
l_BSMLTableView.SetDataSource(m_ShortcutList, false);
/// Bind events
m_ShortcutUpButton.onClick.AddListener(OnPageUpPressed);
m_ShortcutDownButton.onClick.AddListener(OnPageDownPressed);
/// Build the shortcut list
m_FilteredList = Config.Chat.ModerationKeys.Split(new string[] { Config.Chat.s_ModerationKeyDefault_Split }, System.StringSplitOptions.RemoveEmptyEntries).ToList();
}
19
Source : ViewController.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
protected override sealed void DidActivate(bool p_FirstActivation, bool p_AddedToHierarchy, bool p_ScreenSystemEnabling)
{
/// Forward event
base.DidActivate(p_FirstActivation, p_AddedToHierarchy, p_ScreenSystemEnabling);
/// Bind singleton
Instance = this as T;
if (p_FirstActivation)
{
var l_UICode = GetViewContentDescription();
/// Add loading modal & message modal code
if (true)
{
var l_Closure = l_UICode.LastIndexOf('<');
var l_NewCode = l_UICode.Substring(0, l_Closure);
l_NewCode += "<modal id='SDK_MessageModal' show-event='SDK_ShowMessageModal' hide-event='SDK_CloseMessageModal,CloseAllModals' move-to-center='true' size-delta-y='30' size-delta-x='85'>";
l_NewCode += " <vertical pad='0'>";
l_NewCode += " <text text='' id='SDK_MessageModal_Text' font-size='4' align='Center'/>";
l_NewCode += " <primary-button text='Ok' click-event='SDK_CloseMessageModal'></primary-button>";
l_NewCode += " </vertical>";
l_NewCode += "</modal>";
l_NewCode += "<modal id='SDK_ConfirmModal' show-event='SDK_ShowConfirmModal' hide-event='SDK_CloseConfirmModal,CloseAllModals' move-to-center='true' size-delta-y='30' size-delta-x='85'>";
l_NewCode += " <vertical pad='0'>";
l_NewCode += " <text id='SDK_ConfirmModal_Text' text=' ' font-size='4' align='Center'/>";
l_NewCode += " <horizontal>";
l_NewCode += " <primary-button text='Yes' id='SDK_ConfirmModal_Button'></primary-button>";
l_NewCode += " <button text='No' click-event='SDK_CloseConfirmModal'></button>";
l_NewCode += " </horizontal>";
l_NewCode += " </vertical>";
l_NewCode += "</modal>";
l_NewCode += "<modal id='SDK_LoadingModal' show-event='SDK_ShowLoadingModal' hide-event='SDK_CloseLoadingModal,CloseAllModals' move-to-center='true' size-delta-y='30' size-delta-x='48'>";
l_NewCode += " <text id='SDK_LoadingModal_Text' font-size='5.5' align='Center'/>";
l_NewCode += "</modal>";
l_NewCode += l_UICode.Substring(l_Closure);
l_UICode = l_NewCode;
}
/// Construct UI
m_ParserParams = BSMLParser.instance.Parse(l_UICode, gameObject, this as T);
/// Change state
UICreated = true;
/// Setup loading modal
SDK.UI.ModalView.SetupLoadingControl(m_SDK_LoadingModal, out m_LoadingModal_Spinner);
SDK.UI.ModalView.SetOpacity(m_SDK_MessageModal, 0.75f);
SDK.UI.ModalView.SetOpacity(m_SDK_ConfirmModal, 0.75f);
SDK.UI.ModalView.SetOpacity(m_SDK_LoadingModal, 0.75f);
/// bind events
m_SDK_ConfirmModal_Button.onClick.RemoveAllListeners();
m_SDK_ConfirmModal_Button.onClick.AddListener(OnSDKConfirmModal);
/// Call implementation
OnViewCreation();
}
/// Call implementation
OnViewActivation();
}
19
Source : LevelDetail.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
public void SetPracticeButtonAction(UnityEngine.Events.UnityAction p_Value)
{
m_PracticeButton.onClick.RemoveAllListeners();
m_PracticeButton.onClick.AddListener(p_Value);
}
19
Source : LevelDetail.cs
with MIT License
from hardcpp
with MIT License
from hardcpp
public void SetPlayButtonAction(UnityEngine.Events.UnityAction p_Value)
{
m_PlayButton.onClick.RemoveAllListeners();
m_PlayButton.onClick.AddListener(p_Value);
}
19
Source : ViewTools.cs
with GNU General Public License v3.0
from HebaruSan
with GNU General Public License v3.0
from HebaruSan
public static void AddFloatingButton(Transform parentTransform, float innerHorizOffset, float innerVertOffset, UIStyle style, string tooltip, UnityAction onClick)
{
// This creates a new button object using the prefab from KSP's UISkinManager.
// The same prefab is used for the PopupDialog system buttons.
// Anything we set on this object will be reflected in the button we create.
GameObject btnGameObj = GameObject.Instantiate<GameObject>(UISkinManager.GetPrefab("UIButtonPrefab"));
// Set the button's parent transform.
btnGameObj.transform.SetParent(parentTransform, false);
// Add a layout element and set it to be ignored.
// Otherwise the button will end up on the bottom of the window.
btnGameObj.AddComponent<LayoutElement>().ignoreLayout = true;
// This is how we position the button.
// The anchors and pivot make the button positioned relative to the top-right corner.
// The ancreplacedd position sets the position with values in pixels.
RectTransform rect = btnGameObj.GetComponent<RectTransform>();
rect.ancreplaceddPosition = new Vector2(innerHorizOffset, innerVertOffset);
rect.sizeDelta = new Vector2(buttonIconWidth, buttonIconWidth);
rect.anchorMin = rect.anchorMax = rect.pivot = new Vector2(
rect.ancreplaceddPosition.x < 0 ? 1 : 0,
rect.ancreplaceddPosition.y < 0 ? 1 : 0
);
// Set the button's image component to the normal sprite.
// Since this object comes from the button's GameObject,
// changing it affects the button directly!
Image btnImg = btnGameObj.GetComponent<Image>();
btnImg.sprite = style.normal.background;
// Now set the different states to their respective sprites.
Button button = btnGameObj.GetComponent<Button>();
button.transition = Selectable.Transition.SpriteSwap;
button.spriteState = new SpriteState() {
highlightedSprite = style.highlight.background,
pressedSprite = style.active.background,
disabledSprite = style.disabled.background
};
// The text will be "Button" if we don't clear it.
btnGameObj.GetChild("Text").GetComponent<TextMeshProUGUI>().text = "";
// Set the tooltip
btnGameObj.SetTooltip(tooltip);
// Set the code to call when clicked.
button.onClick.AddListener(onClick);
// Activate the button object, making it visible.
btnGameObj.SetActive(true);
}
19
Source : SceneEffectsCategorySlider.cs
with GNU Lesser General Public License v3.0
from IllusionMods
with GNU Lesser General Public License v3.0
from IllusionMods
private void Init()
{
Slider.onValueChanged.RemoveAllListeners();
if (ShowInput) Input.onValueChanged.RemoveAllListeners();
if (ShowInput) Input.onEndEdit.RemoveAllListeners();
if (ShowButton) Button.onClick.RemoveAllListeners();
Slider.maxValue = SliderMaximum;
Slider.value = InitialValue;
if (ShowInput) Input.text = InitialValue.ToString(CultureInfo.InvariantCulture);
Slider.onValueChanged.AddListener(delegate (float value)
{
if (!_eventsEnabled) return;
SetValue(value);
});
if (ShowInput)
Input.onEndEdit.AddListener(delegate (string value)
{
if (!_eventsEnabled) return;
SetValue(value);
});
Button.onClick.AddListener(Reset);
SetValue(InitialValue, false);
_eventsEnabled = true;
Label.gameObject.name = $"Label {Text}";
Slider.gameObject.name = $"Slider {Text}";
if (ShowInput) Input.gameObject.name = $"InputField {Text}";
if (ShowButton) Button.gameObject.name = $"Button {Text}";
}
19
Source : MakerCardSave.cs
with GNU Lesser General Public License v3.0
from IllusionMods
with GNU Lesser General Public License v3.0
from IllusionMods
[HarmonyPrefix, HarmonyPatch(typeof(CvsCaptureMenu), "Start")]
internal static void AddSaveCallback(CvsCaptureMenu __instance, Button ___btnSave)
{
// Trigger before the original onClick for card save happens
___btnSave.onClick.AddListener(CardSavePatch);
}
19
Source : DynamicBoneEditor.ToggleSet.cs
with GNU General Public License v3.0
from IllusionMods
with GNU General Public License v3.0
from IllusionMods
public void CreateUI(Transform parent)
{
{
var contentList = UIUtility.CreatePanel("ListEntry", parent);
contentList.gameObject.AddComponent<LayoutElement>().preferredHeight = PanelHeight;
contentList.gameObject.AddComponent<Mask>();
contentList.color = RowColor;
var itemPanel = UIUtility.CreatePanel("ToggleSetPanel", contentList.transform);
itemPanel.gameObject.AddComponent<CanvasGroup>();
itemPanel.gameObject.AddComponent<HorizontalLayoutGroup>().padding = Padding;
itemPanel.color = ItemColor;
var toggleGroup = itemPanel.gameObject.AddComponent<ToggleGroup>();
toggleGroup.allowSwitchOff = false;
LabelText = UIUtility.CreateText("ToggleSetLabel", itemPanel.transform, Label);
LabelText.alignment = TextAnchor.MiddleLeft;
LabelText.color = Color.black;
var labelLE = LabelText.gameObject.AddComponent<LayoutElement>();
labelLE.preferredWidth = LabelWidth;
labelLE.flexibleWidth = LabelWidth;
Toggles = new Toggle[Options.Length];
for (int i = 0; i < Options.Length; i++)
{
int index = i;
Toggles[index] = UIUtility.CreateToggle(Options[index], itemPanel.transform, Options[index]);
Toggles[index].transform.SetRect(0f, 0f, 0f, 1f, 0f, 0f, 100f);
Toggles[index].isOn = false;
Toggles[index].group = toggleGroup;
Toggles[index].onValueChanged.AddListener(value =>
{
if (value)
Value = index;
});
var toggleLE = Toggles[index].gameObject.AddComponent<LayoutElement>();
toggleLE.preferredWidth = ToggleWidth;
toggleLE.flexibleWidth = 0;
}
var reset = UIUtility.CreateButton($"ToggleSetResetButton", itemPanel.transform, "Reset");
var resetLE = reset.gameObject.AddComponent<LayoutElement>();
resetLE.preferredWidth = ResetButtonWidth;
resetLE.flexibleWidth = 0;
reset.onClick.AddListener(() =>
{
Value = ValueOriginal;
});
}
}
19
Source : DynamicBoneEditor.UI.cs
with GNU General Public License v3.0
from IllusionMods
with GNU General Public License v3.0
from IllusionMods
public static void ShowUI(int dynamicBoneIndex)
{
if (!MakerAPI.InsideAndLoaded)
return;
int slot = AccessoriesApi.SelectedMakerAccSlot;
var accessory = MakerAPI.GetCharacterControl().GetAccessoryObject(slot);
if (accessory == null)
{
Visible = false;
return;
}
else
{
var dynamicBones = accessory.GetComponentsInChildren<DynamicBone>().Where(x => x.m_Root != null).ToList();
if (dynamicBones.Count == 0)
{
Visible = false;
return;
}
Visible = true;
var dynamicBone = dynamicBones[dynamicBoneIndex];
var controller = GetMakerCharaController();
DynamicBoneDropdown.onValueChanged.RemoveAllListeners();
DynamicBoneDropdown.options.Clear();
foreach (var bone in dynamicBones)
DynamicBoneDropdown.options.Add(new Dropdown.OptionData(bone.m_Root.name));
DynamicBoneDropdown.value = dynamicBoneIndex;
DynamicBoneDropdown.captionText.text = dynamicBones[dynamicBoneIndex].m_Root.name;
DynamicBoneDropdown.onValueChanged.AddListener(value => { ShowUI(value); });
FreezeAxis.OnChange = null;
FreezeAxis.ValueOriginal = (int)controller.GetFreezeAxisOriginal(slot, dynamicBone);
var freezeAxis = controller.GetFreezeAxis(slot, dynamicBone);
FreezeAxis.Value = freezeAxis == null ? FreezeAxis.ValueOriginal : (int)freezeAxis;
FreezeAxis.OnChange = (value) => { GetMakerCharaController().SetFreezeAxis(slot, dynamicBone, (DynamicBone.FreezeAxis)value); };
Weight.OnChange = null;
Weight.ValueOriginal = controller.GetWeightOriginal(slot, dynamicBone);
var weight = controller.GetWeight(slot, dynamicBone);
Weight.Value = weight == null ? Weight.ValueOriginal : (float)weight;
Weight.OnChange = (value) => { GetMakerCharaController().SetWeight(slot, dynamicBone, value); };
Damping.OnChange = null;
Damping.ValueOriginal = controller.GetDampingOriginal(slot, dynamicBone);
var damping = controller.GetDamping(slot, dynamicBone);
Damping.Value = damping == null ? Damping.ValueOriginal : (float)damping;
Damping.OnChange = (value) => { GetMakerCharaController().SetDamping(slot, dynamicBone, value); };
Elasticity.OnChange = null;
Elasticity.ValueOriginal = controller.GetElasticityOriginal(slot, dynamicBone);
var elasticity = controller.GetElasticity(slot, dynamicBone);
Elasticity.Value = elasticity == null ? Elasticity.ValueOriginal : (float)elasticity;
Elasticity.OnChange = (value) => { GetMakerCharaController().SetElasticity(slot, dynamicBone, value); };
Stiffness.OnChange = null;
Stiffness.ValueOriginal = controller.GetStiffnessOriginal(slot, dynamicBone);
var stiffness = controller.GetStiffness(slot, dynamicBone);
Stiffness.Value = stiffness == null ? Stiffness.ValueOriginal : (float)stiffness;
Stiffness.OnChange = (value) => { GetMakerCharaController().SetStiffness(slot, dynamicBone, value); };
Inertia.OnChange = null;
Inertia.ValueOriginal = controller.GetInertiaOriginal(slot, dynamicBone);
var inertia = controller.GetInertia(slot, dynamicBone);
Inertia.Value = inertia == null ? Inertia.ValueOriginal : (float)inertia;
Inertia.OnChange = (value) => { GetMakerCharaController().SetInertia(slot, dynamicBone, value); };
Radius.OnChange = null;
Radius.ValueOriginal = controller.GetRadiusOriginal(slot, dynamicBone);
var radius = controller.GetRadius(slot, dynamicBone);
Radius.Value = radius == null ? Radius.ValueOriginal : (float)radius;
Radius.OnChange = (value) => { GetMakerCharaController().SetRadius(slot, dynamicBone, value); };
}
}
19
Source : FreeHRandom.cs
with GNU General Public License v3.0
from IllusionMods
with GNU General Public License v3.0
from IllusionMods
private static void CreateRandomButton(string buttonObjectPath, CharacterType characterType)
{
var buttonObject = GameObject.Find(buttonObjectPath);
if (buttonObject == null)
return;
RectTransform buttonToCopy = buttonObject.GetComponent<RectTransform>();
if (buttonToCopy == null)
return;
var copy = Instantiate(buttonToCopy.gameObject);
copy.name = $"{buttonToCopy.name}Random";
Button randomButton = copy.GetComponent<Button>();
Transform randomButtonTransform = randomButton.transform;
RectTransform testButtonRectTransform = randomButtonTransform as RectTransform;
randomButtonTransform.SetParent(buttonToCopy.parent, true);
randomButtonTransform.localScale = buttonToCopy.localScale;
randomButtonTransform.localPosition = buttonToCopy.localPosition;
testButtonRectTransform.SetRect(buttonToCopy.anchorMin, buttonToCopy.anchorMax, buttonToCopy.offsetMin, buttonToCopy.offsetMax);
testButtonRectTransform.ancreplaceddPosition = buttonToCopy.ancreplaceddPosition + new Vector2(0f, -50f);
randomButton.onClick = new Button.ButtonClickedEvent();
randomButton.onClick.AddListener(() => { RandomizeCharacter(characterType); });
var tmp = copy.transform.Children().FirstOrDefault(x => x.name.StartsWith("TextMeshPro"));
if (tmp != null)
tmp.GetComponent<TextMeshProUGUI>().text = CC.Language == 0 ? "ランダム" : "Random";
}
19
Source : DynamicBoneEditor.SliderSet.cs
with GNU General Public License v3.0
from IllusionMods
with GNU General Public License v3.0
from IllusionMods
public void CreateUI(Transform parent)
{
var contentList = UIUtility.CreatePanel("ListEntry", parent);
contentList.gameObject.AddComponent<LayoutElement>().preferredHeight = PanelHeight;
contentList.gameObject.AddComponent<Mask>();
contentList.color = RowColor;
var itemPanel = UIUtility.CreatePanel("SliderSetPanel", contentList.transform);
itemPanel.gameObject.AddComponent<CanvasGroup>();
itemPanel.gameObject.AddComponent<HorizontalLayoutGroup>().padding = Padding;
itemPanel.color = ItemColor;
LabelText = UIUtility.CreateText("SliderSetLabel", itemPanel.transform, Label);
LabelText.alignment = TextAnchor.MiddleLeft;
LabelText.color = Color.black;
var labelLE = LabelText.gameObject.AddComponent<LayoutElement>();
labelLE.preferredWidth = LabelWidth;
labelLE.flexibleWidth = LabelWidth;
ValueSlider = UIUtility.CreateSlider("SliderSetSlider", itemPanel.transform);
var sliderFloatLE = ValueSlider.gameObject.AddComponent<LayoutElement>();
sliderFloatLE.preferredWidth = SliderWidth;
sliderFloatLE.flexibleWidth = 0;
InputField textBoxFloat = UIUtility.CreateInputField("SliderSetInputField", itemPanel.transform);
textBoxFloat.text = "0";
var textBoxFloatLE = textBoxFloat.gameObject.AddComponent<LayoutElement>();
textBoxFloatLE.preferredWidth = TextBoxWidth;
textBoxFloatLE.flexibleWidth = 0;
var reset = UIUtility.CreateButton($"SliderSetResetButton", itemPanel.transform, "Reset");
var resetLE = reset.gameObject.AddComponent<LayoutElement>();
resetLE.preferredWidth = ResetButtonWidth;
resetLE.flexibleWidth = 0;
ValueSlider.onValueChanged.AddListener(value =>
{
textBoxFloat.text = value.ToString();
textBoxFloat.onEndEdit.Invoke(value.ToString());
});
textBoxFloat.onEndEdit.AddListener(value =>
{
if (!float.TryParse(value, out float input))
{
textBoxFloat.text = Value.ToString();
return;
}
Value = input;
});
reset.onClick.AddListener(() =>
{
Value = ValueOriginal;
});
}
See More Examples