Cleanup remaining warnings in ExplosionSystem (#37764)

* Change ExplosionGridTileFlood.Grid to Entity<T>

* Change ExplosionData.Lookup to Entity<T>

* ExplodeSpace

* ExplosionData.MapGrid

* _currentGrid

* _tileUpdateDict

* 1 warning in Process

* IsEdge
This commit is contained in:
Tayrtahn
2025-05-24 10:55:46 -04:00
committed by GitHub
parent 4ff221e7b9
commit b5afebdbce
4 changed files with 29 additions and 29 deletions

View File

@@ -11,7 +11,7 @@ namespace Content.Server.Explosion.EntitySystems;
/// </summary>
public sealed class ExplosionGridTileFlood : ExplosionTileFlood
{
public MapGridComponent Grid;
public Entity<MapGridComponent> Grid;
private bool _needToTransform = false;
private Matrix3x2 _matrix = Matrix3x2.Identity;
@@ -37,7 +37,7 @@ public sealed class ExplosionGridTileFlood : ExplosionTileFlood
private Dictionary<Vector2i, NeighborFlag> _edgeTiles;
public ExplosionGridTileFlood(
MapGridComponent grid,
Entity<MapGridComponent> grid,
Dictionary<Vector2i, TileData> airtightMap,
float maxIntensity,
float intensityStepSize,
@@ -73,7 +73,7 @@ public sealed class ExplosionGridTileFlood : ExplosionTileFlood
var transformSystem = entityManager.System<SharedTransformSystem>();
var transform = entityManager.GetComponent<TransformComponent>(Grid.Owner);
var size = (float)Grid.TileSize;
var size = (float)Grid.Comp.TileSize;
_matrix.M31 = size / 2;
_matrix.M32 = size / 2;

View File

@@ -31,7 +31,7 @@ public sealed partial class ExplosionSystem
foreach (var tileRef in _map.GetAllTiles(ev.EntityUid, grid))
{
if (IsEdge(grid, tileRef.GridIndices, out var dir))
if (IsEdge((ev.EntityUid, grid), tileRef.GridIndices, out var dir))
edges.Add(tileRef.GridIndices, dir);
}
}
@@ -290,7 +290,7 @@ public sealed partial class ExplosionSystem
}
// finally check if the new tile is itself an edge tile
if (IsEdge(grid, change.GridIndices, out var spaceDir))
if (IsEdge((ev.Entity, grid), change.GridIndices, out var spaceDir))
edges.Add(change.GridIndices, spaceDir);
}
}
@@ -302,12 +302,12 @@ public sealed partial class ExplosionSystem
/// Optionally ignore a specific Vector2i. Used by <see cref="OnTileChanged"/> when we already know that a
/// given tile is not space. This avoids unnecessary TryGetTileRef calls.
/// </remarks>
private bool IsEdge(MapGridComponent grid, Vector2i index, out NeighborFlag spaceDirections)
private bool IsEdge(Entity<MapGridComponent> grid, Vector2i index, out NeighborFlag spaceDirections)
{
spaceDirections = NeighborFlag.Invalid;
for (var i = 0; i < NeighbourVectors.Length; i++)
{
if (!grid.TryGetTileRef(index + NeighbourVectors[i], out var neighborTile) || neighborTile.Tile.IsEmpty)
if (!_mapSystem.TryGetTileRef(grid, grid.Comp, index + NeighbourVectors[i], out var neighborTile) || neighborTile.Tile.IsEmpty)
spaceDirections |= (NeighborFlag) (1 << i);
}

View File

@@ -300,7 +300,7 @@ public sealed partial class ExplosionSystem
/// <summary>
/// Same as <see cref="ExplodeTile"/>, but for SPAAAAAAACE.
/// </summary>
internal void ExplodeSpace(BroadphaseComponent lookup,
internal void ExplodeSpace(Entity<BroadphaseComponent> lookup,
Matrix3x2 spaceMatrix,
Matrix3x2 invSpaceMatrix,
Vector2i tile,
@@ -318,10 +318,10 @@ public sealed partial class ExplosionSystem
var state = (list, processed, invSpaceMatrix, lookup.Owner, EntityManager.TransformQuery, gridBox, _transformSystem);
// get entities:
lookup.DynamicTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.StaticTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.SundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.StaticSundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.DynamicTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.StaticTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.SundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.StaticSundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
foreach (var (uid, xform) in state.Item1)
{
@@ -335,8 +335,8 @@ public sealed partial class ExplosionSystem
// Also, throw any entities that were spawned as shrapnel. Compared to entity spawning & destruction, this extra
// lookup is relatively minor computational cost, and throwing is disabled for nukes anyways.
list.Clear();
lookup.DynamicTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.SundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.DynamicTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
lookup.Comp.SundriesTree.QueryAabb(ref state, SpaceQueryCallback, worldBox, true);
foreach (var (uid, xform) in list)
{
@@ -569,12 +569,12 @@ sealed class Explosion
/// <summary>
/// Lookup component for this grid (or space/map).
/// </summary>
public BroadphaseComponent Lookup;
public Entity<BroadphaseComponent> Lookup;
/// <summary>
/// The actual grid that this corresponds to. If null, this implies space.
/// </summary>
public MapGridComponent? MapGrid;
public Entity<MapGridComponent>? MapGrid;
}
private readonly List<ExplosionData> _explosionData = new();
@@ -625,8 +625,8 @@ sealed class Explosion
#if DEBUG
private DamageSpecifier? _expectedDamage;
#endif
private BroadphaseComponent _currentLookup = default!;
private MapGridComponent? _currentGrid;
private Entity<BroadphaseComponent> _currentLookup = default!;
private Entity<MapGridComponent>? _currentGrid;
private float _currentIntensity;
private float _currentThrowForce;
private List<Vector2i>.Enumerator _currentEnumerator;
@@ -636,7 +636,7 @@ sealed class Explosion
/// The set of tiles that need to be updated when the explosion has finished processing. Used to avoid having
/// the explosion trigger chunk regeneration & shuttle-system processing every tick.
/// </summary>
private readonly Dictionary<MapGridComponent, List<(Vector2i, Tile)>> _tileUpdateDict = new();
private readonly Dictionary<Entity<MapGridComponent>, List<(Vector2i, Tile)>> _tileUpdateDict = new();
// Entity Queries
private readonly EntityQuery<TransformComponent> _xformQuery;
@@ -720,7 +720,7 @@ sealed class Explosion
_explosionData.Add(new()
{
TileLists = spaceData.TileLists,
Lookup = entMan.GetComponent<BroadphaseComponent>(mapUid),
Lookup = (mapUid, entMan.GetComponent<BroadphaseComponent>(mapUid)),
MapGrid = null
});
@@ -733,7 +733,7 @@ sealed class Explosion
_explosionData.Add(new ExplosionData
{
TileLists = grid.TileLists,
Lookup = entMan.GetComponent<BroadphaseComponent>(grid.Grid.Owner),
Lookup = (grid.Grid, entMan.GetComponent<BroadphaseComponent>(grid.Grid)),
MapGrid = grid.Grid,
});
}
@@ -784,7 +784,7 @@ sealed class Explosion
_currentDataIndex++;
// sanity checks, in case something changed while the explosion was being processed over several ticks.
if (_currentLookup.Deleted || _currentGrid != null && !_entMan.EntityExists(_currentGrid.Owner))
if (_currentLookup.Comp.Deleted || _currentGrid != null && !_entMan.EntityExists(_currentGrid.Value))
continue;
return true;
@@ -839,20 +839,20 @@ sealed class Explosion
}
// Is the current tile on a grid (instead of in space)?
if (_currentGrid != null &&
_currentGrid.TryGetTileRef(_currentEnumerator.Current, out var tileRef) &&
if (_currentGrid is { } currentGrid &&
_mapSystem.TryGetTileRef(currentGrid, currentGrid.Comp, _currentEnumerator.Current, out var tileRef) &&
!tileRef.Tile.IsEmpty)
{
if (!_tileUpdateDict.TryGetValue(_currentGrid, out var tileUpdateList))
if (!_tileUpdateDict.TryGetValue(currentGrid, out var tileUpdateList))
{
tileUpdateList = new();
_tileUpdateDict[_currentGrid] = tileUpdateList;
_tileUpdateDict[currentGrid] = tileUpdateList;
}
// damage entities on the tile. Also figures out whether there are any solid entities blocking the floor
// from being destroyed.
var canDamageFloor = _system.ExplodeTile(_currentLookup,
(_currentGrid.Owner, _currentGrid),
currentGrid,
_currentEnumerator.Current,
_currentThrowForce,
_currentDamage,

View File

@@ -107,7 +107,7 @@ public sealed partial class ExplosionSystem
airtightMap = new();
var initialGridData = new ExplosionGridTileFlood(
Comp<MapGridComponent>(epicentreGrid.Value),
(epicentreGrid.Value, Comp<MapGridComponent>(epicentreGrid.Value)),
airtightMap,
maxIntensity,
stepSize,
@@ -196,7 +196,7 @@ public sealed partial class ExplosionSystem
airtightMap = new();
data = new ExplosionGridTileFlood(
Comp<MapGridComponent>(grid),
(grid, Comp<MapGridComponent>(grid)),
airtightMap,
maxIntensity,
stepSize,