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

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

import javax.annotation.Nullable;
import java.util.List;
import javax.annotation.Nonnull;

public class QueueMaterialProvider<V> extends MaterialProvider<V>
{
    @Nonnull
    private final MaterialProvider<V>[] queue;
    
    public QueueMaterialProvider(@Nonnull final List<MaterialProvider<V>> queue) {
        this.queue = new MaterialProvider[queue.size()];
        for (int i = 0; i < queue.size(); ++i) {
            final MaterialProvider<V> l = queue.get(i);
            if (l == null) {
                throw new IllegalArgumentException("null element in layers");
            }
            this.queue[i] = l;
        }
    }
    
    @Nullable
    @Override
    public V getVoxelTypeAt(@Nonnull final Context context) {
        for (final MaterialProvider<V> layer : this.queue) {
            final V material = layer.getVoxelTypeAt(context);
            if (material != null) {
                return material;
            }
        }
        return null;
    }
}
