namespace Content.Server.Atmos;
///
/// Internal Atmospherics struct that stores data about a hotspot in a tile.
/// Hotspots are used to model (slow-spreading) fires and firestarters.
///
public struct Hotspot
{
///
/// Whether this hotspot is currently representing fire and needs to be processed.
/// Set when the hotspot "becomes alight". This is never set to false
/// because Atmospherics will just assign
/// a new struct when the fire goes out.
///
[ViewVariables]
public bool Valid;
///
/// Whether this hotspot has skipped its first process cycle.
/// AtmosphereSystem.Hotspot skips processing a hotspot beyond
/// setting it to active (for LINDA processing) the first
/// time it is processed.
///
[ViewVariables]
public bool SkippedFirstProcess;
///
/// Whether this hotspot is currently using the tile for reacting and fire processing
/// instead of a fraction of the tile's air.
///
/// When a tile is considered a hotspot, Hotspot will pull a fraction of that tile's
/// air out of the tile and perform a reaction on that air, merging it back afterward.
/// Bypassing triggers when the hotspot volume nears the tile's volume, making the system
/// use the tile's GasMixture instead of pulling a fraction out.
///
[ViewVariables]
public bool Bypassing;
///
/// Current temperature of the hotspot's volume, in Kelvin.
///
[ViewVariables]
public float Temperature;
///
/// Current volume of the hotspot, in liters.
/// You can think of this as the volume of the current fire in the tile.
///
[ViewVariables]
public float Volume;
///
/// State for the fire sprite.
///
[ViewVariables]
public byte State;
}