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

package com.hypixel.hytale.builtin.hytalegenerator.environmentproviders;

import com.hypixel.hytale.builtin.hytalegenerator.delimiters.RangeDouble;
import java.util.Iterator;
import java.util.ArrayList;
import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
import javax.annotation.Nonnull;
import com.hypixel.hytale.builtin.hytalegenerator.delimiters.DelimiterDouble;
import java.util.List;

public class DensityDelimitedEnvironmentProvider extends EnvironmentProvider
{
    @Nonnull
    private final List<DelimiterDouble<EnvironmentProvider>> delimiters;
    @Nonnull
    private final Density density;
    
    public DensityDelimitedEnvironmentProvider(@Nonnull final List<DelimiterDouble<EnvironmentProvider>> delimiters, @Nonnull final Density density) {
        this.delimiters = new ArrayList<DelimiterDouble<EnvironmentProvider>>();
        for (final DelimiterDouble<EnvironmentProvider> delimiter : delimiters) {
            final RangeDouble range = delimiter.getRange();
            if (range.min() >= range.max()) {
                continue;
            }
            this.delimiters.add(delimiter);
        }
        this.density = density;
    }
    
    @Override
    public int getValue(@Nonnull final Context context) {
        final double densityValue = this.density.process(new Density.Context(context));
        for (final DelimiterDouble<EnvironmentProvider> delimiter : this.delimiters) {
            if (delimiter.getRange().contains(densityValue)) {
                return delimiter.getValue().getValue(context);
            }
        }
        return 0;
    }
}
