float distributedWaterLeft = myPotableWaterProducerDefinitionImpl
myPotableWaterProducerDefinitionImpl
    private void pushWaterAndMethane() {        if ((currentH2Consumed <= 0) || (currentCO2Consumed <= 0)) {            currentH2OProduced = 0f;            currentCH4Produced = 0f;            myH2ConsumerDefinitionImpl.pushResourceToStore(currentH2Consumed);            myCO2ConsumerDefinitionImpl.pushResourceToStore(currentCO2Consumed);        } else {            // CO2 + 4H2 --> CH4 + 2H20            float limitingReactant = Math.min(currentH2Consumed / 4f,                    currentCO2Consumed);            if (limitingReactant == currentH2Consumed)                myCO2ConsumerDefinitionImpl                        .pushResourceToStore(currentCO2Consumed                                - limitingReactant);            else                myH2ConsumerDefinitionImpl                        .pushResourceToStore(currentH2Consumed - 4f                                * limitingReactant);            float waterMolesProduced = 2f * limitingReactant;            float waterLitersProduced = (waterMolesProduced * 18.01524f) / 1000f; //1000g/liter,            // 18.01524g/mole            float methaneMolesProduced = limitingReactant;            currentH2OProduced = randomFilter(waterLitersProduced);            currentCH4Produced = randomFilter(methaneMolesProduced);        }        float distributedWaterLeft = myPotableWaterProducerDefinitionImpl                .pushResourceToStore(currentH2OProduced);        float distributedMethaneLeft = myMethaneProducerDefinitionImpl                .pushResourceToStore(currentH2OProduced);    }