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();
   }
}