Fix v6 humidity noise

This commit is contained in:
Wuzzy 2023-10-27 18:11:17 +02:00
parent cc889e5306
commit 509c97a322

View File

@ -107,6 +107,12 @@ const MGV6_FREQ_JUNGLE = 0.5
/* Status variables for the diagram calculations */
// The current biome mode; which type of biome system
// the program will use.
// * "modern": The modern biome system, as used by mapgen v7 and many more
// * "v6": The biome system of mapgen v6
let biomeMode = "modern";
// Min. and max. mathematically possible values for heat and humidity
let limit_heat_min, limit_heat_max;
let limit_humidity_min, limit_humidity_max;
@ -133,11 +139,19 @@ const NOISE_SCALE_DEFAULT = 50;
const NOISE_PERSISTENCE_DEFAULT = 0.5;
const NOISE_OCTAVES_DEFAULT = 3;
const NOISE_ABSVALUE_DEFAULT = false;
const NOISE_V6_OFFSET_DEFAULT = 0;
const NOISE_V6_SCALE_DEFAULT = 1;
const NOISE_V6_PERSISTENCE_DEFAULT = 0.5;
const NOISE_V6_OCTAVES_DEFAULT = 3;
const NOISE_V6_ABSVALUE_DEFAULT = false;
const NOISE_V6_HEAT_OFFSET_DEFAULT = 0;
const NOISE_V6_HEAT_SCALE_DEFAULT = 1;
const NOISE_V6_HEAT_PERSISTENCE_DEFAULT = 0.5;
const NOISE_V6_HEAT_OCTAVES_DEFAULT = 3;
const NOISE_V6_HEAT_ABSVALUE_DEFAULT = false;
const NOISE_V6_HUMIDITY_OFFSET_DEFAULT = 0.5;
const NOISE_V6_HUMIDITY_SCALE_DEFAULT = 0.5;
const NOISE_V6_HUMIDITY_PERSISTENCE_DEFAULT = 0.5;
const NOISE_V6_HUMIDITY_OCTAVES_DEFAULT = 3;
const NOISE_V6_HUMIDITY_ABSVALUE_DEFAULT = false;
// Current noise values
let noises = {
@ -156,18 +170,18 @@ let noises = {
absvalue: NOISE_ABSVALUE_DEFAULT,
},
heat_v6: {
offset: NOISE_V6_OFFSET_DEFAULT,
scale: NOISE_V6_SCALE_DEFAULT,
octaves: NOISE_V6_OCTAVES_DEFAULT,
persistence: NOISE_V6_PERSISTENCE_DEFAULT,
absvalue: NOISE_V6_ABSVALUE_DEFAULT,
offset: NOISE_V6_HEAT_OFFSET_DEFAULT,
scale: NOISE_V6_HEAT_SCALE_DEFAULT,
octaves: NOISE_V6_HEAT_OCTAVES_DEFAULT,
persistence: NOISE_V6_HEAT_PERSISTENCE_DEFAULT,
absvalue: NOISE_V6_HEAT_ABSVALUE_DEFAULT,
},
humidity_v6: {
offset: NOISE_V6_OFFSET_DEFAULT,
scale: NOISE_V6_SCALE_DEFAULT,
octaves: NOISE_V6_OCTAVES_DEFAULT,
persistence: NOISE_V6_PERSISTENCE_DEFAULT,
absvalue: NOISE_V6_ABSVALUE_DEFAULT,
offset: NOISE_V6_HUMIDITY_OFFSET_DEFAULT,
scale: NOISE_V6_HUMIDITY_SCALE_DEFAULT,
octaves: NOISE_V6_HUMIDITY_OCTAVES_DEFAULT,
persistence: NOISE_V6_HUMIDITY_PERSISTENCE_DEFAULT,
absvalue: NOISE_V6_HUMIDITY_ABSVALUE_DEFAULT,
},
};
noises.heat = noises.heat_modern;
@ -218,6 +232,12 @@ function updateAreaVarsFor(noiseType) {
if (min_value > max_value) {
[min_value, max_value] = [max_value, min_value]
}
if (biomeMode === "v6") {
if (noiseType == "humidity") {
min_value = Math.max(0.0, min_value);
max_value = Math.min(1.0, max_value);
}
}
// Update globals
let limit_min = min_value;
@ -1878,17 +1898,17 @@ inputNoiseHumidityOctaves.oninput = function() {
inputNoiseReset.onclick = function() {
if (biomeMode === "v6") {
noises.heat.offset = NOISE_V6_OFFSET_DEFAULT;
noises.heat.scale = NOISE_V6_SCALE_DEFAULT;
noises.heat.octaves = NOISE_V6_OCTAVES_DEFAULT;
noises.heat.persistence = NOISE_V6_PERSISTENCE_DEFAULT;
noises.heat.absvalue = NOISE_V6_ABSVALUE_DEFAULT;
noises.heat.offset = NOISE_V6_HEAT_OFFSET_DEFAULT;
noises.heat.scale = NOISE_V6_HEAT_SCALE_DEFAULT;
noises.heat.octaves = NOISE_V6_HEAT_OCTAVES_DEFAULT;
noises.heat.persistence = NOISE_V6_HEAT_PERSISTENCE_DEFAULT;
noises.heat.absvalue = NOISE_V6_HEAT_ABSVALUE_DEFAULT;
noises.humidity.offset = NOISE_V6_OFFSET_DEFAULT;
noises.humidity.scale = NOISE_V6_SCALE_DEFAULT;
noises.humidity.octaves = NOISE_V6_OCTAVES_DEFAULT;
noises.humidity.persistence = NOISE_V6_PERSISTENCE_DEFAULT;
noises.humidity.absvalue = NOISE_V6_ABSVALUE_DEFAULT;
noises.humidity.offset = NOISE_V6_HUMIDITY_OFFSET_DEFAULT;
noises.humidity.scale = NOISE_V6_HUMIDITY_SCALE_DEFAULT;
noises.humidity.octaves = NOISE_V6_HUMIDITY_OCTAVES_DEFAULT;
noises.humidity.persistence = NOISE_V6_HUMIDITY_PERSISTENCE_DEFAULT;
noises.humidity.absvalue = NOISE_V6_HUMIDITY_ABSVALUE_DEFAULT;
} else {
noises.heat.offset = NOISE_OFFSET_DEFAULT;
noises.heat.scale = NOISE_SCALE_DEFAULT;
@ -2138,7 +2158,6 @@ inputImportSubmit.onclick = function() {
}
/* Mode events */
let biomeMode = "modern";
modernModeButton.onclick = function() {
biomeMode = "modern";
biomeConfigContainerOuter.hidden = false;