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

@@ -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,