mirror of
https://github.com/thegeneralist01/Scene-Manager-DevRepo
synced 2026-01-11 23:50:29 +01:00
Fixed vehicles being collected while they are too far from a collector waypoint (cause was the same function being called for two different purposes). Added temporary debug blips for missing drivers.
This commit is contained in:
parent
525b158c9c
commit
5da0176f10
1 changed files with 17 additions and 6 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Rage;
|
using Rage;
|
||||||
|
|
||||||
|
|
@ -49,13 +50,15 @@ namespace SceneManager
|
||||||
|
|
||||||
private static void LoopForNearbyValidVehicles(Path path, Waypoint waypoint)
|
private static void LoopForNearbyValidVehicles(Path path, Waypoint waypoint)
|
||||||
{
|
{
|
||||||
foreach (Vehicle vehicle in GetNearbyVehicles(waypoint.Position, waypoint.CollectorRadius))
|
foreach (Vehicle vehicle in GetNearbyVehiclesForCollection(waypoint.Position, waypoint.CollectorRadius))
|
||||||
{
|
{
|
||||||
if (!vehicle)
|
if (!vehicle)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Game.LogTrivial($"Vehicle: {vehicle.Model.Name}, Distance to waypoint: {vehicle.DistanceTo2D(waypoint.Position)}");
|
||||||
|
|
||||||
var collectedVehicle = collectedVehicles.Where(cv => cv.Vehicle == vehicle) as CollectedVehicle;
|
var collectedVehicle = collectedVehicles.Where(cv => cv.Vehicle == vehicle) as CollectedVehicle;
|
||||||
// If the vehicle is not in the collection yet
|
// If the vehicle is not in the collection yet
|
||||||
if(collectedVehicle == null)
|
if(collectedVehicle == null)
|
||||||
|
|
@ -79,18 +82,23 @@ namespace SceneManager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Vehicle[] GetNearbyVehicles(Vector3 collectorPosition, float collectorRadius)
|
private static Vehicle[] GetNearbyVehiclesForCollection(Vector3 collectorPosition, float collectorRadius)
|
||||||
{
|
{
|
||||||
return (from v in World.GetAllVehicles() where v.DistanceTo2D(collectorPosition) <= collectorRadius && v.IsValidForCollection() select v).ToArray();
|
return (from v in World.GetAllVehicles() where v.DistanceTo2D(collectorPosition) <= collectorRadius && v.IsValidForCollection() select v).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void AssignStopForVehiclesFlag(List<Path> paths, Path path, Waypoint waypointData)
|
private static Vehicle[] GetNearbyVehiclesForStopFlag(Vector3 collectorPosition)
|
||||||
{
|
{
|
||||||
while (paths.Contains(path) && path.Waypoints.Contains(waypointData))
|
return (from v in World.GetAllVehicles() where v.DistanceTo2D(collectorPosition) <= 50f select v).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssignStopForVehiclesFlag(List<Path> paths, Path path, Waypoint waypoint)
|
||||||
|
{
|
||||||
|
while (paths.Contains(path) && path.Waypoints.Contains(waypoint))
|
||||||
{
|
{
|
||||||
if (path.IsEnabled)
|
if (path.IsEnabled)
|
||||||
{
|
{
|
||||||
foreach (Vehicle v in GetNearbyVehicles(waypointData.Position, 50f).Where(v => v && v.HasDriver && v.Driver))
|
foreach (Vehicle v in GetNearbyVehiclesForStopFlag(waypoint.Position).Where(v => v && v.HasDriver && v.Driver))
|
||||||
{
|
{
|
||||||
SetDriveTaskDrivingFlags(v.Driver, EDrivingFlags.StopForVehicles);
|
SetDriveTaskDrivingFlags(v.Driver, EDrivingFlags.StopForVehicles);
|
||||||
}
|
}
|
||||||
|
|
@ -132,6 +140,9 @@ namespace SceneManager
|
||||||
if (!v.HasDriver)
|
if (!v.HasDriver)
|
||||||
{
|
{
|
||||||
v.CreateRandomDriver();
|
v.CreateRandomDriver();
|
||||||
|
var driverBlip = v.Driver.AttachBlip();
|
||||||
|
driverBlip.Color = Color.Green;
|
||||||
|
driverBlip.Scale = 0.25f;
|
||||||
v.Driver.IsPersistent = true;
|
v.Driver.IsPersistent = true;
|
||||||
v.Driver.BlockPermanentEvents = true;
|
v.Driver.BlockPermanentEvents = true;
|
||||||
Game.LogTrivial($"A missing driver was created for {v.Model.Name}");
|
Game.LogTrivial($"A missing driver was created for {v.Model.Name}");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue