34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
package com.hypixel.hytale.procedurallib.json;
|
|
|
|
import com.google.gson.JsonElement;
|
|
import com.hypixel.hytale.procedurallib.NoiseFunction;
|
|
import com.hypixel.hytale.procedurallib.logic.GeneralNoise;
|
|
import com.hypixel.hytale.procedurallib.logic.PerlinNoise;
|
|
import java.nio.file.Path;
|
|
import javax.annotation.Nonnull;
|
|
|
|
public class PerlinNoiseJsonLoader<K extends SeedResource> extends JsonLoader<K, NoiseFunction> {
|
|
public PerlinNoiseJsonLoader(@Nonnull SeedString<K> seed, Path dataFolder, JsonElement json) {
|
|
super(seed.append(".PerlinNoise"), dataFolder, json);
|
|
}
|
|
|
|
@Nonnull
|
|
public NoiseFunction load() {
|
|
return new PerlinNoise(this.loadInterpolationFunction());
|
|
}
|
|
|
|
protected GeneralNoise.InterpolationFunction loadInterpolationFunction() {
|
|
GeneralNoise.InterpolationMode interpolationMode = PerlinNoiseJsonLoader.Constants.DEFAULT_INTERPOLATION_MODE;
|
|
if (this.has("InterpolationMode")) {
|
|
interpolationMode = GeneralNoise.InterpolationMode.valueOf(this.get("InterpolationMode").getAsString());
|
|
}
|
|
|
|
return interpolationMode.getFunction();
|
|
}
|
|
|
|
public interface Constants {
|
|
String KEY_INTERPOLATION_MODE = "InterpolationMode";
|
|
GeneralNoise.InterpolationMode DEFAULT_INTERPOLATION_MODE = GeneralNoise.InterpolationMode.QUINTIC;
|
|
}
|
|
}
|