[Dependency] private readonly IInputManager _inputManager = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IResourceCache _cache = default!;
+ [Dependency] private readonly NPCSteeringSystem _steering = default!;
public PathfindingDebugMode Modes
{
overlayManager.AddOverlay(new PathfindingOverlay(EntityManager, _eyeManager, _inputManager, _mapManager, _cache, this));
}
+ if ((value & PathfindingDebugMode.Steering) != 0x0)
+ {
+ _steering.DebugEnabled = true;
+ }
+ else
+ {
+ _steering.DebugEnabled = false;
+ }
+
_modes = value;
RaiseNetworkEvent(new RequestPathfindingDebugMessage()
public sealed class PathPoly : IEquatable<PathPoly>
{
+ [ViewVariables]
public readonly EntityUid GraphUid;
+
+ [ViewVariables]
public readonly Vector2i ChunkOrigin;
+
+ [ViewVariables]
public readonly byte TileIndex;
+ [ViewVariables]
public readonly Box2 Box;
+
+ [ViewVariables]
public PathfindingData Data;
+ [ViewVariables]
public readonly HashSet<PathPoly> Neighbors;
public PathPoly(EntityUid graphUid, Vector2i chunkOrigin, byte tileIndex, Box2 vertices, PathfindingData data, HashSet<PathPoly> neighbors)
return (Data.Flags & PathfindingBreadcrumbFlag.Invalid) == 0x0;
}
+ [ViewVariables]
public EntityCoordinates Coordinates => new(GraphUid, Box.Center);
// Explicitly don't check neighbors.