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
}
}