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 double TimeTaken { get; } public AStarRouteDebug( EntityUid uid, Queue route, Dictionary cameFrom, Dictionary gScores, double timeTaken) { EntityUid = uid; Route = route; CameFrom = cameFrom; GScores = gScores; 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 double TimeTaken; public AStarRouteMessage( EntityUid uid, IEnumerable route, Dictionary cameFrom, Dictionary gScores, double timeTaken) { EntityUid = uid; Route = route; CameFrom = cameFrom; GScores = gScores; 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 #region Reachable Debug [Serializable, NetSerializable] public sealed class ReachableChunkRegionsDebugMessage : EntitySystemMessage { public GridId GridId { get; } public Dictionary>> Regions { get; } public ReachableChunkRegionsDebugMessage(GridId gridId, Dictionary>> regions) { GridId = gridId; Regions = regions; } } [Serializable, NetSerializable] public sealed class ReachableCacheDebugMessage : EntitySystemMessage { public GridId GridId { get; } public Dictionary> Regions { get; } public bool Cached { get; } public ReachableCacheDebugMessage(GridId gridId, Dictionary> regions, bool cached) { GridId = gridId; Regions = regions; Cached = cached; } } #endregion } }