Constants interface

Пакет: com.hypixel.hytale.server.worldgen.loader.zone

Файл: com/hypixel/hytale/server/worldgen/loader/zone/UniqueZoneEntryJsonLoader.java

Поля (13)

МодификаторыТипИмя
int DEFAULT_PADDING
int DEFAULT_RADIUS
String ERROR_ENTRIES_TYPE
String ERROR_ENTRY_TYPE
String ERROR_MISSING_COLOR
String ERROR_MISSING_PARENT
String ERROR_MISSING_ZONE
String ERROR_PARENT_TYPE
String KEY_COLOR
String KEY_PADDING
String KEY_PARENT
String KEY_RADIUS
String KEY_ZONE

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.loader.zone;

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.json.JsonLoader;
class="kw">import com.hypixel.hytale.procedurallib.json.SeedString;
class="kw">import com.hypixel.hytale.server.worldgen.SeedStringResource;
class="kw">import com.hypixel.hytale.server.worldgen.loader.util.ColorUtil;
class="kw">import com.hypixel.hytale.server.worldgen.zone.Zone;
class="kw">import java.nio.file.Path;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class UniqueZoneEntryJsonLoader class="kw">extends JsonLoader<SeedStringResource, Zone.UniqueEntry[]> {
   class="kw">protected class="kw">final Map<String, Zone> zoneLookup;

   class="kw">public UniqueZoneEntryJsonLoader(SeedString<SeedStringResource> var1, Path var2, @Nullable JsonElement var3, Map<String, Zone> var4) {
      super(var1, var2, var3);
      this.zoneLookup = var4;
   }

   @Nonnull
   class="kw">public Zone.UniqueEntry[] load() {
      if (this.json == null) {
         class="kw">return Zone.UniqueEntry.EMPTY_ARRAY;
      }

      if (!this.json.isJsonArray()) {
         throw new Error("Unexpected type for 'UniqueZones' field, expected array");
      }

      JsonArray var1 = this.json.getAsJsonArray();
      Zone.UniqueEntry[] var2 = new Zone.UniqueEntry[var1.size()];

      for (int var3 = 0; var3 < var1.size(); var3++) {
         JsonElement var4 = var1.get(var3);
         if (!var4.isJsonObject()) {
            throw new Error("Unexpected type for unique zone entry: #" + var3);
         }

         var2[var3] = this.loadEntry(var3, var4.getAsJsonObject());
      }

      class="kw">return var2;
   }

   class="kw">protected Zone.UniqueEntry loadEntry(int var1, JsonObject var2) {
      JsonElement var3 = var2.get("Zone");
      if (var3 == null) {
         throw new Error("Missing 'Zone' field in unique zone entry: #" + var1);
      }

      JsonElement var4 = var2.get("Color");
      if (var4 == null) {
         throw new Error("Missing 'Color' field in unique zone entry: #" + var1);
      }

      JsonElement var5 = var2.get("Parent");
      if (var5 == null) {
         throw new Error("Missing 'Parent' field in unique zone entry: #" + var1);
      }

      JsonElement var6 = var2.get("Radius");
      JsonElement var7 = var2.get("Padding");
      Zone var8 = this.zoneLookup.get(var3.getAsString());
      if (var8 == null) {
         throw new Error("Unknown zone '" + var3.getAsString() + "' in unique zone entry: #" + var1);
      }

      int var9 = ColorUtil.hexString(var4.getAsString());
      int[] var10 = loadParentColors(var1, var5);
      int var11 = var6 != null ? var6.getAsInt() : 1;
      int var12 = var7 != null ? var7.getAsInt() : 0;
      class="kw">return new Zone.UniqueEntry(var8, var9, var10, var11, var12);
   }

   class="kw">protected class="kw">static int[] loadParentColors(int var0, JsonElement var1) {
      if (!var1.isJsonArray()) {
         if (var1.isJsonPrimitive()) {
            class="kw">return new int[]{ColorUtil.hexString(var1.getAsString())};
         } else {
            throw new Error("Unexpected type for 'Parent' field in unique zone entry: #" + var0);
         }
      } else {
         JsonArray var2 = var1.getAsJsonArray();
         int[] var3 = new int[var2.size()];

         for (int var4 = 0; var4 < var2.size(); var4++) {
            var3[var4] = ColorUtil.hexString(var2.get(var4).getAsString());
         }

         class="kw">return var3;
      }
   }

   class="kw">public class="kw">static void collectZones(Set<String> var0, @Nullable JsonElement var1) {
      if (var1 != null) {
         if (!var1.isJsonArray()) {
            throw new Error("Unexpected type for 'UniqueZones' field, expected array");
         }

         JsonArray var2 = var1.getAsJsonArray();

         for (int var3 = 0; var3 < var2.size(); var3++) {
            JsonElement var4 = var2.get(var3);
            if (!var4.isJsonObject()) {
               throw new Error("Unexpected type for unique zone entry: #" + var3);
            }

            JsonElement var5 = var4.getAsJsonObject().get("Zone");
            if (var5 == null) {
               throw new Error("Missing 'Zone' field in unique zone entry: #" + var3);
            }

            var0.add(var5.getAsString());
         }
      }
   }

   class="kw">public class="kw">interface Constants {
      String KEY_ZONE = "Zone";
      String KEY_COLOR = "Color";
      String KEY_PARENT = "Parent";
      String KEY_RADIUS = "Radius";
      String KEY_PADDING = "Padding";
      int DEFAULT_RADIUS = 1;
      int DEFAULT_PADDING = 0;
      String ERROR_ENTRIES_TYPE = "Unexpected type for 'UniqueZones' field, expected array";
      String ERROR_ENTRY_TYPE = "Unexpected type for unique zone entry: #";
      String ERROR_PARENT_TYPE = "Unexpected type for 'Parent' field in unique zone entry: #";
      String ERROR_MISSING_ZONE = "Missing 'Zone' field in unique zone entry: #";
      String ERROR_MISSING_COLOR = "Missing 'Color' field in unique zone entry: #";
      String ERROR_MISSING_PARENT = "Missing 'Parent' field in unique zone entry: #";
   }
}