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

@@ -26,7 +26,7 @@ namespace Content.Server.AI.Operators.Inventory
{
var targetTransform = _entMan.GetComponent<TransformComponent>(_useTarget);
if (targetTransform.GridID != _entMan.GetComponent<TransformComponent>(_owner).GridID)
if (targetTransform.GridEntityId != _entMan.GetComponent<TransformComponent>(_owner).GridEntityId)
{
return Outcome.Failed;
}

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

View File

@@ -242,7 +242,7 @@ namespace Content.Server.AI.Steering
if (Deleted(entity) ||
!EntityManager.TryGetComponent(entity, out AiControllerComponent? controller) ||
!controller.CanMove ||
!EntityManager.GetComponent<TransformComponent>(entity).GridID.IsValid())
!EntityManager.GetComponent<TransformComponent>(entity).GridEntityId.IsValid())
{
return SteeringStatus.NoPath;
}
@@ -255,7 +255,7 @@ namespace Content.Server.AI.Steering
return SteeringStatus.NoPath;
}
if (_mapManager.IsGridPaused(EntityManager.GetComponent<TransformComponent>(entity).GridID))
if (_mapManager.IsGridPaused(EntityManager.GetComponent<TransformComponent>(entity).GridEntityId))
{
controller.VelocityDir = Vector2.Zero;
return SteeringStatus.Pending;
@@ -263,7 +263,7 @@ namespace Content.Server.AI.Steering
// Validation
// Check if we can even arrive -> Currently only samegrid movement supported
if (EntityManager.GetComponent<TransformComponent>(entity).GridID != steeringRequest.TargetGrid.GetGridId(EntityManager))
if (EntityManager.GetComponent<TransformComponent>(entity).GridEntityId != steeringRequest.TargetGrid.GetGridEntityId(EntityManager))
{
controller.VelocityDir = Vector2.Zero;
return SteeringStatus.NoPath;
@@ -408,7 +408,7 @@ namespace Content.Server.AI.Steering
}
var cancelToken = new CancellationTokenSource();
var gridManager = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridID);
var gridManager = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridEntityId);
var startTile = gridManager.GetTileRef(EntityManager.GetComponent<TransformComponent>(entity).Coordinates);
var endTile = gridManager.GetTileRef(steeringRequest.TargetGrid);
var collisionMask = 0;
@@ -439,7 +439,7 @@ namespace Content.Server.AI.Steering
{
_pathfindingRequests.Remove(entity);
var entityTile = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridID).GetTileRef(EntityManager.GetComponent<TransformComponent>(entity).Coordinates);
var entityTile = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridEntityId).GetTileRef(EntityManager.GetComponent<TransformComponent>(entity).Coordinates);
var tile = path.Dequeue();
var closestDistance = PathfindingHelpers.OctileDistance(entityTile, tile);
@@ -508,7 +508,7 @@ namespace Content.Server.AI.Steering
{
if (_paths[entity].Count == 0) return;
var nextTile = dequeue ? _paths[entity].Dequeue() : _paths[entity].Peek();
var nextGrid = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridID).GridTileToLocal(nextTile.GridIndices);
var nextGrid = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridEntityId).GridTileToLocal(nextTile.GridIndices);
_nextGrid[entity] = nextGrid;
}
@@ -631,7 +631,7 @@ namespace Content.Server.AI.Steering
var checkTiles = new HashSet<TileRef>();
var avoidTiles = new HashSet<TileRef>();
var entityGridCoords = EntityManager.GetComponent<TransformComponent>(entity).Coordinates;
var grid = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridID);
var grid = _mapManager.GetGrid(EntityManager.GetComponent<TransformComponent>(entity).GridEntityId);
var currentTile = grid.GetTileRef(entityGridCoords);
var halfwayTile = grid.GetTileRef(entityGridCoords.Offset(direction / 2));
var nextTile = grid.GetTileRef(entityGridCoords.Offset(direction));

View File

@@ -77,7 +77,7 @@ namespace Content.Server.AI.Utility.Actions.Idle
var targetNode = robustRandom.Pick(reachableNodes);
var mapManager = IoCManager.Resolve<IMapManager>();
var grid = mapManager.GetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner).GridID);
var grid = mapManager.GetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner).GridEntityId);
var targetGrid = grid.GridTileToLocal(targetNode.TileRef.GridIndices);
return targetGrid;

View File

@@ -11,7 +11,7 @@ namespace Content.Server.AI.Utility.Considerations.Movement
var entities = IoCManager.Resolve<IEntityManager>();
if (context.GetState<TargetEntityState>().GetValue() is not {Valid: true} target || entities.Deleted(target) ||
entities.GetComponent<TransformComponent>(target).GridID != entities.GetComponent<TransformComponent>(self).GridID)
entities.GetComponent<TransformComponent>(target).GridEntityId != entities.GetComponent<TransformComponent>(self).GridEntityId)
{
return 0.0f;
}

View File

@@ -22,7 +22,7 @@ namespace Content.Server.AI.Utils
{
var transform = entityManager.GetComponent<TransformComponent>(entity);
if (transform.Coordinates.GetGridId(entityManager) != grid.GetGridId(entityManager))
if (transform.Coordinates.GetGridEntityId(entityManager) != grid.GetGridEntityId(entityManager))
{
continue;
}