classpublicPriority 3
ZonesJsonLoader
com.hypixel.hytale.server.worldgen.loader.ZonesJsonLoader
1
Methods
1
Public Methods
1
Fields
1
Constructors
Constructors
public
ZonesJsonLoader(SeedString<SeedStringResource> seed, Path dataFolder, FileLoadingContext loadingContext)Methods
Public Methods (1)
public
Zone[] load()@Nonnull
Fields
Protected Fields (1)
protected
FileLoadingContext loadingContextRelated Classes
Source Code
package com.hypixel.hytale.server.worldgen.loader;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
import com.hypixel.hytale.procedurallib.json.Loader;
import com.hypixel.hytale.procedurallib.json.SeedString;
import com.hypixel.hytale.server.worldgen.SeedStringResource;
import com.hypixel.hytale.server.worldgen.loader.context.FileContext;
import com.hypixel.hytale.server.worldgen.loader.context.FileLoadingContext;
import com.hypixel.hytale.server.worldgen.loader.context.ZoneFileContext;
import com.hypixel.hytale.server.worldgen.loader.zone.ZoneJsonLoader;
import com.hypixel.hytale.server.worldgen.zone.Zone;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map.Entry;
import javax.annotation.Nonnull;
public class ZonesJsonLoader extends Loader<SeedStringResource, Zone[]> {
protected final FileLoadingContext loadingContext;
public ZonesJsonLoader(@Nonnull SeedString<SeedStringResource> seed, Path dataFolder, FileLoadingContext loadingContext) {
super(seed.append(".Zones"), dataFolder);
this.loadingContext = loadingContext;
}
@Nonnull
public Zone[] load() {
FileContext.Registry<ZoneFileContext> zoneRegistry = this.loadingContext.getZones();
int index = 0;
Zone[] zones = new Zone[zoneRegistry.size()];
for (Entry<String, ZoneFileContext> zoneEntry : zoneRegistry) {
ZoneFileContext zoneContext = zoneEntry.getValue();
try {
JsonReader reader = new JsonReader(Files.newBufferedReader(zoneContext.getPath().resolve("Zone.json")));
try {
JsonElement zoneJson = JsonParser.parseReader(reader);
Zone zone = new ZoneJsonLoader(this.seed, this.dataFolder, zoneJson, zoneContext).load();
zones[index++] = zone;
} catch (Throwable var11) {
try {
reader.close();
} catch (Throwable var10) {
var11.addSuppressed(var10);
}
throw var11;
}
reader.close();
} catch (Throwable var12) {
throw new Error(String.format("Error while loading zone \"%s\" for world generator from file.", zoneContext.getPath().toString()), var12);
}
}
return zones;
}
public interface Constants {
String PATH_ZONES = "Zones";
String FILE_ZONE_MAIN_FILE = "Zone.json";
String ERROR_LOADING_ZONE = "Error while loading zone \"%s\" for world generator from file.";
}
}