public void update(float tpf) {
    if (isSnowing) {
      snowParticleEmitter.setLocalTranslation(sim.getCar().getPosition());

      if (snowingPercentageHasChanged) {
        snowParticleEmitter.setPercentage(snowingPercentage);
        System.out.println("snowing intensity: " + snowingPercentage);
        snowingPercentageHasChanged = false;
      }
    }

    if (isRaining) {
      rainParticleEmitter.setLocalTranslation(sim.getCar().getPosition());

      if (rainingPercentageHasChanged) {
        rainParticleEmitter.setPercentage(rainingPercentage);
        System.out.println("raining intensity: " + rainingPercentage);
        rainingPercentageHasChanged = false;
      }
    }

    if (isFog) {
      if (fogPercentageHasChanged) {
        for (FogFilter fogFilter : fogFilterList)
          fogFilter.setFogDensity(2.0f * (fogPercentage / 100f));
        System.out.println("fog intensity: " + fogPercentage);
        fogPercentageHasChanged = false;
      }
    }
  }