Constants interface
Пакет: com.hypixel.hytale.procedurallib.json
Файл: com/hypixel/hytale/procedurallib/json/BlendNoisePropertyJsonLoader.java
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
JsonArray |
EMPTY_ARRAY |
|
String |
KEY_ALPHA |
|
String |
KEY_NOISE |
|
String |
KEY_THRESHOLDS |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.json;
class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.property.BlendNoiseProperty;
class="kw">import com.hypixel.hytale.procedurallib.property.NoiseProperty;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class BlendNoisePropertyJsonLoader<K class="kw">extends SeedResource> class="kw">extends JsonLoader<K, BlendNoiseProperty> {
class="kw">public BlendNoisePropertyJsonLoader(SeedString<K> var1, Path var2, @Nullable JsonElement var3) {
super(var1, var2, var3);
}
@Nonnull
class="kw">public BlendNoiseProperty load() {
NoiseProperty var1 = this.loadAlpha();
NoiseProperty[] var2 = this.loadNoise();
double[] var3 = this.loadThresholds();
validate(var2, var3);
class="kw">return new BlendNoiseProperty(var1, var2, var3);
}
class="kw">protected NoiseProperty loadAlpha() {
class="kw">return new NoisePropertyJsonLoader<>(this.seed, this.dataFolder, this.mustGetObject("Alpha", null)).load();
}
class="kw">protected NoiseProperty[] loadNoise() {
JsonArray var1 = this.mustGetArray("Noise", EMPTY_ARRAY);
NoiseProperty[] var2 = new NoiseProperty[var1.size()];
for (int var3 = 0; var3 < var1.size(); var3++) {
var2[var3] = new NoisePropertyJsonLoader<>(this.seed, this.dataFolder, var1.get(var3)).load();
}
class="kw">return var2;
}
class="kw">protected double[] loadThresholds() {
JsonArray var1 = this.mustGetArray("Thresholds", EMPTY_ARRAY);
double[] var2 = new double[var1.size()];
for (int var3 = 0; var3 < var1.size(); var3++) {
var2[var3] = mustGet("$" + var3, var1.get(var3), null, Number.class, JsonLoader::isNumber, JsonElement::getAsNumber).doubleValue();
}
class="kw">return var2;
}
class="kw">protected class="kw">static void validate(NoiseProperty[] var0, double[] var1) {
if (var0.length != var1.length) {
throw new IllegalStateException("Number of noises must match number of thresholds");
}
double var2 = Double.NEGATIVE_INFINITY;
for (int var4 = 0; var4 < var1.length; var4++) {
if (var1[var4] <= var2) {
throw new IllegalStateException("Thresholds must be in ascending order and cannot be equal");
}
var2 = var1[var4];
}
}
class="kw">public class="kw">interface Constants {
String KEY_ALPHA = "Alpha";
String KEY_NOISE = "Noise";
String KEY_THRESHOLDS = "Thresholds";
JsonArray EMPTY_ARRAY = new JsonArray();
}
}