// Token: 0x0600634C RID: 25420 RVA: 0x00234A28 File Offset: 0x00232E28 public void ShowTab(VRCUiPageTab tab) { for (int i = 0; i < this.currentPageTabs.Count; i++) { if (this.currentPageTabs[i] == tab) { this.selected = i; } } VRCUiManager.Instance.ShowScreen(tab.screen); }
private IEnumerator DelayedStart() { yield return(new WaitForSeconds(10)); VRCUiPageTabGroup[] info = (VRCUiPageTabGroup[])typeof(VRCUiPageTabManager).GetField("CNFIIMIEIOD", (System.Reflection.BindingFlags) 62).GetValue(UIWrappers.VRCUiPageTabManagerInstance); foreach (VRCUiPageTabGroup group in info) { Log.Info($"group: {group.gameObject.name}, {group.name}"); } VRCUiPageTab tab = UIWrappers.VRCUiPageTabManagerInstance.CreateTab("NekoClient", "nekoclient", VRCUiPageTabManager.NFBPFIKBDKI.Everywhere, info[0]); }
// Token: 0x06006347 RID: 25415 RVA: 0x00234854 File Offset: 0x00232C54 public VRCUiPageTab CreateTab(string title, string screenPath, VRCUiPageTabManager.TabContext context, VRCUiPageTabGroup tabGroup = null, UnityAction onClick = null) { VRCUiPageTab vrcuiPageTab = (VRCUiPageTab)AssetManagement.Instantiate(this.pageTabPrefab); vrcuiPageTab.Fill(title, screenPath, context); this.allPageTabs.Add(vrcuiPageTab); this.currentPageTabs.Add(vrcuiPageTab); if (tabGroup != null) { tabGroup.AddTab(vrcuiPageTab); vrcuiPageTab.transform.SetParent(tabGroup.transform); vrcuiPageTab.transform.Reset(); } if (onClick != null) { Button component = vrcuiPageTab.GetComponent <Button>(); component.onClick.AddListener(onClick); } return(vrcuiPageTab); }
public static void LoadAssetBundle() { // Stolen from UIExpansionKit (https://github.com/knah/VRCMods/blob/master/UIExpansionKit) #Imnotaskidiswear MelonLogger.Msg("Loading UI..."); ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPromptPage>(); ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPageDetailed>(); ClassInjector.RegisterTypeInIl2Cpp <AskToPortalPageBasic>(); GameObject screens = GameObject.Find("UserInterface/MenuContent/Screens"); using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("AskToPortal.asktoportalui.assetbundle")) { using (var memoryStream = new MemoryStream((int)stream.Length)) { stream.CopyTo(memoryStream); AssetBundle assetBundle = AssetBundle.LoadFromMemory_Internal(memoryStream.ToArray(), 0); detailedMenu = Object.Instantiate(assetBundle.LoadAsset_Internal("Assets/Prefabs/AskToPortalDetailed.prefab", Il2CppType.Of <GameObject>()).Cast <GameObject>(), screens.transform); basicMenu = Object.Instantiate(assetBundle.LoadAsset_Internal("Assets/Prefabs/AskToPortalBasic.prefab", Il2CppType.Of <GameObject>()).Cast <GameObject>(), screens.transform); } } detailedMenu.SetActive(false); detailedMenuComponent = detailedMenu.AddComponent <AskToPortalPageDetailed>(); basicMenu.SetActive(false); basicMenuComponent = basicMenu.AddComponent <AskToPortalPageBasic>(); dosisRegular = GameObject.Find("UserInterface/MenuContent/Screens/Settings/VolumePanel/VolumeUi/Label").GetComponent <Text>().font; dosisSemiBold = GameObject.Find("UserInterface/MenuContent/Screens/Settings/VolumePanel/TitleText (1)").GetComponent <Text>().font; bifrost = GameObject.Find("UserInterface/MenuContent/Screens/Settings/Footer/Logout").GetComponent <Image>().sprite; AddFontAndImages(detailedMenu.transform); AddFontAndImages(basicMenu.transform); detailedMenuComponent.Init(); basicMenuComponent.Init(); vrcUiTabsParent = GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs"); tabsParent = Object.Instantiate(vrcUiTabsParent, vrcUiTabsParent.transform.parent); Transform tabsContent = tabsParent.transform.GetChild(0).GetChild(0); for (int i = tabsContent.childCount - 1; i >= 0; i--) { Object.DestroyImmediate(tabsContent.GetChild(i).gameObject); } tabsParent.name = "AskToPortalTabs"; tabsContent.GetComponent <HorizontalLayoutGroup>().childAlignment = TextAnchor.MiddleCenter; UiManager.OnBigMenuClosed += new System.Action(() => { tabsParent.SetActive(false); vrcUiTabsParent.SetActive(true); }); GameObject basicTabGameObject = Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/WorldsPageTab"), tabsParent.transform.Find("ViewPort/Content")); basicTabGameObject.name = "BasicPageTab"; basicTabGameObject.transform.Find("Button/Text").GetComponent <Text>().text = "Basic"; basicMenuTab = basicTabGameObject.GetComponent <VRCUiPageTab>(); basicMenuTab.field_Public_String_1 = "UserInterface/MenuContent/Screens/AskToPortalBasic(Clone)"; GameObject detailedTabGameObject = Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/WorldsPageTab"), tabsParent.transform.Find("ViewPort/Content")); detailedTabGameObject.name = "DetailedPageTab"; detailedTabGameObject.transform.Find("Button/Text").GetComponent <Text>().text = "Detailed"; detailedMenuTab = detailedTabGameObject.GetComponent <VRCUiPageTab>(); detailedMenuTab.field_Public_String_1 = "UserInterface/MenuContent/Screens/AskToPortalDetailed(Clone)"; AskToPortalMod.Instance.HarmonyInstance.Patch(typeof(VRCUiPageTab).GetMethod("ShowPage"), new HarmonyMethod(typeof(MenuManager).GetMethod(nameof(OnTabShowPage), BindingFlags.NonPublic | BindingFlags.Static))); }
// Token: 0x0600633D RID: 25405 RVA: 0x00233DB8 File Offset: 0x002321B8 public void AddTab(VRCUiPageTab tab) { tab.transform.SetParent(base.transform); this.mTabs.Add(tab); }