package codechicken.lib.colour;
import codechicken.lib.math.MathHelper;
import codechicken.lib.render.TextureUtils;
import net.minecraft.util.ResourceLocation;
import java.awt.image.BufferedImage;
public class CustomGradient {
public int[] gradient;
public CustomGradient(ResourceLocation textureFile) {
BufferedImage img = TextureUtils.loadBufferedImage(textureFile);
if (img == null) {
throw new RuntimeException("File not found: " + textureFile.toString());
}
int[] data = new int[img.getWidth()];
img.getRGB(0, 0, img.getWidth(), 1, data, 0, img.getWidth());
gradient = new int[img.getWidth()];
for (int i = 0; i < data.length; i++) {
gradient[i] = (data[i] << 8) | (((data[i]) >> 24) & 0xFF);
}
}
public ColourRGBA getColour(double position) {
return new ColourRGBA(getColourI(position));
}
public int getColourI(double position) {
int off = (int) MathHelper.clip(gradient.length * position, 0, gradient.length - 1);
return gradient[off];
}
}