CavePrefabContainerJsonLoader class
Пакет: com.hypixel.hytale.server.worldgen.loader.cave
Файл: com/hypixel/hytale/server/worldgen/loader/cave/CavePrefabContainerJsonLoader.java
extends: JsonLoader<SeedStringResource, CavePrefabContainer>
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
String |
ERROR_NO_ENTRIES |
|
String |
KEY_ENTRIES |
|
String |
SEED_ENTRY_SUFFIX |
final |
CaveFileContext |
context |
|
JsonArray |
var2 |
|
ModifyEvent.SeedGenerator |
var6 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
for for(int var3 = 0; var3 < var2.size() |
|
|
if if(this.json != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.loader.cave;
class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.event.ModifyEvent;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.event.ModifyEvents;
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.cave.prefab.CavePrefabContainer;
class="kw">import com.hypixel.hytale.server.worldgen.loader.context.CaveFileContext;
class="kw">import com.hypixel.hytale.server.worldgen.util.ListPool;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">public class CavePrefabContainerJsonLoader class="kw">extends JsonLoader<SeedStringResource, CavePrefabContainer> {
class="kw">protected class="kw">final CaveFileContext context;
class="kw">public CavePrefabContainerJsonLoader(@Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, CaveFileContext var4) {
super(var1.append(".CavePrefabContainer"), var2, var3);
this.context = var4;
}
@Nonnull
class="kw">public CavePrefabContainer load() {
class="kw">return new CavePrefabContainer(this.loadEntries());
}
@Nonnull
class="kw">protected CavePrefabContainer.CavePrefabEntry[] loadEntries() {
try (ListPool.Resource var1 = CavePrefabContainer.ENTRY_POOL.acquire()) {
if (this.json != null) {
JsonArray var2 = this.mustGetArray("Entries", null);
for (int var3 = 0; var3 < var2.size(); var3++) {
var1.add(
new CavePrefabEntryJsonLoader(this.seed.append(String.format("-%s", var3)), this.dataFolder, var2.get(var3), this.context.getParentContext())
.load()
);
}
}
ModifyEvent.SeedGenerator var6 = new ModifyEvent.SeedGenerator<>(this.seed);
ModifyEvent.dispatch(
ModifyEvents.CavePrefabs.class,
new ModifyEvents.CavePrefabs(
this.seed,
this.context,
var1,
var2x -> new CavePrefabEntryJsonLoader(var6.next(), this.dataFolder, this.loadFile(var2x), this.context.getParentContext()).load()
)
);
class="kw">return var1.toArray();
}
}
class="kw">public class="kw">interface Constants {
String KEY_ENTRIES = "Entries";
String SEED_ENTRY_SUFFIX = "-%s";
String ERROR_NO_ENTRIES = "Could not find entries in prefab container. Keyword: Entries";
}
}