var toConsume = new List<(Vector2i, Tile)>();
foreach (var tile in tiles)
{
- if (CanConsumeTile(hungry, tile, grid, eventHorizon))
+ if (CanConsumeTile((hungry, eventHorizon), tile, (gridId, grid)))
toConsume.Add((tile.GridIndices, Tile.Empty));
}
/// Checks whether an event horizon can consume a given tile.
/// This is only possible if it can also consume all entities anchored to the tile.
/// </summary>
- public bool CanConsumeTile(EntityUid hungry, TileRef tile, MapGridComponent grid, EventHorizonComponent eventHorizon)
+ public bool CanConsumeTile(Entity<EventHorizonComponent> hungry, TileRef tile, Entity<MapGridComponent> grid)
{
- foreach (var blockingEntity in grid.GetAnchoredEntities(tile.GridIndices))
+ foreach (var blockingEntity in _mapSystem.GetAnchoredEntities(grid, tile.GridIndices))
{
- if (!CanConsumeEntity(hungry, blockingEntity, eventHorizon))
+ if (!CanConsumeEntity(hungry, blockingEntity, hungry.Comp))
return false;
}
return true;
}
+ /// <inheritdoc cref="CanConsumeTile(EntityUid, TileRef, Entity{MapGridComponent}, EventHorizonComponent)"/>
+ [Obsolete("Use the Entity<T> overload")]
+ public bool CanConsumeTile(EntityUid hungry, TileRef tile, MapGridComponent grid, EventHorizonComponent eventHorizon)
+ {
+ return CanConsumeTile((hungry, eventHorizon), tile, (grid.Owner, grid));
+ }
+
/// <summary>
/// Consumes all tiles within a given distance of an entity.
/// Some entities are immune to consumption.