CoverContainerJsonLoader.java
package com.hypixel.hytale.server.worldgen.loader.container;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.hypixel.hytale.common.map.IWeightedMap;
import com.hypixel.hytale.common.map.WeightedMap;
import com.hypixel.hytale.procedurallib.condition.ConstantBlockFluidCondition;
import com.hypixel.hytale.procedurallib.condition.DefaultCoordinateRndCondition;
import com.hypixel.hytale.procedurallib.condition.HeightCondition;
import com.hypixel.hytale.procedurallib.condition.IBlockFluidCondition;
import com.hypixel.hytale.procedurallib.condition.ICoordinateCondition;
import com.hypixel.hytale.procedurallib.condition.ICoordinateRndCondition;
import com.hypixel.hytale.procedurallib.json.HeightThresholdInterpreterJsonLoader;
import com.hypixel.hytale.procedurallib.json.JsonLoader;
import com.hypixel.hytale.procedurallib.json.NoiseMaskConditionJsonLoader;
import com.hypixel.hytale.procedurallib.json.SeedString;
import com.hypixel.hytale.server.worldgen.SeedStringResource;
import com.hypixel.hytale.server.worldgen.container.CoverContainer;
import com.hypixel.hytale.server.worldgen.loader.util.ResolvedBlockArrayJsonLoader;
import com.hypixel.hytale.server.worldgen.util.BlockFluidEntry;
import com.hypixel.hytale.server.worldgen.util.ResolvedBlockArray;
import com.hypixel.hytale.server.worldgen.util.condition.HashSetBlockFluidCondition;
import it.unimi.dsi.fastutil.longs.LongSet;
import java.nio.file.Path;
java.util.Arrays;
javax.annotation.Nonnull;
<SeedStringResource, CoverContainer> {
{
(seed, dataFolder, json);
}
CoverContainer {
CoverContainer.CoverContainerEntry[] coverContainerEntries;
(.json != && !.json.isJsonNull()) {
(.json.isJsonArray()) {
.json.getAsJsonArray();
coverContainerEntries = .CoverContainerEntry[coversArray.size()];
( ; i < coverContainerEntries.length; ++i) {
coversArray.get(i).getAsJsonObject();
coverContainerEntries[i] = ( (.seed.append( + i), .dataFolder, coversObject)).load();
}
} {
.json.getAsJsonObject();
coverContainerEntries = .CoverContainerEntry[]{( (.seed.append(), .dataFolder, coversObject)).load()};
}
} {
coverContainerEntries = .CoverContainerEntry[];
}
(coverContainerEntries);
}
<SeedStringResource, CoverContainer.CoverContainerEntry> {
{
(seed.append(), dataFolder, json);
}
CoverContainer.CoverContainerEntry {
.CoverContainerEntry(.loadEntries(), .loadMapCondition(), .loadHeightCondition(), .loadParents(), .loadDensity(), .loadOnWater());
}
IWeightedMap<CoverContainer.CoverContainerEntry.CoverContainerEntryPart> loadEntries() {
(!.has()) {
();
} {
( (.seed, .dataFolder, .get())).load();
[] offsets = .loadOffsetArray(types.size());
.has() ? .get().getAsJsonArray() : ;
(weights != && weights.size() != types.size()) {
();
} {
WeightedMap.Builder<CoverContainer.CoverContainerEntry.CoverContainerEntryPart> builder = WeightedMap.<CoverContainer.CoverContainerEntry.CoverContainerEntryPart>builder(CoverContainer.CoverContainerEntry.CoverContainerEntryPart.EMPTY_ARRAY);
( ; i < types.size(); ++i) {
types.getEntries()[i];
offsets[i];
weights == ? : weights.get(i).getAsDouble();
CoverContainer.CoverContainerEntry. .CoverContainerEntry.CoverContainerEntryPart(blockEntry, offset);
builder.put(entry, weight);
}
(builder.size() <= ) {
();
} {
builder.build();
}
}
}
}
[] loadOffsetArray( length) {
.get();
[] offsets = [length];
(offsetElement != && !offsetElement.isJsonNull()) {
(offsetElement.isJsonArray()) {
offsetElement.getAsJsonArray();
(offsetArray.size() != length) {
();
}
( ; i < length; ++i) {
offsets[i] = offsetArray.get(i).getAsInt();
}
} {
offsetElement.getAsInt();
Arrays.fill(offsets, offset);
}
} {
Arrays.fill(offsets, );
}
offsets;
}
{
;
(.has()) {
density = .get().getAsDouble();
}
density;
}
ICoordinateCondition {
( (.seed, .dataFolder, .get())).load();
}
ICoordinateRndCondition {
DefaultCoordinateRndCondition.DEFAULT_TRUE;
(.has()) {
heightThreshold = (( (.seed, .dataFolder, .get(), )).load());
}
heightThreshold;
}
IBlockFluidCondition {
ConstantBlockFluidCondition.DEFAULT_TRUE;
(.has()) {
( (.seed, .dataFolder, .get())).load();
blockArray.getEntrySet();
parentMask = (biomeSet);
}
parentMask;
}
{
.has() && .get().getAsBoolean();
}
}
{
;
;
;
;
;
;
;
;
;
;
;
;
}
}