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]; } }