Loader class
Пакет: com.hypixel.hytale.server.worldgen.prefab
Файл: com/hypixel/hytale/server/worldgen/prefab/PrefabBaseCheck.java
extends: JsonLoader<T, PrefabBaseCheck>
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
|
PrefabBaseCheck |
var1 |
|
JsonArray |
var2 |
|
PrefabBaseCheck[] |
var3 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
for for(int var4 = 0; var4 < var2.size() |
|
public PrefabBaseCheck |
loadpublic PrefabBaseCheck load() |
|
public static <T extends SeedStringResource> PrefabBaseCheck[] |
loadAllpublic static <T extends SeedStringResource> PrefabBaseCheck[] loadAll(@Nonnull JsonLoader<T, ?> var0, @Nullable JsonElement var1) |
abstract |
|
super super(var1, var2, var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.prefab;
class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
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 java.nio.file.Path;
class="kw">import java.util.Arrays;
class="kw">import java.util.Comparator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class PrefabBaseCheck {
class="kw">public class="kw">static class="kw">final String KEY_BASE_SCALE = "BaseScale";
class="kw">public class="kw">static class="kw">final String KEY_PREFAB_SIZE = "PrefabSize";
class="kw">public class="kw">static class="kw">final String KEY_HEIGHT_TOLERANCE = "HeightTolerance";
class="kw">public class="kw">static class="kw">final float DEFAULT_BASE_SCALE = 1.0F;
class="kw">public class="kw">static class="kw">final int DEFAULT_PREFAB_SIZE = 20;
class="kw">public class="kw">static class="kw">final int DEFAULT_HEIGHT_TOLERANCE = 2;
class="kw">public class="kw">static class="kw">final BuilderCodec<PrefabBaseCheck> CODEC = BuilderCodec.builder(PrefabBaseCheck.class, PrefabBaseCheck::new)
.documentation("Define additional height checks around the base of the prefab to prevent it placing on uneven ground")
.<Float>append(new KeyedCodec<>("BaseScale", Codec.FLOAT), (var0, var1) -> var0.baseScale = var1, var0 -> var0.baseScale)
.addValidator(Validators.range(0.0F, 1.0F))
.documentation("The size of the prefab's base as a proportion of its horizontal dimensions")
.add()
.<Integer>append(new KeyedCodec<>("PrefabSize", Codec.INTEGER), (var0, var1) -> var0.prefabSize = var1, var0 -> var0.prefabSize)
.addValidator(Validators.greaterThan(0))
.documentation("The minimum size of the prefab that this base check applies to")
.add()
.<Integer>append(new KeyedCodec<>("HeightTolerance", Codec.INTEGER), (var0, var1) -> var0.heightTolerance = var1, var0 -> var0.heightTolerance)
.documentation("The amount of terrain height difference allowed around the prefab's base before the location is deemed too uneven")
.add()
.build();
class="kw">public class="kw">static class="kw">final ArrayCodec<PrefabBaseCheck> ARRAY_CODEC = new ArrayCodec<>(CODEC, PrefabBaseCheck[]::new);
class="kw">public class="kw">static class="kw">final PrefabBaseCheck[] EMPTY_ARRAY = new PrefabBaseCheck[0];
class="kw">protected float baseScale = 1.0F;
class="kw">protected int prefabSize = 20;
class="kw">protected int heightTolerance = 2;
class="kw">public PrefabBaseCheck() {
}
class="kw">public float getBaseScale() {
class="kw">return this.baseScale;
}
class="kw">public int getPrefabSize() {
class="kw">return this.prefabSize;
}
class="kw">public int getHeightTolerance() {
class="kw">return this.heightTolerance;
}
class="kw">public class="kw">static class Loader<T class="kw">extends SeedStringResource> class="kw">extends JsonLoader<T, PrefabBaseCheck> {
class="kw">public Loader(SeedString<T> var1, Path var2, @Nullable JsonElement var3) {
super(var1, var2, var3);
}
@Nullable
class="kw">public PrefabBaseCheck load() {
PrefabBaseCheck var1 = new PrefabBaseCheck();
var1.baseScale = this.mustGetNumber("BaseScale", 1.0F).floatValue();
var1.prefabSize = this.mustGetNumber("PrefabSize", 20).intValue();
var1.heightTolerance = this.mustGetNumber("HeightTolerance", 2).intValue();
class="kw">return var1;
}
class="kw">public class="kw">static <T class="kw">extends SeedStringResource> PrefabBaseCheck[] loadAll(@Nonnull JsonLoader<T, ?> var0, @Nullable JsonElement var1) {
if (var1 != null && var1.isJsonArray()) {
JsonArray var2 = var1.getAsJsonArray();
if (var2.isEmpty()) {
class="kw">return PrefabBaseCheck.EMPTY_ARRAY;
}
PrefabBaseCheck[] var3 = new PrefabBaseCheck[var2.size()];
for (int var4 = 0; var4 < var2.size(); var4++) {
var3[var4] = new PrefabBaseCheck.Loader<>(var0.getSeed(), var0.getDataFolder(), var2.get(var4)).load();
}
Arrays.sort(var3, Comparator.comparingInt(PrefabBaseCheck::getPrefabSize).reversed());
class="kw">return var3;
} else {
class="kw">return PrefabBaseCheck.EMPTY_ARRAY;
}
}
}
}