Constants interface

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

Файл: com/hypixel/hytale/server/worldgen/loader/cave/CavePrefabContainerJsonLoader.java

Поля (3)

МодификаторыТипИмя
String ERROR_NO_ENTRIES
String KEY_ENTRIES
String SEED_ENTRY_SUFFIX

Исходный код

Показать/скрыть
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";
   }
}