Пример #1
0
    private void OnActivate(EntityUid uid, GasArtifactComponent component, ArtifactActivatedEvent args)
    {
        if (component.SpawnGas == null || component.SpawnTemperature == null)
        {
            return;
        }

        var transform = Transform(uid);

        var environment = _atmosphereSystem.GetContainingMixture(uid, false, true);

        if (environment == null)
        {
            return;
        }

        if (environment.Pressure >= component.MaxExternalPressure)
        {
            return;
        }

        var merger = new GasMixture(1)
        {
            Temperature = component.SpawnTemperature.Value
        };

        merger.SetMoles(component.SpawnGas.Value, component.SpawnAmount);

        _atmosphereSystem.Merge(environment, merger);
    }
Пример #2
0
    private void OnMapInit(EntityUid uid, GasArtifactComponent component, MapInitEvent args)
    {
        if (component.SpawnGas == null && component.PossibleGases.Length != 0)
        {
            var gas = _random.Pick(component.PossibleGases);
            component.SpawnGas = gas;
        }

        if (component.SpawnTemperature == null)
        {
            var temp = _random.NextFloat(component.MinRandomTemperature, component.MaxRandomTemperature);
            component.SpawnTemperature = temp;
        }
    }