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:
parent
6769ca815e
commit
f1554a4aea
8 changed files with 557 additions and 1365 deletions
|
|
@ -3,114 +3,89 @@ using System.Drawing;
|
|||
using Rage;
|
||||
using RAGENativeUI;
|
||||
using RAGENativeUI.Elements;
|
||||
using SceneManager.Menus;
|
||||
using SceneManager.Utils;
|
||||
|
||||
namespace SceneManager
|
||||
{
|
||||
class EditPathMenu
|
||||
internal class EditPathMenu
|
||||
{
|
||||
internal static UIMenu editPathMenu = new UIMenu("Scene Manager", "~o~Edit Path");
|
||||
private static UIMenuItem editPathWaypoints, deletePath, exportPath;
|
||||
internal static UIMenuCheckboxItem disablePath;
|
||||
internal static UIMenu Menu { get; } = new UIMenu("Scene Manager", "~o~Edit Path");
|
||||
internal static UIMenuCheckboxItem DisablePath { get; } = new UIMenuCheckboxItem("Disable Path", false);
|
||||
private static UIMenuItem EditWaypoints { get; } = new UIMenuItem("Edit Waypoints");
|
||||
private static UIMenuItem deletePath { get; } = new UIMenuItem("Delete Path");
|
||||
private static UIMenuItem ExportPath { get; } = new UIMenuItem("Export Path");
|
||||
|
||||
internal static void InstantiateMenu()
|
||||
internal static void Initialize()
|
||||
{
|
||||
editPathMenu.ParentMenu = PathMainMenu.pathMainMenu;
|
||||
MenuManager.menuPool.Add(editPathMenu);
|
||||
editPathMenu.OnItemSelect += EditPath_OnItemSelected;
|
||||
editPathMenu.OnCheckboxChange += EditPath_OnCheckboxChange;
|
||||
editPathMenu.OnMenuOpen += EditPath_OnMenuOpen;
|
||||
Menu.ParentMenu = PathMainMenu.Menu;
|
||||
MenuManager.MenuPool.Add(Menu);
|
||||
|
||||
Menu.OnItemSelect += EditPath_OnItemSelected;
|
||||
Menu.OnCheckboxChange += EditPath_OnCheckboxChange;
|
||||
Menu.OnMenuOpen += EditPath_OnMenuOpen;
|
||||
}
|
||||
|
||||
internal static void BuildEditPathMenu()
|
||||
{
|
||||
editPathMenu.AddItem(disablePath = new UIMenuCheckboxItem("Disable Path", false));
|
||||
editPathMenu.AddItem(editPathWaypoints = new UIMenuItem("Edit Waypoints"));
|
||||
editPathWaypoints.ForeColor = Color.Gold;
|
||||
editPathMenu.AddItem(deletePath = new UIMenuItem("Delete Path"));
|
||||
Menu.AddItem(DisablePath);
|
||||
Menu.AddItem(EditWaypoints);
|
||||
EditWaypoints.ForeColor = Color.Gold;
|
||||
Menu.AddItem(deletePath);
|
||||
deletePath.ForeColor = Color.Gold;
|
||||
//editPathMenu.AddItem(exportPath = new UIMenuItem("Export Path"));
|
||||
//exportPath.ForeColor = Color.Gold;
|
||||
editPathMenu.RefreshIndex();
|
||||
}
|
||||
|
||||
private static void EditPathWaypoints()
|
||||
{
|
||||
if (!SettingsMenu.threeDWaypoints.Checked)
|
||||
{
|
||||
Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~You have 3D waypoints disabled in your settings. It's recommended to enable 3D waypoints while working with waypoints.");
|
||||
}
|
||||
EditWaypointMenu.BuildEditWaypointMenu();
|
||||
}
|
||||
|
||||
private static void DeletePath()
|
||||
{
|
||||
var currentPath = PathMainMenu.paths[PathMainMenu.editPath.Index];
|
||||
PathMainMenu.DeletePath(currentPath, Delete.Single);
|
||||
}
|
||||
|
||||
private static void DisablePath()
|
||||
{
|
||||
var currentPath = PathMainMenu.paths[PathMainMenu.editPath.Index];
|
||||
if (disablePath.Checked)
|
||||
{
|
||||
currentPath.DisablePath();
|
||||
Game.LogTrivial($"Path {currentPath.Number} disabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
currentPath.EnablePath();
|
||||
Game.LogTrivial($"Path {currentPath.Number} enabled.");
|
||||
}
|
||||
}
|
||||
|
||||
private static void ExportPath()
|
||||
{
|
||||
var currentPath = PathMainMenu.paths[PathMainMenu.editPath.Index];
|
||||
// Reference PNWParks's UserInput class from LiveLights
|
||||
var filename = PNWUserInput.GetUserInput("Type the name you would like to save your file as", "Enter a filename", 100) + ".xml";
|
||||
|
||||
// If filename != null or empty, check if export directory exists (GTA V/Plugins/SceneManager/Saved Paths)
|
||||
if(string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
Game.DisplayHelp($"Invalid filename given. Filename cannot be null, empty, or consist of just white spaces.");
|
||||
Game.LogTrivial($"Invalid filename given. Filename cannot be null, empty, or consist of just white spaces.");
|
||||
return;
|
||||
}
|
||||
Game.LogTrivial($"Filename: {filename}");
|
||||
currentPath.Save(filename);
|
||||
Menu.AddItem(ExportPath);
|
||||
ExportPath.ForeColor = Color.Gold;
|
||||
Menu.RefreshIndex();
|
||||
}
|
||||
|
||||
private static void EditPath_OnItemSelected(UIMenu sender, UIMenuItem selectedItem, int index)
|
||||
{
|
||||
if (selectedItem == editPathWaypoints)
|
||||
if (selectedItem == EditWaypoints)
|
||||
{
|
||||
EditPathWaypoints();
|
||||
if (!SettingsMenu.ThreeDWaypoints.Checked)
|
||||
{
|
||||
Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~You have 3D waypoints disabled in your settings. It's recommended to enable 3D waypoints while working with waypoints.");
|
||||
}
|
||||
EditWaypointMenu.BuildEditWaypointMenu();
|
||||
}
|
||||
|
||||
if (selectedItem == deletePath)
|
||||
{
|
||||
DeletePath();
|
||||
var currentPath = PathManager.Paths[PathMainMenu.EditPath.Index];
|
||||
currentPath.Delete();
|
||||
PathManager.Paths.Remove(currentPath);
|
||||
PathMainMenu.BuildPathMenu();
|
||||
PathMainMenu.Menu.Visible = true;
|
||||
}
|
||||
|
||||
if(selectedItem == exportPath)
|
||||
if(selectedItem == ExportPath)
|
||||
{
|
||||
ExportPath();
|
||||
PathManager.ExportPath();
|
||||
}
|
||||
}
|
||||
|
||||
private static void EditPath_OnCheckboxChange(UIMenu sender, UIMenuCheckboxItem checkboxItem, bool @checked)
|
||||
{
|
||||
if (checkboxItem == disablePath)
|
||||
if (checkboxItem == DisablePath)
|
||||
{
|
||||
DisablePath();
|
||||
var currentPath = PathManager.Paths[PathMainMenu.EditPath.Index];
|
||||
if (DisablePath.Checked)
|
||||
{
|
||||
currentPath.DisablePath();
|
||||
Game.LogTrivial($"Path {currentPath.Number} disabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
currentPath.EnablePath();
|
||||
Game.LogTrivial($"Path {currentPath.Number} enabled.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void EditPath_OnMenuOpen(UIMenu menu)
|
||||
{
|
||||
var scrollerItems = new List<UIMenuScrollerItem> { };
|
||||
RNUIMouseInputHandler.Initialize(menu, scrollerItems);
|
||||
GameFiber.StartNew(() => UserInput.InitializeMenuMouseControl(menu, scrollerItems), "RNUI Mouse Input Fiber");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue