using System; using System.Collections.Generic; using Robust.Shared.GameObjects; using Robust.Shared.Map; using Robust.Shared.Maths; using Robust.Shared.Serialization; namespace Content.Shared.AI { public static class SharedAiDebug { #region Mob Debug [Serializable, NetSerializable] public class UtilityAiDebugMessage : EntitySystemMessage { public EntityUid EntityUid { get; } public double PlanningTime { get; } public float ActionScore { get; } public string FoundTask { get; } public int ConsideredTaskCount { get; } public UtilityAiDebugMessage( EntityUid entityUid, double planningTime, float actionScore, string foundTask, int consideredTaskCount) { EntityUid = entityUid; PlanningTime = planningTime; ActionScore = actionScore; FoundTask = foundTask; ConsideredTaskCount = consideredTaskCount; } } #endregion #region Pathfinder Debug /// /// Client asks the server for the pathfinding graph details /// [Serializable, NetSerializable] public class RequestPathfindingGraphMessage : EntitySystemMessage {} [Serializable, NetSerializable] public class PathfindingGraphMessage : EntitySystemMessage { public Dictionary> Graph { get; } public PathfindingGraphMessage(Dictionary> graph) { Graph = graph; } } public class AStarRouteDebug { public EntityUid EntityUid { get; } public Queue Route { get; } public Dictionary CameFrom { get; } public Dictionary GScores { get; } public HashSet ClosedTiles { get; } public double TimeTaken { get; } public AStarRouteDebug( EntityUid uid, Queue route, Dictionary cameFrom, Dictionary gScores, HashSet closedTiles, double timeTaken) { EntityUid = uid; Route = route; CameFrom = cameFrom; GScores = gScores; ClosedTiles = closedTiles; TimeTaken = timeTaken; } } public class JpsRouteDebug { public EntityUid EntityUid { get; } public Queue Route { get; } public HashSet JumpNodes { get; } public double TimeTaken { get; } public JpsRouteDebug( EntityUid uid, Queue route, HashSet jumpNodes, double timeTaken) { EntityUid = uid; Route = route; JumpNodes = jumpNodes; TimeTaken = timeTaken; } } [Serializable, NetSerializable] public class AStarRouteMessage : EntitySystemMessage { public readonly EntityUid EntityUid; public readonly IEnumerable Route; public readonly Dictionary CameFrom; public readonly Dictionary GScores; public readonly List ClosedTiles; public double TimeTaken; public AStarRouteMessage( EntityUid uid, IEnumerable route, Dictionary cameFrom, Dictionary gScores, List closedTiles, double timeTaken) { EntityUid = uid; Route = route; CameFrom = cameFrom; GScores = gScores; ClosedTiles = closedTiles; TimeTaken = timeTaken; } } [Serializable, NetSerializable] public class JpsRouteMessage : EntitySystemMessage { public readonly EntityUid EntityUid; public readonly IEnumerable Route; public readonly List JumpNodes; public double TimeTaken; public JpsRouteMessage( EntityUid uid, IEnumerable route, List jumpNodes, double timeTaken) { EntityUid = uid; Route = route; JumpNodes = jumpNodes; TimeTaken = timeTaken; } } #endregion } }