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}