* 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
30 lines
1.0 KiB
C#
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);
|
|
}
|
|
}
|