Remove Explicit GridId References (#8315)

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Acruid
2022-06-11 18:54:41 -07:00
committed by GitHub
parent 846321cebb
commit 4f9be42f40
131 changed files with 531 additions and 588 deletions

View File

@@ -46,7 +46,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
/// Regions are groups of nodes with the same profile (for pathfinding purposes)
/// i.e. same collision, not-space, same access, etc.
/// </summary>
private readonly Dictionary<GridId, Dictionary<PathfindingChunk, HashSet<PathfindingRegion>>> _regions =
private readonly Dictionary<EntityUid, Dictionary<PathfindingChunk, HashSet<PathfindingRegion>>> _regions =
new();
/// <summary>
@@ -168,10 +168,10 @@ namespace Content.Server.AI.Pathfinding.Accessible
{
var xform = EntityManager.GetComponent<TransformComponent>(target);
// TODO: Handle this gracefully instead of just failing.
if (!xform.GridID.IsValid())
if (!xform.GridEntityId.IsValid())
return false;
var targetTile = _mapManager.GetGrid(xform.GridID).GetTileRef(xform.Coordinates);
var targetTile = _mapManager.GetGrid(xform.GridEntityId).GetTileRef(xform.Coordinates);
var targetNode = _pathfindingSystem.GetNode(targetTile);
var collisionMask = 0;
@@ -206,10 +206,10 @@ namespace Content.Server.AI.Pathfinding.Accessible
{
var xform = EntityManager.GetComponent<TransformComponent>(entity);
if (xform.GridID != targetNode.TileRef.GridIndex)
if (xform.GridEntityId != targetNode.TileRef.GridUid)
return false;
var entityTile = _mapManager.GetGrid(xform.GridID).GetTileRef(xform.Coordinates);
var entityTile = _mapManager.GetGrid(xform.GridEntityId).GetTileRef(xform.Coordinates);
var entityNode = _pathfindingSystem.GetNode(entityTile);
var entityRegion = GetRegion(entityNode);
var targetRegion = GetRegion(targetNode);
@@ -421,12 +421,12 @@ namespace Content.Server.AI.Pathfinding.Accessible
{
var xform = EntityManager.GetComponent<TransformComponent>(entity);
if (!xform.GridID.IsValid())
if (!xform.GridEntityId.IsValid())
{
return null;
}
var entityTile = _mapManager.GetGrid(xform.GridID).GetTileRef(xform.Coordinates);
var entityTile = _mapManager.GetGrid(xform.GridEntityId).GetTileRef(xform.Coordinates);
var entityNode = _pathfindingSystem.GetNode(entityTile);
return GetRegion(entityNode);
}
@@ -709,7 +709,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
}
#if DEBUG
private void SendRegionsDebugMessage(GridId gridId)
private void SendRegionsDebugMessage(EntityUid gridId)
{
if (_subscribedSessions.Count == 0) return;
var grid = _mapManager.GetGrid(gridId);
@@ -757,7 +757,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
/// <param name="gridId"></param>
/// <param name="regions"></param>
/// <param name="cached"></param>
private void SendRegionCacheMessage(GridId gridId, IEnumerable<PathfindingRegion> regions, bool cached)
private void SendRegionCacheMessage(EntityUid gridId, IEnumerable<PathfindingRegion> regions, bool cached)
{
if (_subscribedSessions.Count == 0) return;

View File

@@ -160,7 +160,7 @@ namespace Content.Server.AI.Pathfinding
cameFrom.Remove(previousCurrent);
var pathfindingSystem = IoCManager.Resolve<IEntitySystemManager>().GetEntitySystem<PathfindingSystem>();
var mapManager = IoCManager.Resolve<IMapManager>();
var grid = mapManager.GetGrid(current.TileRef.GridIndex);
var grid = mapManager.GetGrid(current.TileRef.GridUid);
// Get all the intermediate nodes
while (true)

View File

@@ -97,7 +97,7 @@ public sealed partial class PathfindingSystem
private PathfindingChunk CreateChunk(GridPathfindingComponent comp, Vector2i indices)
{
var grid = _mapManager.GetGrid(comp.Owner);
var newChunk = new PathfindingChunk(grid.Index, indices);
var newChunk = new PathfindingChunk(grid.GridEntityId, indices);
comp.Graph.Add(indices, newChunk);
newChunk.Initialize(grid);
@@ -121,7 +121,7 @@ public sealed partial class PathfindingSystem
private void OnTileUpdate(TileRef tile)
{
if (!_mapManager.GridExists(tile.GridIndex)) return;
if (!_mapManager.GridExists(tile.GridUid)) return;
var node = GetNode(tile);
node.UpdateTile(tile);
@@ -129,7 +129,7 @@ public sealed partial class PathfindingSystem
private bool IsRelevant(TransformComponent xform, PhysicsComponent physics)
{
return xform.GridID != GridId.Invalid && (TrackedCollisionLayers & physics.CollisionLayer) != 0;
return xform.GridEntityId != EntityUid.Invalid && (TrackedCollisionLayers & physics.CollisionLayer) != 0;
}
/// <summary>
@@ -143,7 +143,7 @@ public sealed partial class PathfindingSystem
!Resolve(entity, ref physics, false)) return;
if (!IsRelevant(xform, physics) ||
!_mapManager.TryGetGrid(xform.GridID, out var grid))
!_mapManager.TryGetGrid(xform.GridEntityId, out var grid))
{
return;
}
@@ -158,7 +158,7 @@ public sealed partial class PathfindingSystem
private void OnEntityRemove(EntityUid entity, TransformComponent? xform = null)
{
if (!Resolve(entity, ref xform, false) ||
!_mapManager.TryGetGrid(xform.GridID, out var grid)) return;
!_mapManager.TryGetGrid(xform.GridEntityId, out var grid)) return;
var node = GetNode(grid.GetTileRef(xform.Coordinates));
node.RemoveEntity(entity);
@@ -166,7 +166,7 @@ public sealed partial class PathfindingSystem
private void OnEntityRemove(EntityUid entity, EntityCoordinates coordinates)
{
var gridId = coordinates.GetGridId(EntityManager);
var gridId = coordinates.GetGridEntityId(EntityManager);
if (!_mapManager.TryGetGrid(gridId, out var grid)) return;
var node = GetNode(grid.GetTileRef(coordinates));
@@ -175,13 +175,13 @@ public sealed partial class PathfindingSystem
private PathfindingNode? GetNode(TransformComponent xform)
{
if (!_mapManager.TryGetGrid(xform.GridID, out var grid)) return null;
if (!_mapManager.TryGetGrid(xform.GridEntityId, out var grid)) return null;
return GetNode(grid.GetTileRef(xform.Coordinates));
}
private PathfindingNode? GetNode(EntityCoordinates coordinates)
{
if (!_mapManager.TryGetGrid(coordinates.GetGridId(EntityManager), out var grid)) return null;
if (!_mapManager.TryGetGrid(coordinates.GetGridEntityId(EntityManager), out var grid)) return null;
return GetNode(grid.GetTileRef(coordinates));
}
@@ -215,7 +215,7 @@ public sealed partial class PathfindingSystem
// Also look at increasing tile cost the more physics entities are on it
public bool CanTraverse(EntityUid entity, EntityCoordinates coordinates)
{
var gridId = coordinates.GetGridId(EntityManager);
var gridId = coordinates.GetGridEntityId(EntityManager);
var tile = _mapManager.GetGrid(gridId).GetTileRef(coordinates);
var node = GetNode(tile);
return CanTraverse(entity, node);

View File

@@ -29,16 +29,16 @@ namespace Content.Server.AI.Pathfinding
var route = new List<Vector2>();
foreach (var tile in routeDebug.Route)
{
var tileGrid = mapManager.GetGrid(tile.GridIndex).GridTileToLocal(tile.GridIndices);
var tileGrid = mapManager.GetGrid(tile.GridUid).GridTileToLocal(tile.GridIndices);
route.Add(tileGrid.ToMapPos(EntityManager));
}
var cameFrom = new Dictionary<Vector2, Vector2>();
foreach (var (from, to) in routeDebug.CameFrom)
{
var tileOneGrid = mapManager.GetGrid(from.GridIndex).GridTileToLocal(from.GridIndices);
var tileOneGrid = mapManager.GetGrid(from.GridUid).GridTileToLocal(from.GridIndices);
var tileOneWorld = tileOneGrid.ToMapPos(EntityManager);
var tileTwoGrid = mapManager.GetGrid(to.GridIndex).GridTileToLocal(to.GridIndices);
var tileTwoGrid = mapManager.GetGrid(to.GridUid).GridTileToLocal(to.GridIndices);
var tileTwoWorld = tileTwoGrid.ToMapPos(EntityManager);
cameFrom[tileOneWorld] = tileTwoWorld;
}
@@ -46,7 +46,7 @@ namespace Content.Server.AI.Pathfinding
var gScores = new Dictionary<Vector2, float>();
foreach (var (tile, score) in routeDebug.GScores)
{
var tileGrid = mapManager.GetGrid(tile.GridIndex).GridTileToLocal(tile.GridIndices);
var tileGrid = mapManager.GetGrid(tile.GridUid).GridTileToLocal(tile.GridIndices);
gScores[tileGrid.ToMapPos(EntityManager)] = score;
}
@@ -67,14 +67,14 @@ namespace Content.Server.AI.Pathfinding
var route = new List<Vector2>();
foreach (var tile in routeDebug.Route)
{
var tileGrid = mapManager.GetGrid(tile.GridIndex).GridTileToLocal(tile.GridIndices);
var tileGrid = mapManager.GetGrid(tile.GridUid).GridTileToLocal(tile.GridIndices);
route.Add(tileGrid.ToMapPos(EntityManager));
}
var jumpNodes = new List<Vector2>();
foreach (var tile in routeDebug.JumpNodes)
{
var tileGrid = mapManager.GetGrid(tile.GridIndex).GridTileToLocal(tile.GridIndices);
var tileGrid = mapManager.GetGrid(tile.GridUid).GridTileToLocal(tile.GridIndices);
jumpNodes.Add(tileGrid.ToMapPos(EntityManager));
}