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