public double calcDensity(int x, int y, int z) { double height = calcBaseTerrain(x, z); double ocean = calcOceanTerrain(x, z); double river = calcRiverTerrain(x, z); float temp = biomeProvider.getTemperatureAt(x, z); float humidity = biomeProvider.getHumidityAt(x, z); Vector2f distanceToMountainBiome = new Vector2f(temp - 0.25f, humidity - 0.35f); double mIntens = TeraMath.clamp(1.0 - distanceToMountainBiome.length() * 3.0); double densityMountains = calcMountainDensity(x, y, z) * mIntens; double densityHills = calcHillDensity(x, y, z) * (1.0 - mIntens); int plateauArea = (int) (Chunk.SIZE_Y * 0.10); double flatten = TeraMath.clamp(((Chunk.SIZE_Y - 16) - y) / plateauArea); return -y + (((32.0 + height * 32.0) * TeraMath.clamp(river + 0.25) * TeraMath.clamp(ocean + 0.25)) + densityMountains * 1024.0 + densityHills * 128.0) * flatten; }