mirror of
https://github.com/thegeneralist01/Scene-Manager-DevRepo
synced 2026-01-11 07:30:40 +01:00
Added CollectedPed object
This commit is contained in:
parent
93951b3e28
commit
25acb3f66f
7 changed files with 490 additions and 507 deletions
|
|
@ -10,18 +10,18 @@ namespace SceneManager.Utils
|
|||
{
|
||||
internal static class ConsoleCommands
|
||||
{
|
||||
[ConsoleCommand]
|
||||
[ConsoleCommand("ShowCollectedVehicleInfo")]
|
||||
internal static void Command_ShowCollectedVehicleInfo([ConsoleCommandParameter(AutoCompleterType = typeof(ConsoleCommandAutoCompleterVehicle), Name = "ShowCollectedVehicleInfo")] Vehicle vehicle)
|
||||
{
|
||||
foreach(Path path in PathManager.Paths)
|
||||
{
|
||||
var collectedVehicle = path.CollectedVehicles.Where(v => v.Vehicle == vehicle).FirstOrDefault();
|
||||
var collectedVehicle = path.CollectedPeds.Where(v => v.CurrentVehicle == vehicle).FirstOrDefault();
|
||||
if(collectedVehicle != null)
|
||||
{
|
||||
Game.LogTrivial($"Vehicle: {collectedVehicle.Vehicle.Model.Name} [{collectedVehicle.Vehicle.Handle}]");
|
||||
Rage.Native.NativeFunction.Natives.xA6E9C38DB51D7748(collectedVehicle.Vehicle, out uint script);
|
||||
Game.LogTrivial($"Vehicle: {collectedVehicle.CurrentVehicle.Model.Name} [{collectedVehicle.CurrentVehicle.Handle}]");
|
||||
Rage.Native.NativeFunction.Natives.xA6E9C38DB51D7748(collectedVehicle.CurrentVehicle, out uint script);
|
||||
Game.LogTrivial($"Vehicle spawned by: {script}");
|
||||
Game.LogTrivial($"Driver handle: {collectedVehicle.Driver.Handle}");
|
||||
Game.LogTrivial($"Driver handle: {collectedVehicle.Handle}");
|
||||
Game.LogTrivial($"Path: {collectedVehicle.Path.Number}");
|
||||
Game.LogTrivial($"Current waypoint: {collectedVehicle.CurrentWaypoint.Number}");
|
||||
Game.LogTrivial($"StoppedAtWaypoint: {collectedVehicle.StoppedAtWaypoint}");
|
||||
|
|
@ -29,18 +29,18 @@ namespace SceneManager.Utils
|
|||
Game.LogTrivial($"ReadyForDirectTasks: {collectedVehicle.ReadyForDirectTasks}");
|
||||
Game.LogTrivial($"Directed: {collectedVehicle.Directed}");
|
||||
Game.LogTrivial($"Dismissed: {collectedVehicle.Dismissed}");
|
||||
Game.LogTrivial($"Task status: {collectedVehicle.Driver.Tasks.CurrentTaskStatus}");
|
||||
Game.LogTrivial($"Task status: {collectedVehicle.Tasks.CurrentTaskStatus}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
Game.LogTrivial($"{vehicle.Model.Name} [{vehicle.Handle}] was not found collected by any path.");
|
||||
}
|
||||
|
||||
[ConsoleCommand]
|
||||
[ConsoleCommand("GetPedsActiveTasks")]
|
||||
internal static void Command_GetPedsActiveTasks([ConsoleCommandParameter(AutoCompleterType = typeof(ConsoleCommandAutoCompleterPedAliveOnly), Name = "GetPedsActiveTasks")] Ped ped)
|
||||
{
|
||||
var tasks = new List<PedTask>();
|
||||
foreach (PedTask task in (PedTask[])Enum.GetValues(typeof(PedTask)))
|
||||
var tasks = (PedTask[])Enum.GetValues(typeof(PedTask));
|
||||
foreach (PedTask task in tasks)
|
||||
{
|
||||
if(Rage.Native.NativeFunction.Natives.GET_IS_TASK_ACTIVE<bool>(ped, (int)task))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@ namespace SceneManager.Utils
|
|||
|
||||
internal static void Direct(Vehicle nearbyVehicle, Path path, Waypoint targetWaypoint)
|
||||
{
|
||||
var nearbyVehiclesPath = PathManager.Paths.FirstOrDefault(p => p.CollectedVehicles.Any(v => v.Vehicle == nearbyVehicle));
|
||||
var nearbyVehiclesPath = PathManager.Paths.FirstOrDefault(p => p.CollectedPeds.Any(v => v.CurrentVehicle == nearbyVehicle));
|
||||
if(nearbyVehiclesPath == null)
|
||||
{
|
||||
Game.LogTrivial($"Nearby vehicle does not belong to any path.");
|
||||
}
|
||||
|
||||
var collectedVehicleOnThisPath = path.CollectedVehicles.FirstOrDefault(v => v.Vehicle == nearbyVehicle);
|
||||
var nearbyCollectedVehicleOtherPath = nearbyVehiclesPath?.CollectedVehicles.FirstOrDefault(v => v.Vehicle == nearbyVehicle);
|
||||
var collectedVehicleOnThisPath = path.CollectedPeds.FirstOrDefault(v => v.CurrentVehicle == nearbyVehicle);
|
||||
var nearbyCollectedVehicleOtherPath = nearbyVehiclesPath?.CollectedPeds.FirstOrDefault(p => p.CurrentVehicle == nearbyVehicle);
|
||||
if (collectedVehicleOnThisPath == null)
|
||||
{
|
||||
Game.LogTrivial($"Nearby vehicle does not belong to this path.");
|
||||
|
|
@ -66,12 +66,12 @@ namespace SceneManager.Utils
|
|||
nearbyCollectedVehicleOtherPath.Dismiss(Dismiss.FromDirected, path);
|
||||
}
|
||||
Game.LogTrivial($"[Direct Driver] Adding {nearbyVehicle.Model.Name} to directed path.");
|
||||
path.CollectedVehicles.Add(collectedVehicleOnThisPath = new CollectedVehicle(nearbyVehicle, path));
|
||||
collectedVehicleOnThisPath.Directed = true;
|
||||
collectedVehicleOnThisPath.Driver.Tasks.Clear();
|
||||
path.CollectedPeds.Add(collectedVehicleOnThisPath = new CollectedPed(nearbyVehicle.Driver, path, targetWaypoint) { Directed = true });
|
||||
//collectedVehicleOnThisPath.Directed = true;
|
||||
collectedVehicleOnThisPath.Tasks.Clear();
|
||||
}
|
||||
|
||||
GameFiber.StartNew(() => collectedVehicleOnThisPath.AssignWaypointTasks(path, targetWaypoint));
|
||||
//GameFiber.StartNew(() => collectedVehicleOnThisPath.AssignWaypointTasks(path, targetWaypoint));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ namespace SceneManager.Utils
|
|||
{
|
||||
internal static void Dismiss(int dismissIndex)
|
||||
{
|
||||
var nearbyVehicle = Game.LocalPlayer.Character.GetNearbyVehicles(16).FirstOrDefault(v => v != Game.LocalPlayer.Character.CurrentVehicle && v.VehicleAndDriverValid());
|
||||
var nearbyVehicle = Game.LocalPlayer.Character.GetNearbyVehicles(16).FirstOrDefault(v => v.VehicleAndDriverValid() && v != Game.LocalPlayer.Character.CurrentVehicle);
|
||||
if (!nearbyVehicle)
|
||||
{
|
||||
Game.LogTrivial($"Nearby vehicle is null.");
|
||||
|
|
@ -32,10 +32,10 @@ namespace SceneManager.Utils
|
|||
}
|
||||
else
|
||||
{
|
||||
CollectedVehicle collectedVehicle = PathManager.Paths.SelectMany(x => x.CollectedVehicles).FirstOrDefault(x => x.Vehicle == nearbyVehicle);
|
||||
if(collectedVehicle != null)
|
||||
CollectedPed collectedPed = PathManager.Paths.SelectMany(x => x.CollectedPeds).FirstOrDefault(x => x.CurrentVehicle == nearbyVehicle);
|
||||
if(collectedPed != null)
|
||||
{
|
||||
collectedVehicle.Dismiss((Dismiss)dismissIndex);
|
||||
collectedPed.Dismiss((Dismiss)dismissIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue