HyCodeYourTale
classpublicPriority 3

CaveGeneratorJsonLoader

com.hypixel.hytale.server.worldgen.loader.cave.CaveGeneratorJsonLoader

extends JsonLoader

1

Methods

1

Public Methods

2

Fields

1

Constructors

Constructors

public
CaveGeneratorJsonLoader(SeedString<SeedStringResource> seed, Path dataFolder, JsonElement json, Path caveFolder, ZoneFileContext zoneContext)

Methods

Public Methods (1)

public
CaveGenerator load()
@Nullable

Fields

Protected Fields (2)

protectedPath caveFolder
protectedZoneFileContext zoneContext

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.worldgen.loader.cave;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
import com.hypixel.hytale.procedurallib.json.JsonLoader;
import com.hypixel.hytale.procedurallib.json.SeedString;
import com.hypixel.hytale.server.worldgen.SeedStringResource;
import com.hypixel.hytale.server.worldgen.cave.CaveGenerator;
import com.hypixel.hytale.server.worldgen.cave.CaveType;
import com.hypixel.hytale.server.worldgen.loader.context.ZoneFileContext;
import java.nio.file.Files;
import java.nio.file.Path;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class CaveGeneratorJsonLoader extends JsonLoader<SeedStringResource, CaveGenerator> {
   protected final Path caveFolder;
   protected final ZoneFileContext zoneContext;

   public CaveGeneratorJsonLoader(@Nonnull SeedString<SeedStringResource> seed, Path dataFolder, JsonElement json, Path caveFolder, ZoneFileContext zoneContext) {
      super(seed.append(".CaveGenerator"), dataFolder, json);
      this.caveFolder = caveFolder;
      this.zoneContext = zoneContext;
   }

   @Nullable
   public CaveGenerator load() {
      CaveGenerator caveGenerator = null;
      if (this.caveFolder != null && Files.exists(this.caveFolder)) {
         Path file = this.caveFolder.resolve("Caves.json");

         try {
            JsonReader reader = new JsonReader(Files.newBufferedReader(file));

            JsonObject cavesJson;
            try {
               cavesJson = JsonParser.parseReader(reader).getAsJsonObject();
            } catch (Throwable var8) {
               try {
                  reader.close();
               } catch (Throwable var7) {
                  var8.addSuppressed(var7);
               }

               throw var8;
            }

            reader.close();
            caveGenerator = new CaveGenerator(this.loadCaveTypes(cavesJson));
         } catch (Throwable var9) {
            throw new Error(String.format("Error while loading caves for world generator from %s", file.toString()), var9);
         }
      }

      return caveGenerator;
   }

   @Nonnull
   protected CaveType[] loadCaveTypes(@Nonnull JsonObject jsonObject) {
      return new CaveTypesJsonLoader(this.seed, this.dataFolder, jsonObject.get("Types"), this.caveFolder, this.zoneContext).load();
   }

   public interface Constants {
      String FILE_CAVES_JSON = "Caves.json";
      String KEY_TYPES = "Types";
      String ERROR_LOADING_CAVES = "Error while loading caves for world generator from %s";
   }
}