private void DisplayMenu() { MenuTree currentTree = MenuTree.GetItems(MenuSystem.GetCurrentDisplayMode()); if (currentTree.Any()) { for (int i = CurrentPageIndex * MaxEntriesPerPage; i < (CurrentPageIndex * MaxEntriesPerPage) + MaxEntriesPerPage; i++) { if (i < currentTree.Count) { currentTree[i]?.Tweak(this); } else { break; } } } else { MessageBox.Create(InternalResources.Strings.MenuSystem.UnavailableMenuError, InternalResources.Strings.MenuSystem.UnavailableMenuErrorTitle) .SetButtons(MessageButtons.Ok) .OnConfirm(() => PanelManager.TopPanel_.onPanelPop_ += () => MenuPanel.Pop()) .Show(); } }
internal static void ShowMenu(MenuTree menuTree, CentrifugeMenu parentMenu, int pageIndex) { if (menuTree.GetItems().Count is 0) { ShowUnavailableMessage(); return; } foreach (var component in parentMenu.PanelObject_.GetComponents <CentrifugeMenu>()) { component.Destroy(); } var menu = GameAPI.Instance.gameObject.AddComponent <CentrifugeMenu>(); menu.MenuTree = menuTree; menu.CurrentPageIndex = pageIndex; menu.MenuPanel = MenuPanel.Create(menu.PanelObject_, true, true, false, true, true, true); menu.MenuPanel.backgroundOpacity_ = 0.75f; menu.MenuPanel.onIsTopChanged_ += (isTop) => { if (isTop) { menu.ResetAnimations(); } else { if (G.Sys.MenuPanelManager_.panelStack_.Contains(menu.MenuPanel)) { menu.SwitchPage(menu.CurrentPageIndex, false, true); } else { menu.SwitchPage(0, false, true); } } }; menu.MenuPanel.onPanelPop_ += () => { if (!G.Sys.MenuPanelManager_.panelStack_.Contains(menu.MenuPanel)) { menu.SwitchPage(0, false, true); parentMenu.PanelObject_.SetActive(true); if (menu.MenuTree != MenuTree) { menu.PanelObject_.Destroy(); } menu.Destroy(); } }; parentMenu.PanelObject_.SetActive(false); menu.MenuPanel.Push(); }
private void DisplayMenu() { MenuTree currentTree = MenuTree.GetItems(MenuSystem.GetCurrentDisplayMode()); for (int i = CurrentPageIndex * MaxEntriesPerPage; i < (CurrentPageIndex * MaxEntriesPerPage) + MaxEntriesPerPage; i++) { if (i < currentTree.Count) { currentTree[i].Tweak(this); } else { break; } } MenuOpenedEvent.Broadcast(this); }