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

Moved SettingsMenu and MenuManager to Menus folder

This commit is contained in:
Rich Dunne 2020-08-18 19:02:15 -06:00
parent f4c1c0c693
commit 2d85e65b32
3 changed files with 2 additions and 2 deletions

View file

@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Drawing;
using Rage;
using RAGENativeUI;
using RAGENativeUI.Elements;
namespace SceneManager
{
public static class MenuManager
{
public static MenuPool menuPool = new MenuPool();
public static UIMenu mainMenu, pathMenu, barrierMenu, pathCreationMenu, editPathMenu, editWaypointMenu, settingsMenu;
public static void InstantiateMenus()
{
mainMenu = new UIMenu("Scene Manager", "");
settingsMenu = new UIMenu("Scene Menu", "~o~Plugin Settings");
settingsMenu.ParentMenu = mainMenu;
pathMenu = new UIMenu("Scene Manager", "~o~Path Menu");
pathMenu.ParentMenu = mainMenu;
pathCreationMenu = new UIMenu("Scene Manager", "~o~Path Creation");
pathCreationMenu.ParentMenu = pathMenu;
barrierMenu = new UIMenu("Scene Manager", "~o~Barrier Management");
barrierMenu.ParentMenu = mainMenu;
editPathMenu = new UIMenu("Scene Manager", "~o~Edit Path");
editPathMenu.ParentMenu = pathMenu;
editWaypointMenu = new UIMenu("Scene Manager", "~o~Edit Waypoint");
editWaypointMenu.ParentMenu = editPathMenu;
AddMenusToMenuPool();
BuildMenus();
DefineMenuMouseSettings();
}
private static void DefineMenuMouseSettings()
{
foreach (UIMenu menu in menuPool)
{
menu.MouseControlsEnabled = false;
menu.AllowCameraMovement = true;
}
}
private static void BuildMenus()
{
MainMenu.BuildMainMenu();
SettingsMenu.BuildSettingsMenu();
TrafficMenu.BuildPathMenu();
PathCreationMenu.BuildPathCreationMenu();
EditPathMenu.BuildEditPathMenu();
BarrierMenu.BuildBarrierMenu();
}
private static void AddMenusToMenuPool()
{
menuPool.Add(mainMenu);
menuPool.Add(settingsMenu);
menuPool.Add(pathMenu);
menuPool.Add(barrierMenu);
menuPool.Add(pathCreationMenu);
menuPool.Add(editPathMenu);
menuPool.Add(editWaypointMenu);
}
}
}

View file

@ -0,0 +1,79 @@
using Rage;
using RAGENativeUI;
using RAGENativeUI.Elements;
using System.Drawing;
using System.Linq;
namespace SceneManager
{
class SettingsMenu
{
public static UIMenuCheckboxItem debugGraphics;
public static UIMenuListScrollerItem<SpeedUnitsOfMeasure> speedUnits;
public enum SpeedUnitsOfMeasure
{
MPH,
KPH
}
public static void BuildSettingsMenu()
{
MenuManager.settingsMenu.AddItem(debugGraphics = new UIMenuCheckboxItem("Enable Debug Graphics", false));
MenuManager.settingsMenu.AddItem(speedUnits = new UIMenuListScrollerItem<SpeedUnitsOfMeasure>("Speed Unit of Measure", "", new[] { SpeedUnitsOfMeasure.MPH, SpeedUnitsOfMeasure.KPH }));
MenuManager.settingsMenu.OnCheckboxChange += SettingsMenu_OnCheckboxChange;
MenuManager.settingsMenu.OnScrollerChange += SettingsMenu_OnScrollerChange;
}
private static void SettingsMenu_OnCheckboxChange(UIMenu sender, UIMenuCheckboxItem checkboxItem, bool @checked)
{
if (checkboxItem == debugGraphics)
{
// TODO: Fix graphics don't display when new path is created, have to uncheck and re-check the option
// TODO: Add branch for this during path creation ... create temp Waypoint list during path creation, then assign to path[i] after creation?
if (debugGraphics.Checked)
{
foreach (Path path in TrafficMenu.paths)
{
GameFiber.StartNew(() =>
{
while (debugGraphics.Checked && path != null && path.Waypoint.Count > 0)
{
for (int i = 0; i < path.Waypoint.Count; i++)
{
if (path.Waypoint[i].Collector)
{
Debug.DrawSphere(path.Waypoint[i].WaypointPos, path.Waypoint[i].CollectorRadius, Color.FromArgb(80, Color.Blue));
}
else if (path.Waypoint[i].DrivingFlag == VehicleDrivingFlags.StopAtDestination)
{
Debug.DrawSphere(path.Waypoint[i].WaypointPos, 1f, Color.FromArgb(80, Color.Red));
}
else
{
Debug.DrawSphere(path.Waypoint[i].WaypointPos, 1f, Color.FromArgb(80, Color.Green));
}
if (i != path.Waypoint.Count - 1)
{
Debug.DrawLine(path.Waypoint[i].WaypointPos, path.Waypoint[i + 1].WaypointPos, Color.White);
}
}
GameFiber.Yield();
}
});
}
}
}
}
private static void SettingsMenu_OnScrollerChange(UIMenu sender, UIMenuScrollerItem scrollerItem, int oldIndex, int newIndex)
{
if (scrollerItem == speedUnits)
{
MenuManager.pathCreationMenu.Clear();
PathCreationMenu.BuildPathCreationMenu();
}
}
}
}