using Robust.Shared.Map; namespace Content.Shared.Atmos; /// /// Raised on entities that have an AtmosExposedComponent when AtmosphereSystem updates. /// Exposure events are raised by AtmosphereSystem at some fixed interval. /// /// The coordinates of the entity that is being exposed. /// The gas mixture that the entity is exposed to. /// The xform of the entity that is being exposed. [ByRefEvent] public readonly struct AtmosExposedUpdateEvent( EntityCoordinates coordinates, GasMixture mixture, TransformComponent transform) { public readonly EntityCoordinates Coordinates = coordinates; public readonly GasMixture GasMixture = mixture; public readonly TransformComponent Transform = transform; } /// /// Event that tries to query the mixture a certain entity is exposed to. /// This is mainly intended for use with entities inside of containers. /// This event is not raised for entities that are directly parented to the grid. /// [ByRefEvent] public struct AtmosExposedGetAirEvent { /// /// The entity we want to query this for. /// public readonly Entity Entity; /// /// The mixture that the entity is exposed to. Output parameter. /// public GasMixture? Gas = null; /// /// Whether to excite the mixture, if possible. /// public readonly bool Excite = false; /// /// Whether this event has been handled or not. /// Check this before changing anything. /// public bool Handled = false; public AtmosExposedGetAirEvent(Entity entity, bool excite = false) { Entity = entity; Excite = excite; } }