// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.procedurallib.json;

import com.hypixel.hytale.procedurallib.logic.GeneralNoise;
import com.google.gson.JsonElement;
import java.nio.file.Path;
import javax.annotation.Nonnull;
import com.hypixel.hytale.procedurallib.logic.ValueNoise;

public class ValueNoiseJsonLoader<K extends SeedResource> extends JsonLoader<K, ValueNoise>
{
    public ValueNoiseJsonLoader(@Nonnull final SeedString<K> seed, final Path dataFolder, final JsonElement json) {
        super(seed.append(".ValueNoise"), dataFolder, json);
    }
    
    @Nonnull
    @Override
    public ValueNoise load() {
        return new ValueNoise(this.loadInterpolationFunction());
    }
    
    protected GeneralNoise.InterpolationFunction loadInterpolationFunction() {
        GeneralNoise.InterpolationMode interpolationMode = Constants.DEFAULT_INTERPOLATION_MODE;
        if (this.has("InterpolationMode")) {
            interpolationMode = GeneralNoise.InterpolationMode.valueOf(this.get("InterpolationMode").getAsString());
        }
        return interpolationMode.getFunction();
    }
    
    public interface Constants
    {
        public static final String KEY_INTERPOLATION_MODE = "InterpolationMode";
        public static final GeneralNoise.InterpolationMode DEFAULT_INTERPOLATION_MODE = GeneralNoise.InterpolationMode.QUINTIC;
    }
}
