using System.Diagnostics.CodeAnalysis; using Content.Shared.Atmos; namespace Content.Server.Atmos; public struct TileMixtureEnumerator { public readonly TileAtmosphere?[] Tiles; public int Index = 0; public static readonly TileMixtureEnumerator Empty = new(Array.Empty()); internal TileMixtureEnumerator(TileAtmosphere?[] tiles) { Tiles = tiles; } public bool MoveNext([NotNullWhen(true)] out GasMixture? mix) { while (Index < Tiles.Length) { mix = Tiles[Index++]?.Air; if (mix != null) return true; } mix = null; return false; } }