package amidst.fragment.colorprovider; import amidst.documentation.ThreadSafe; import amidst.fragment.Fragment; import amidst.gui.main.viewer.BiomeSelection; import amidst.mojangapi.world.Dimension; import amidst.mojangapi.world.biome.BiomeColor; import amidst.settings.biomeprofile.BiomeProfileSelection; @ThreadSafe public class BiomeColorProvider implements ColorProvider { private final BiomeSelection biomeSelection; private final BiomeProfileSelection biomeProfileSelection; public BiomeColorProvider(BiomeSelection biomeSelection, BiomeProfileSelection biomeProfileSelection) { this.biomeSelection = biomeSelection; this.biomeProfileSelection = biomeProfileSelection; } @Override public int getColorAt(Dimension dimension, Fragment fragment, long cornerX, long cornerY, int x, int y) { return getColor(fragment.getBiomeDataAt(x, y)); } private int getColor(int biomeIndex) { if (biomeSelection.isSelected(biomeIndex)) { return getBiomeColor(biomeIndex).getRGB(); } else { return getBiomeColor(biomeIndex).getDeselectRGB(); } } private BiomeColor getBiomeColor(int biomeIndex) { return biomeProfileSelection.getBiomeColorOrUnknown(biomeIndex); } }