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

package com.hypixel.hytale.procedurallib.property;

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

public class NormalizeNoiseProperty implements NoiseProperty
{
    protected final NoiseProperty noiseProperty;
    protected final double min;
    protected final double range;
    
    public NormalizeNoiseProperty(final NoiseProperty noiseProperty, final double min, final double range) {
        this.noiseProperty = noiseProperty;
        this.min = min;
        this.range = range;
    }
    
    public NoiseProperty getNoiseProperty() {
        return this.noiseProperty;
    }
    
    public double getMin() {
        return this.min;
    }
    
    public double getRange() {
        return this.range;
    }
    
    @Override
    public double get(final int seed, final double x, final double y) {
        return GeneralNoise.limit((this.noiseProperty.get(seed, x, y) - this.min) / this.range);
    }
    
    @Override
    public double get(final int seed, final double x, final double y, final double z) {
        return GeneralNoise.limit((this.noiseProperty.get(seed, x, y, z) - this.min) / this.range);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "NormalizeNoiseProperty{noiseProperty=" + String.valueOf(this.noiseProperty) + ", min=" + this.min + ", range=" + this.range;
    }
}
