There was some extra bloat in the path graph updates. Now the queue should also just run if it gets too big regardless. Un-anchored physics objects are no longer a hard fail for pathfinding. Add AccessReader support so open / close doors show up for pathfinding AI also ensure they call the operator's shutdown when they're shutdown so that should cancel the pathfinding job. I tried to split these into 2 commits but they were kinda coupled together Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Map;
|
|
|
|
namespace Content.Server.GameObjects.EntitySystems.AI.Pathfinding.Pathfinders
|
|
{
|
|
public struct PathfindingArgs
|
|
{
|
|
public EntityUid Uid { get; }
|
|
public ICollection<string> Access { get; }
|
|
public int CollisionMask { get; }
|
|
public TileRef Start { get; }
|
|
public TileRef End { get; }
|
|
// How close we need to get to the endpoint to be 'done'
|
|
public float Proximity { get; }
|
|
// Whether we use cardinal only or not
|
|
public bool AllowDiagonals { get; }
|
|
// Can we go through walls
|
|
public bool NoClip { get; }
|
|
// Can we traverse space tiles
|
|
public bool AllowSpace { get; }
|
|
|
|
public PathfindingArgs(
|
|
EntityUid entityUid,
|
|
ICollection<string> access,
|
|
int collisionMask,
|
|
TileRef start,
|
|
TileRef end,
|
|
float proximity = 0.0f,
|
|
bool allowDiagonals = true,
|
|
bool noClip = false,
|
|
bool allowSpace = false)
|
|
{
|
|
Uid = entityUid;
|
|
Access = access;
|
|
CollisionMask = collisionMask;
|
|
Start = start;
|
|
End = end;
|
|
Proximity = proximity;
|
|
AllowDiagonals = allowDiagonals;
|
|
NoClip = noClip;
|
|
AllowSpace = allowSpace;
|
|
}
|
|
}
|
|
}
|