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 extends JsonLoader { public PerlinNoiseJsonLoader(@Nonnull SeedString 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; } }