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: #";
}
}