UniquePrefabContainerJsonLoader class
Пакет: com.hypixel.hytale.server.worldgen.loader.container
Файл: com/hypixel/hytale/server/worldgen/loader/container/UniquePrefabContainerJsonLoader.java
extends: JsonLoader<SeedStringResource, UniquePrefabContainer>
Поля (16)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
UniquePrefabGenerator[] |
EMPTY_GENERATORS |
|
String |
KEY_CONFIG |
|
String |
KEY_ENTRIES |
|
String |
KEY_ENTRY_NAME |
|
String |
KEY_PREFAB |
|
String |
KEY_WEIGHTS |
|
String |
NO_NAME |
|
String |
SEED_INDEX_SUFFIX |
|
UniquePrefabGenerator[] |
var1 |
|
|
var1 |
|
|
var1 |
|
String |
var1 |
|
|
var1 |
|
String |
var1 |
|
JsonArray |
var2 |
|
protected final ZoneFileContext |
zoneContext |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
UniquePrefabGeneratorJsonLoaderpublic UniquePrefabGeneratorJsonLoader(@Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, ZoneFileContext var4) |
abstract |
|
for for(int var3 = 0; var3 < var2.size() |
|
public UniquePrefabGenerator |
loadpublic UniquePrefabGenerator load() |
|
protected PrefabCategory |
loadCategoryprotected PrefabCategory loadCategory() |
|
public UniquePrefabConfiguration |
loadConfigurationpublic UniquePrefabConfiguration loadConfiguration() |
|
public String |
loadNamepublic String loadName() |
|
public IWeightedMap<WorldGenPrefabSupplier> |
loadPrefabspublic IWeightedMap<WorldGenPrefabSupplier> loadPrefabs() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.loader.container;
class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.common.map.IWeightedMap;
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.container.UniquePrefabContainer;
class="kw">import com.hypixel.hytale.server.worldgen.loader.WorldGenPrefabSupplier;
class="kw">import com.hypixel.hytale.server.worldgen.loader.context.ZoneFileContext;
class="kw">import com.hypixel.hytale.server.worldgen.loader.prefab.WeightedPrefabMapJsonLoader;
class="kw">import com.hypixel.hytale.server.worldgen.loader.prefab.unique.UniquePrefabConfigurationJsonLoader;
class="kw">import com.hypixel.hytale.server.worldgen.prefab.PrefabCategory;
class="kw">import com.hypixel.hytale.server.worldgen.prefab.unique.UniquePrefabConfiguration;
class="kw">import com.hypixel.hytale.server.worldgen.prefab.unique.UniquePrefabGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.util.LogUtil;
class="kw">import java.nio.file.Path;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class UniquePrefabContainerJsonLoader class="kw">extends JsonLoader<SeedStringResource, UniquePrefabContainer> {
class="kw">public class="kw">static class="kw">final UniquePrefabGenerator[] EMPTY_GENERATORS = new UniquePrefabGenerator[0];
class="kw">protected class="kw">final ZoneFileContext zoneContext;
class="kw">public UniquePrefabContainerJsonLoader(@Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, ZoneFileContext var4) {
super(var1.append(".UniquePrefabContainer"), var2, var3);
this.zoneContext = var4;
}
@Nonnull
class="kw">public UniquePrefabContainer load() {
UniquePrefabGenerator[] var1;
if (this.json != null && !this.json.isJsonNull()) {
JsonArray var2 = this.get("Entries").getAsJsonArray();
var1 = new UniquePrefabGenerator[var2.size()];
for (int var3 = 0; var3 < var2.size(); var3++) {
var1[var3] = new UniquePrefabContainerJsonLoader.UniquePrefabGeneratorJsonLoader(
this.seed.append(String.format("-%s", var3)), this.dataFolder, var2.get(var3), this.zoneContext
)
.load();
}
} else {
var1 = EMPTY_GENERATORS;
}
class="kw">return new UniquePrefabContainer(this.seed.hashCode(), var1);
}
class="kw">public class="kw">interface Constants {
String KEY_ENTRIES = "Entries";
String KEY_CONFIG = "Config";
String KEY_PREFAB = "Prefab";
String KEY_WEIGHTS = "Weights";
String KEY_ENTRY_NAME = "Name";
String NO_NAME = "NO_NAME_GIVEN";
String SEED_INDEX_SUFFIX = "-%s";
}
class="kw">protected class="kw">static class UniquePrefabGeneratorJsonLoader class="kw">extends JsonLoader<SeedStringResource, UniquePrefabGenerator> {
class="kw">protected class="kw">final ZoneFileContext zoneContext;
class="kw">public UniquePrefabGeneratorJsonLoader(@Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, ZoneFileContext var4) {
super(var1.append(".UniquePrefabGenerator"), var2, var3);
this.zoneContext = var4;
}
@Nonnull
class="kw">public UniquePrefabGenerator load() {
class="kw">return new UniquePrefabGenerator(this.loadName(), this.loadCategory(), this.loadPrefabs(), this.loadConfiguration(), this.zoneContext.getId());
}
class="kw">public String loadName() {
String var1 = "NO_NAME_GIVEN";
if (this.has("Name")) {
var1 = this.get("Name").getAsString();
}
class="kw">return var1;
}
class="kw">protected PrefabCategory loadCategory() {
String var1 = this.mustGetString("Category", "");
if (var1.isEmpty()) {
class="kw">return PrefabCategory.UNIQUE;
} else if (!this.zoneContext.getParentContext().getPrefabCategories().contains(var1)) {
LogUtil.getLogger().at(Level.WARNING).log("Could not find prefab category: %s, defaulting to None", var1);
class="kw">return PrefabCategory.UNIQUE;
} else {
class="kw">return this.zoneContext.getParentContext().getPrefabCategories().get(var1);
}
}
@Nonnull
class="kw">public UniquePrefabConfiguration loadConfiguration() {
class="kw">return new UniquePrefabConfigurationJsonLoader(this.seed, this.dataFolder, this.get("Config"), this.zoneContext).load();
}
@Nullable
class="kw">public IWeightedMap<WorldGenPrefabSupplier> loadPrefabs() {
class="kw">return new WeightedPrefabMapJsonLoader(this.seed, this.dataFolder, this.json, "Prefab", "Weights").load();
}
}
}