Constants interface

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

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

Поля (2)

МодификаторыТипИмя
String ERROR_FAILED_CONSTRUCTOR
String ERROR_NO_CONSTRUCTOR

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.json;

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.NoiseFunction;
class="kw">import com.hypixel.hytale.procedurallib.NoiseType;
class="kw">import java.lang.reflect.Constructor;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;

class="kw">public enum NoiseTypeJson {
   CELL(NoiseType.CELL, CellNoiseJsonLoader.class),
   CONSTANT(NoiseType.CONSTANT, ConstantNoiseJsonLoader.class),
   DISTANCE(NoiseType.DISTANCE, DistanceNoiseJsonLoader.class),
   PERLIN(NoiseType.PERLIN, PerlinNoiseJsonLoader.class),
   SIMPLEX(NoiseType.SIMPLEX, SimplexNoiseJsonLoader.class),
   OLD_SIMPLEX(NoiseType.OLD_SIMPLEX, OldSimplexNoiseJsonLoader.class),
   VALUE(NoiseType.VALUE, ValueNoiseJsonLoader.class),
   MESH(NoiseType.MESH, MeshNoiseJsonLoader.class),
   GRID(NoiseType.GRID, GridNoiseJsonLoader.class),
   BRANCH(NoiseType.BRANCH, BranchNoiseJsonLoader.class),
   POINT(NoiseType.POINT, PointNoiseJsonLoader.class);

   class="kw">private class="kw">final NoiseType noiseType;
   @Nonnull
   class="kw">private class="kw">final Constructor constructor;

   <T class="kw">extends JsonLoader<?, NoiseFunction>> NoiseTypeJson(NoiseType nullxx, @Nonnull Class<T> nullxxx) {
      this.noiseType = nullxx;

      try {
         this.constructor = nullxxx.getConstructor(SeedString.class, Path.class, JsonElement.class);
         this.constructor.setAccessible(true);
      } catch (NoSuchMethodException var6) {
         throw new Error(String.format("Could not find loader constructor for %s. NoiseType: %s", nullxxx.getName(), nullxx), var6);
      }
   }

   @Nonnull
   class="kw">public <K class="kw">extends SeedResource> JsonLoader<K, NoiseFunction> newLoader(SeedString<K> var1, Path var2, JsonElement var3) {
      try {
         class="kw">return (JsonLoader<K, NoiseFunction>)this.constructor.newInstance(var1, var2, var3);
      } catch (Exception var5) {
         throw new Error(String.format("Failed to execute loader constructor! NoiseType: %s", this.noiseType), var5);
      }
   }

   class="kw">public class="kw">interface Constants {
      String ERROR_NO_CONSTRUCTOR = "Could not find loader constructor for %s. NoiseType: %s";
      String ERROR_FAILED_CONSTRUCTOR = "Failed to execute loader constructor! NoiseType: %s";
   }
}