1
Fork 0
mirror of https://github.com/thegeneralist01/Scene-Manager-DevRepo synced 2026-01-11 15:40:29 +01:00

Big refactor

This commit is contained in:
Rich Dunne 2021-01-10 08:35:21 -07:00
parent 6769ca815e
commit f1554a4aea
8 changed files with 557 additions and 1365 deletions

View file

@ -3,42 +3,51 @@ using RAGENativeUI.Elements;
using System.Collections.Generic;
using System.Drawing;
using SceneManager.Utils;
using Rage;
namespace SceneManager
namespace SceneManager.Menus
{
// The only reason this class should change is to modify the main menu
class MainMenu
{
internal static UIMenu mainMenu { get; private set; }
private static UIMenuItem navigateToPathMenu, navigateToBarrierMenu, navigateToSettingsMenu;
internal static UIMenu Menu { get; } = new UIMenu("Scene Manager", "~o~Main Menu");
internal static void InstantiateMenu()
internal static void Initialize()
{
mainMenu = new UIMenu("Scene Manager", "~o~Main Menu");
MenuManager.menuPool.Add(mainMenu);
MenuManager.AddToMenuPool(Menu);
Menu.OnMenuOpen += MainMenu_OnMenuOpen;
}
internal static void BuildMainMenu()
{
mainMenu.AddItem(navigateToPathMenu = new UIMenuItem("Path Menu"));
var navigateToPathMenu = new UIMenuItem("Path Menu");
Menu.AddItem(navigateToPathMenu);
navigateToPathMenu.ForeColor = Color.Gold;
mainMenu.BindMenuToItem(PathMainMenu.pathMainMenu, navigateToPathMenu);
Menu.BindMenuToItem(PathMainMenu.Menu, navigateToPathMenu);
mainMenu.AddItem(navigateToBarrierMenu = new UIMenuItem("Barrier Menu"));
var navigateToBarrierMenu = new UIMenuItem("Barrier Menu");
Menu.AddItem(navigateToBarrierMenu);
navigateToBarrierMenu.ForeColor = Color.Gold;
mainMenu.BindMenuToItem(BarrierMenu.barrierMenu, navigateToBarrierMenu);
Menu.BindMenuToItem(BarrierMenu.Menu, navigateToBarrierMenu);
mainMenu.AddItem(navigateToSettingsMenu = new UIMenuItem("Settings"));
var navigateToSettingsMenu = new UIMenuItem("Settings Menu");
Menu.AddItem(navigateToSettingsMenu);
navigateToSettingsMenu.ForeColor = Color.Gold;
mainMenu.BindMenuToItem(SettingsMenu.settingsMenu, navigateToSettingsMenu);
Menu.BindMenuToItem(SettingsMenu.Menu, navigateToSettingsMenu);
mainMenu.RefreshIndex();
mainMenu.OnMenuOpen += MainMenu_OnMenuOpen;
Menu.RefreshIndex();
}
private static void MainMenu_OnMenuOpen(UIMenu menu)
{
var scrollerItems = new List<UIMenuScrollerItem> { };
RNUIMouseInputHandler.Initialize(menu, scrollerItems);
GameFiber.StartNew(() => UserInput.InitializeMenuMouseControl(menu, scrollerItems), "RNUI Mouse Input Fiber");
}
internal static void DisplayMenu()
{
Menu.Visible = !Menu.Visible;
}
}
}