diff --git a/index.html b/index.html
index 13815826..13f9793b 100644
--- a/index.html
+++ b/index.html
@@ -942,7 +942,7 @@
|
Points number |
-
+
|
diff --git a/main.js b/main.js
index adac14e0..f65f245d 100644
--- a/main.js
+++ b/main.js
@@ -12,6 +12,21 @@ const TIME = !PRODUCTION;
const WARN = 1;
const ERROR = 1;
+// constants to link density values to number of cells
+const POINTS_1K = 1;
+const POINTS_2K = 2;
+const POINTS_5K = 3;
+const POINTS_10K = 4;
+const POINTS_20K = 5;
+const POINTS_30K = 6;
+const POINTS_40K = 7;
+const POINTS_50K = 8;
+const POINTS_60K = 9;
+const POINTS_70K = 10;
+const POINTS_80K = 11;
+const POINTS_90K = 12;
+const POINTS_100K = 13;
+
// if map version is not stored, clear localStorage and show a message
if (rn(localStorage.getItem("version"), 2) !== rn(version, 2)) {
localStorage.clear();
@@ -615,7 +630,12 @@ function generateSeed() {
// Place points to calculate Voronoi diagram
function placePoints() {
TIME && console.time("placePoints");
- const cellsDesired = 10000 * densityInput.value; // generate 10k points for each densityInput point
+ let cellsDesired = 10000 * (+densityInput.value - POINTS_5K); // generate 10k points for each densityInput point
+ switch (+densityInput.value) {
+ case POINTS_1K: cellsDesired = 1000; break;
+ case POINTS_2K: cellsDesired = 2000; break;
+ case POINTS_5K: cellsDesired = 5000; break;
+ }
const spacing = grid.spacing = rn(Math.sqrt(graphWidth * graphHeight / cellsDesired), 2); // spacing between points before jirrering
grid.boundary = getBoundaryPoints(graphWidth, graphHeight, spacing);
grid.points = getJitteredGrid(graphWidth, graphHeight, spacing); // jittered square grid
diff --git a/modules/heightmap-generator.js b/modules/heightmap-generator.js
index e469b4dc..b241c78e 100644
--- a/modules/heightmap-generator.js
+++ b/modules/heightmap-generator.js
@@ -187,31 +187,37 @@
function getBlobPower() {
switch (+densityInput.value) {
- case 1: return .98;
- case 2: return .985;
- case 3: return .987;
- case 4: return .9892;
- case 5: return .9911;
- case 6: return .9921;
- case 7: return .9934;
- case 8: return .9942;
- case 9: return .9946;
- case 10: return .995;
+ case POINTS_1K: return .93;
+ case POINTS_2K: return .95;
+ case POINTS_5K: return .96;
+ case POINTS_10K: return .98;
+ case POINTS_20K: return .985;
+ case POINTS_30K: return .987;
+ case POINTS_40K: return .9892;
+ case POINTS_50K: return .9911;
+ case POINTS_60K: return .9921;
+ case POINTS_70K: return .9934;
+ case POINTS_80K: return .9942;
+ case POINTS_90K: return .9946;
+ case POINTS_100K: return .995;
}
}
function getLinePower() {
switch (+densityInput.value) {
- case 1: return .81;
- case 2: return .82;
- case 3: return .83;
- case 4: return .84;
- case 5: return .855;
- case 6: return .87;
- case 7: return .885;
- case 8: return .91;
- case 9: return .92;
- case 10: return .93;
+ case POINTS_1K: return .74;
+ case POINTS_2K: return .75;
+ case POINTS_5K: return .78;
+ case POINTS_10K: return .81;
+ case POINTS_20K: return .82;
+ case POINTS_30K: return .83;
+ case POINTS_40K: return .84;
+ case POINTS_50K: return .855;
+ case POINTS_60K: return .87;
+ case POINTS_70K: return .885;
+ case POINTS_80K: return .91;
+ case POINTS_90K: return .92;
+ case POINTS_100K: return .93;
}
}
diff --git a/modules/ui/options.js b/modules/ui/options.js
index 26e3329e..25a927b0 100644
--- a/modules/ui/options.js
+++ b/modules/ui/options.js
@@ -276,9 +276,14 @@ function copyMapURL() {
}
function changeCellsDensity(value) {
- densityOutput.value = value * 10 + "K";
- if (value > 5) densityOutput.style.color = "#b12117";
- else if (value > 1) densityOutput.style.color = "#dfdf12";
+ switch (value) {
+ case POINTS_1K : densityOutput.value = "1K"; break;
+ case POINTS_2K : densityOutput.value = "2K"; break;
+ case POINTS_5K : densityOutput.value = "5K"; break;
+ default: densityOutput.value = (value-POINTS_5K) * 10 + "K";
+ }
+ if (value > POINTS_50K) densityOutput.style.color = "#b12117";
+ else if (value > POINTS_10K) densityOutput.style.color = "#dfdf12";
else densityOutput.style.color = "#038603";
}
|