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

package com.hypixel.hytale.procedurallib.property;

import javax.annotation.Nonnull;
import java.util.Arrays;

public class MaxNoiseProperty implements NoiseProperty
{
    public static final double MAX_EPSILON = 0.999999;
    protected final NoiseProperty[] noiseProperties;
    
    public MaxNoiseProperty(final NoiseProperty[] noiseProperties) {
        this.noiseProperties = noiseProperties;
    }
    
    public NoiseProperty[] getNoiseProperties() {
        return this.noiseProperties;
    }
    
    @Override
    public double get(final int seed, final double x, final double y) {
        double val = this.noiseProperties[0].get(seed, x, y);
        for (int i = 1; i < this.noiseProperties.length; ++i) {
            if (val > 0.999999) {
                return 1.0;
            }
            final double d;
            if (val < (d = this.noiseProperties[i].get(seed, x, y))) {
                val = d;
            }
        }
        return val;
    }
    
    @Override
    public double get(final int seed, final double x, final double y, final double z) {
        double val = this.noiseProperties[0].get(seed, x, y, z);
        for (int i = 1; i < this.noiseProperties.length; ++i) {
            if (val > 0.999999) {
                return 1.0;
            }
            final double d;
            if (val < (d = this.noiseProperties[i].get(seed, x, y, z))) {
                val = d;
            }
        }
        return val;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "MaxNoiseProperty{noiseProperties=" + Arrays.toString(this.noiseProperties);
    }
}
