using Content.Server.Atmos; using Content.Server.Atmos.EntitySystems; using Content.Shared.Atmos; using Content.Shared.Power.Generator; namespace Content.Server.Power.Generator; /// /// public sealed class GeneratorExhaustGasSystem : EntitySystem { [Dependency] private readonly AtmosphereSystem _atmosphere = default!; public override void Initialize() { SubscribeLocalEvent(FuelUsed); } private void FuelUsed(EntityUid uid, GeneratorExhaustGasComponent component, GeneratorUseFuel args) { var exhaustMixture = new GasMixture(); exhaustMixture.SetMoles(component.GasType, args.FuelUsed * component.MoleRatio); exhaustMixture.Temperature = component.Temperature; var environment = _atmosphere.GetContainingMixture(uid, false, true); if (environment != null) _atmosphere.Merge(environment, exhaustMixture); } }