Files
Delta-v/Content.Server/Power/Generator/GeneratorExhaustGasSystem.cs
T
Jezithyr 17ff17a0d0 Move GasMixture to shared (#27480)
* Moved GasMixture to shared

* Temp Fix for sandbox violation, idk why Array.Resize isn't working properly. It's already sandboxed.

* The most powerful webedit in history
2024-05-07 04:00:15 +02:00

30 lines
1.0 KiB
C#

using Content.Server.Atmos;
using Content.Server.Atmos.EntitySystems;
using Content.Shared.Atmos;
using Content.Shared.Power.Generator;
namespace Content.Server.Power.Generator;
/// <seealso cref="GeneratorSystem"/>
/// <seealso cref="GeneratorExhaustGasComponent"/>
public sealed class GeneratorExhaustGasSystem : EntitySystem
{
[Dependency] private readonly AtmosphereSystem _atmosphere = default!;
public override void Initialize()
{
SubscribeLocalEvent<GeneratorExhaustGasComponent, GeneratorUseFuel>(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);
}
}