001package fr.aumgn.dac2.shape.column;
002
003import java.util.List;
004
005import org.bukkit.World;
006
007import com.google.common.base.Function;
008import com.google.common.collect.Lists;
009
010import fr.aumgn.bukkitutils.util.Util;
011import fr.aumgn.dac2.config.Color;
012
013public class RandomPattern implements ColumnPattern {
014
015    private final ColumnPattern[] patterns;
016
017    public static RandomPattern fromColors(List<Color> colors) {
018        return new RandomPattern(Lists.transform(colors,
019                new Function<Color, ColumnPattern>() {
020                    @Override
021                    public ColumnPattern apply(Color color) {
022                        return new UniformPattern(color);
023                    }
024                }));
025    }
026
027    public RandomPattern(List<ColumnPattern> patterns) {
028        this.patterns = patterns.toArray(new ColumnPattern[patterns.size()]);
029    }
030
031    @Override
032    public void apply(World world, Column column) {
033        int index = Util.getRandom().nextInt(patterns.length);
034        patterns[index].apply(world, column);
035    }
036}