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

package com.hypixel.hytale.procedurallib.property;

import javax.annotation.Nonnull;
import com.hypixel.hytale.procedurallib.logic.GeneralNoise;
import com.hypixel.hytale.procedurallib.NoiseFunction;

public class SingleNoiseProperty implements NoiseProperty
{
    protected final int seedOffset;
    protected final NoiseFunction function;
    
    public SingleNoiseProperty(final NoiseFunction function) {
        this(0, function);
    }
    
    public SingleNoiseProperty(final int seedOffset, final NoiseFunction function) {
        this.seedOffset = seedOffset;
        this.function = function;
    }
    
    public int getSeedOffset() {
        return this.seedOffset;
    }
    
    public NoiseFunction getFunction() {
        return this.function;
    }
    
    @Override
    public double get(final int seed, final double x, final double y) {
        return GeneralNoise.limit(this.function.get(seed, seed + this.seedOffset, x, y) * 0.5 + 0.5);
    }
    
    @Override
    public double get(final int seed, final double x, final double y, final double z) {
        return GeneralNoise.limit(this.function.get(seed, seed + this.seedOffset, x, y, z) * 0.5 + 0.5);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "SingleNoiseProperty{seedOffset=" + this.seedOffset + ", function=" + String.valueOf(this.function);
    }
}
