PointEvaluatorJsonLoader.java
package com.hypixel.hytale.procedurallib.json;
import com.google.gson.JsonElement;
import com.hypixel.hytale.procedurallib.condition.DoubleThresholdCondition;
import com.hypixel.hytale.procedurallib.condition.IDoubleCondition;
import com.hypixel.hytale.procedurallib.condition.IDoubleThreshold;
import com.hypixel.hytale.procedurallib.logic.cell.DistanceCalculationMode;
import com.hypixel.hytale.procedurallib.logic.cell.MeasurementMode;
import com.hypixel.hytale.procedurallib.logic.cell.PointDistanceFunction;
import com.hypixel.hytale.procedurallib.logic.cell.evaluator.BorderPointEvaluator;
import com.hypixel.hytale.procedurallib.logic.cell.evaluator.JitterPointEvaluator;
import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
import com.hypixel.hytale.procedurallib.logic.cell.evaluator.SkipCellPointEvaluator;
import com.hypixel.hytale.procedurallib.logic.cell.jitter.CellJitter;
import com.hypixel.hytale.procedurallib.logic.cell.jitter.DefaultCellJitter;
import com.hypixel.hytale.procedurallib.supplier.IDoubleRange;
import java.nio.file.Path;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class PointEvaluatorJsonLoader<T extends SeedResource> extends AbstractCellJitterJsonLoader<T, PointEvaluator> {
@Nonnull
protected final MeasurementMode measurementMode;
PointDistanceFunction pointDistanceFunction;
{
(seed, dataFolder, json, (PointDistanceFunction));
}
{
(seed, dataFolder, json, MeasurementMode.CENTRE_DISTANCE, pointDistanceFunction);
}
{
(seed.append(), dataFolder, json);
.measurementMode = measurementMode;
.pointDistanceFunction = pointDistanceFunction;
}
PointEvaluator {
PointEvaluator var10000;
(.measurementMode) {
CENTRE_DISTANCE -> var10000 = .loadCentrePointEvaluator();
BORDER_DISTANCE -> var10000 = .loadBorderPointEvaluator();
-> ((String), (Throwable));
}
var10000;
}
PointEvaluator {
PointEvaluator.of(.loadPointDistanceFunction(), .loadDensity(), .loadDistanceRange(), .loadSkipCount(), .loadSkipMode(), .loadJitter());
}
PointEvaluator {
BorderPointEvaluator.INSTANCE;
.loadJitter();
(PointEvaluator)(jitter == DefaultCellJitter.DEFAULT_ONE ? pointEvaluator : (pointEvaluator, jitter));
}
PointDistanceFunction {
(.pointDistanceFunction != ) {
.pointDistanceFunction;
} {
CellNoiseJsonLoader.Constants.DEFAULT_DISTANCE_MODE;
(.has()) {
distanceCalculationMode = DistanceCalculationMode.valueOf(.get().getAsString());
}
distanceCalculationMode.getFunction();
}
}
IDoubleRange {
!.has() ? : ( (.seed, .dataFolder, .get())).load();
}
IDoubleCondition {
(!.has()) {
;
} {
( (.seed, .dataFolder, .get())).load();
(threshold);
}
}
{
.mustGetNumber(, ).intValue();
}
SkipCellPointEvaluator.Mode {
.mustGetString(, SkipCellPointEvaluator.DEFAULT_MODE.name());
SkipCellPointEvaluator.Mode.valueOf(name);
}
}