CoordinateRandomizerJsonLoader class

Пакет: com.hypixel.hytale.procedurallib.json

Файл: com/hypixel/hytale/procedurallib/json/CoordinateRandomizerJsonLoader.java

extends: JsonLoader<K, ICoordinateRandomizer>

Поля (13)

МодификаторыТипИмя
String KEY_GENERATORS
String KEY_GENERATORS_AMPLITUDE
String SEED_X_NOISE_SUFFIX
String SEED_Y_NOISE_SUFFIX
String SEED_Z_NOISE_SUFFIX
ICoordinateRandomizer var1
var1
CoordinateRotator var2
JsonArray var2
CoordinateRandomizer.AmplitudeNoiseProperty[] var3
JsonObject var5
NoiseProperty var6
double var7

Методы (3)

МодификаторыВозвратСигнатура
abstract for for(int var4 = 0; var4 < var2.size()
if if(var2 != CoordinateRotator.NONE)
abstract super super(var1, 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.google.gson.JsonObject;
class="kw">import com.hypixel.hytale.procedurallib.property.NoiseProperty;
class="kw">import com.hypixel.hytale.procedurallib.random.CoordinateRandomizer;
class="kw">import com.hypixel.hytale.procedurallib.random.CoordinateRotator;
class="kw">import com.hypixel.hytale.procedurallib.random.ICoordinateRandomizer;
class="kw">import com.hypixel.hytale.procedurallib.random.RotatedCoordinateRandomizer;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;

class="kw">public class CoordinateRandomizerJsonLoader<K class="kw">extends SeedResource> class="kw">extends JsonLoader<K, ICoordinateRandomizer> {
   class="kw">public CoordinateRandomizerJsonLoader(SeedString<K> var1, Path var2, JsonElement var3) {
      super(var1, var2, var3);
   }

   @Nonnull
   class="kw">public ICoordinateRandomizer load() {
      class="kw">return this.json != null && !this.json.isJsonNull() ? this.loadRandomizer() : CoordinateRandomizer.EMPTY_RANDOMIZER;
   }

   @Nonnull
   class="kw">protected ICoordinateRandomizer loadRandomizer() {
      ICoordinateRandomizer var1 = new CoordinateRandomizer(
         this.loadGenerators(".X-Noise#%s"), this.loadGenerators(".Y-Noise#%s"), this.loadGenerators(".Z-Noise#%s")
      );
      if (this.has("Rotate")) {
         CoordinateRotator var2 = new CoordinateRotatorJsonLoader<>(this.seed, this.dataFolder, this.get("Rotate")).load();
         if (var2 != CoordinateRotator.NONE) {
            var1 = new RotatedCoordinateRandomizer(var1, var2);
         }
      }

      class="kw">return var1;
   }

   @Nonnull
   class="kw">protected CoordinateRandomizer.AmplitudeNoiseProperty[] loadGenerators(@Nonnull String var1) {
      JsonArray var2 = this.get("Generators").getAsJsonArray();
      CoordinateRandomizer.AmplitudeNoiseProperty[] var3 = new CoordinateRandomizer.AmplitudeNoiseProperty[var2.size()];

      for (int var4 = 0; var4 < var2.size(); var4++) {
         JsonObject var5 = var2.get(var4).getAsJsonObject();
         NoiseProperty var6 = new NoisePropertyJsonLoader<>(this.seed.alternateOriginal(String.format(var1, var4)), this.dataFolder, var5).load();
         double var7 = var5.get("Amplitude").getAsDouble();
         var3[var4] = new CoordinateRandomizer.AmplitudeNoiseProperty(var6, var7);
      }

      class="kw">return var3;
   }

   class="kw">public class="kw">interface Constants {
      String KEY_GENERATORS = "Generators";
      String KEY_GENERATORS_AMPLITUDE = "Amplitude";
      String SEED_X_NOISE_SUFFIX = ".X-Noise#%s";
      String SEED_Y_NOISE_SUFFIX = ".Y-Noise#%s";
      String SEED_Z_NOISE_SUFFIX = ".Z-Noise#%s";
   }
}