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); }
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; } }