protected override void OnSpawn()
    {
        base.OnSpawn();
        Prioritizable.AddRef(base.gameObject);
        if (configuration == null || configuration.typeId == HashedString.Invalid)
        {
            configuration = GetComponent <GeyserConfigurator>().MakeConfiguration();
        }
        emitter.emitRange   = 2;
        emitter.maxPressure = configuration.GetMaxPressure();
        ElementEmitter elementEmitter       = emitter;
        float          emitRate             = configuration.GetEmitRate();
        SimHashes      element              = configuration.GetElement();
        float          temperature          = configuration.GetTemperature();
        float          outputElementOffsetx = (float)outputOffset.x;
        float          outputElementOffsety = (float)outputOffset.y;

        elementEmitter.outputElement = new ElementConverter.OutputElement(emitRate, element, temperature, false, false, outputElementOffsetx, outputElementOffsety, 1f, configuration.GetDiseaseIdx(), Mathf.RoundToInt((float)configuration.GetDiseaseCount() * configuration.GetEmitRate()));
        base.smi.StartSM();
        Workable component = GetComponent <Studyable>();

        if ((Object)component != (Object)null)
        {
            component.alwaysShowProgressBar = true;
        }
    }
 public void SetEmitter(ElementEmitter emitter)
 {
     this.emitter = emitter;
 }