BlendNoisePropertyJsonLoader class
Пакет: com.hypixel.hytale.procedurallib.json
Файл: com/hypixel/hytale/procedurallib/json/BlendNoisePropertyJsonLoader.java
extends: JsonLoader<K, BlendNoiseProperty>
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
|
JsonArray |
EMPTY_ARRAY |
|
String |
KEY_ALPHA |
|
String |
KEY_NOISE |
|
String |
KEY_THRESHOLDS |
|
NoiseProperty |
var1 |
|
JsonArray |
var1 |
|
JsonArray |
var1 |
|
NoiseProperty[] |
var2 |
|
NoiseProperty[] |
var2 |
|
double[] |
var2 |
|
double |
var2 |
|
|
var2 |
|
double[] |
var3 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
BlendNoisePropertyreturn new BlendNoiseProperty(var1, var2, var3) |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("Number of noises must match number of thresholds") |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("Thresholds must be in ascending order and cannot be equal") |
|
|
for for(int var4 = 0; var4 < var1.length; var4++) |
abstract |
|
for for(int var3 = 0; var3 < var1.size() |
|
|
if if(var0.length != var1.length) |
|
|
if if(var1[var4] <= var2) |
protected |
NoiseProperty |
loadAlphaNoiseProperty loadAlpha() |
protected |
NoiseProperty[] |
loadNoiseNoiseProperty[] loadNoise() |
protected |
double[] |
loadThresholdsdouble[] loadThresholds() |
abstract |
|
super super(var1, var2, var3) |
static |
void |
validatevoid validate(NoiseProperty[] var0, double[] var1) |
abstract |
|
validate validate(var2, var3) |
Исходный код
Показать/скрыть
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();
}
}