Number input widgets now update the diagram

This commit is contained in:
Wuzzy 2023-10-20 14:18:22 +02:00
parent b68a81950f
commit b2cc813885

View File

@ -228,18 +228,24 @@ function rewriteBiomeSelector() {
} }
function updateWidgetStates() { function updateWidgetStates() {
inputMinY.disabled = "disabled";
inputMaxY.disabled = "disabled";
if (biomePoints.length === 0 || biomeSelector.selectedIndex === -1) { if (biomePoints.length === 0 || biomeSelector.selectedIndex === -1) {
removeBiomeButton.disabled = "disabled"; removeBiomeButton.disabled = "disabled";
inputHeat.disabled = "disabled"; inputHeat.disabled = "disabled";
inputHumidity.disabled = "disabled"; inputHumidity.disabled = "disabled";
inputMinY.disabled = "disabled";
inputMaxY.disabled = "disabled";
} else { } else {
removeBiomeButton.disabled = ""; removeBiomeButton.disabled = "";
inputHeat.disabled = ""; inputHeat.disabled = "";
inputHumidity.disabled = ""; inputHumidity.disabled = "";
inputMinY.disabled = ""; if (biomeSelector.selectedIndex !== -1) {
inputMaxY.disabled = ""; let selected = biomeSelector.options[biomeSelector.selectedIndex];
let point = biomePoints[biomeSelector.selectedIndex];
inputHeat.value = point.heat;
inputHumidity.value = point.humidity;
inputMinY.value = point.min_y;
inputMaxY.value = point.max_y;
}
} }
} }
@ -254,10 +260,38 @@ biomeSelector.onchange = function() {
let point = biomePoints[biomeSelector.selectedIndex]; let point = biomePoints[biomeSelector.selectedIndex];
inputHeat.value = point.heat; inputHeat.value = point.heat;
inputHumidity.value = point.humidity; inputHumidity.value = point.humidity;
inputMinY.value = point.min_y;
inputMaxY.value = point.max_y;
} }
updateWidgetStates(); updateWidgetStates();
} }
function onChangeBiomeValueWidget(pointField, value) {
if (value === null) {
return;
}
if (biomeSelector.selectedIndex === -1) {
return;
}
let selected = biomeSelector.options[biomeSelector.selectedIndex];
if (selected === null) {
return;
}
let point = biomePoints[biomeSelector.selectedIndex];
point[pointField] = +value;
point.name = generateBiomeName(point.heat, point.humidity);
selected.innerText = point.name;
draw(true);
}
inputHeat.onchange = function() {
onChangeBiomeValueWidget("heat", this.value);
}
inputHumidity.onchange = function() {
onChangeBiomeValueWidget("humidity", this.value);
}
addBiomeButton.onclick = function() { addBiomeButton.onclick = function() {
let he = Math.round(Math.random()*100); let he = Math.round(Math.random()*100);
let hu = Math.round(Math.random()*100); let hu = Math.round(Math.random()*100);