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

package com.hypixel.hytale.procedurallib.property;

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

public class MultiplyNoiseProperty implements NoiseProperty
{
    protected final NoiseProperty[] noiseProperties;
    
    public MultiplyNoiseProperty(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) {
            val *= this.noiseProperties[i].get(seed, x, y);
        }
        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) {
            val *= this.noiseProperties[i].get(seed, x, y, z);
        }
        return val;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "MultiplyNoiseProperty{noiseProperties=" + Arrays.toString(this.noiseProperties);
    }
}
