Reset number inputs to default value on focus loss
This commit is contained in:
parent
6f55d3a67b
commit
8ba69fea5e
92
mibpov.js
92
mibpov.js
@ -105,6 +105,9 @@ const MGV6_FREQ_SNOW = -0.4
|
||||
const MGV6_FREQ_TAIGA = 0.5
|
||||
const MGV6_FREQ_JUNGLE = 0.5
|
||||
|
||||
// For mgv6_freq_desert setting
|
||||
const MGV6_FREQ_DESERT_DEFAULT = 0.45
|
||||
|
||||
/* Status variables for the diagram calculations */
|
||||
|
||||
// The current biome mode; which type of biome system
|
||||
@ -1982,7 +1985,14 @@ function handleBiomeNumberInput(biomeValueName, element) {
|
||||
}
|
||||
onChangeBiomeValueWidget(biomeValueName, val);
|
||||
}
|
||||
|
||||
function handleBiomeNumberBlur(biomeValueName, element, defaultValue) {
|
||||
let val = +element.value;
|
||||
if (element.value === "" || typeof val !== "number") {
|
||||
val = defaultValue;
|
||||
element.value = defaultValue;
|
||||
}
|
||||
onChangeBiomeValueWidget(biomeValueName, val);
|
||||
}
|
||||
inputHeat.oninput = function() {
|
||||
handleBiomeNumberInput("heat", this);
|
||||
}
|
||||
@ -1998,6 +2008,18 @@ inputMaxY.oninput = function() {
|
||||
inputBiomeName.oninput = function() {
|
||||
onChangeBiomeValueWidget("name", this.value);
|
||||
}
|
||||
inputHeat.onblur = function() {
|
||||
handleBiomeNumberBlur("heat", this, 0);
|
||||
}
|
||||
inputHumidity.onblur = function() {
|
||||
handleBiomeNumberBlur("humidity", this, 0);
|
||||
}
|
||||
inputMinY.onblur = function() {
|
||||
handleBiomeNumberBlur("min_y", this, -31000);
|
||||
}
|
||||
inputMaxY.onblur = function() {
|
||||
handleBiomeNumberBlur("max_y", this, 31000);
|
||||
}
|
||||
|
||||
/* Diagram view settings events */
|
||||
|
||||
@ -2010,6 +2032,16 @@ inputViewY.oninput = function() {
|
||||
draw(true);
|
||||
updateAltitudeText();
|
||||
}
|
||||
inputViewY.onblur = function() {
|
||||
let y = +this.value;
|
||||
if (y === null || this.value === "") {
|
||||
this.value = 0;
|
||||
viewY = 0;
|
||||
draw(true);
|
||||
updateAltitudeText();
|
||||
}
|
||||
}
|
||||
|
||||
inputCheckboxNames.onchange = function() {
|
||||
showNames = this.checked;
|
||||
draw(false);
|
||||
@ -2047,6 +2079,14 @@ inputV6FreqDesert.oninput = function() {
|
||||
v6_freq_desert = f;
|
||||
draw(true);
|
||||
}
|
||||
inputV6FreqDesert.onblur = function() {
|
||||
let f = +this.value;
|
||||
if (f === null || this.value === "") {
|
||||
v6_freq_desert = MGV6_FREQ_DESERT_DEFAULT;
|
||||
this.value = v6_freq_desert;
|
||||
draw(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* Noise parameters events */
|
||||
|
||||
@ -2060,30 +2100,38 @@ function updateNoiseParam(noiseName, noiseValueName, element) {
|
||||
updateAreaVars();
|
||||
draw(true);
|
||||
}
|
||||
function blurNoiseParam(noiseName, noiseValueName, element, defaultValue) {
|
||||
let val = +element.value;
|
||||
if (element.value === "" || val === null) {
|
||||
val = defaultValue;
|
||||
element.value = val;
|
||||
noises[noiseName][noiseValueName] = val;
|
||||
clear();
|
||||
updateAreaVars();
|
||||
draw(true);
|
||||
}
|
||||
}
|
||||
|
||||
inputNoiseHeatScale.oninput = function() {
|
||||
updateNoiseParam("heat", "scale", this);
|
||||
let noiseWidgetTable = [
|
||||
{ elem: inputNoiseHeatScale, noise: "heat", noise_param: "scale", default_modern: NOISE_SCALE_DEFAULT, default_v6: NOISE_V6_HEAT_SCALE_DEFAULT },
|
||||
{ elem: inputNoiseHeatOffset, noise: "heat", noise_param: "offset", default_modern: NOISE_OFFSET_DEFAULT, default_v6: NOISE_V6_HEAT_OFFSET_DEFAULT },
|
||||
{ elem: inputNoiseHeatOctaves, noise: "heat", noise_param: "octaves", default_modern: NOISE_OCTAVES_DEFAULT, default_v6: NOISE_V6_HEAT_OCTAVES_DEFAULT },
|
||||
{ elem: inputNoiseHeatPersistence, noise: "heat", noise_param: "persistence", default_modern: NOISE_PERSISTENCE_DEFAULT, default_v6: NOISE_V6_HEAT_PERSISTENCE_DEFAULT },
|
||||
{ elem: inputNoiseHumidityScale, noise: "humidity", noise_param: "scale", default_modern: NOISE_SCALE_DEFAULT, default_v6: NOISE_V6_HUMIDITY_SCALE_DEFAULT },
|
||||
{ elem: inputNoiseHumidityOffset, noise: "humidity", noise_param: "offset", default_modern: NOISE_OFFSET_DEFAULT, default_v6: NOISE_V6_HUMIDITY_OFFSET_DEFAULT },
|
||||
{ elem: inputNoiseHumidityOctaves, noise: "humidity", noise_param: "octaves", default_modern: NOISE_OCTAVES_DEFAULT, default_v6: NOISE_V6_HUMIDITY_OCTAVES_DEFAULT },
|
||||
{ elem: inputNoiseHumidityPersistence, noise: "humidity", noise_param: "persistence", default_modern: NOISE_PERSISTENCE_DEFAULT, default_v6: NOISE_V6_HUMIDITY_PERSISTENCE_DEFAULT },
|
||||
]
|
||||
|
||||
for (let n of noiseWidgetTable) {
|
||||
n.elem.oninput = function() {
|
||||
updateNoiseParam(n.noise, n.noise_param, this);
|
||||
}
|
||||
inputNoiseHeatOffset.oninput = function() {
|
||||
updateNoiseParam("heat", "offset", this);
|
||||
n.elem.onblur = function() {
|
||||
let noiseElem = n.noise + "_" + biomeMode;
|
||||
let defaultValue = n["default_" + biomeMode];
|
||||
blurNoiseParam(n.noise, n.noise_param, this, defaultValue);
|
||||
}
|
||||
inputNoiseHeatPersistence.oninput = function() {
|
||||
updateNoiseParam("heat", "persistence", this);
|
||||
}
|
||||
inputNoiseHeatOctaves.oninput = function() {
|
||||
updateNoiseParam("heat", "octaves", this);
|
||||
}
|
||||
inputNoiseHumidityScale.oninput = function() {
|
||||
updateNoiseParam("humidity", "scale", this);
|
||||
}
|
||||
inputNoiseHumidityOffset.oninput = function() {
|
||||
updateNoiseParam("humidity", "offset", this);
|
||||
}
|
||||
inputNoiseHumidityPersistence.oninput = function() {
|
||||
updateNoiseParam("humidity", "persistence", this);
|
||||
}
|
||||
inputNoiseHumidityOctaves.oninput = function() {
|
||||
updateNoiseParam("humidity", "octaves", this);
|
||||
}
|
||||
|
||||
inputNoiseReset.onclick = function() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user