Mekanism-tilera-Edition/common/mekanism/api/EnumColor.java
2014-04-11 03:32:52 +01:00

104 lines
2.8 KiB
Java

package mekanism.api;
import net.minecraft.util.StatCollector;
/**
* Simple color enum for adding colors to in-game GUI strings of text.
* @author AidanBrady
*
*/
public enum EnumColor
{
BLACK("\u00a70", "black", new int[] {0, 0, 0}, 0),
DARK_BLUE("\u00a71", "darkBlue", new int[] {0, 0, 170}, 4),
DARK_GREEN("\u00a72", "darkGreen", new int[] {0, 170, 0}, 2),
DARK_AQUA("\u00a73", "darkAqua", new int[] {0, 170, 170}, 6),
DARK_RED("\u00a74", "darkRed", new int[] {170, 0, 0}, -1),
PURPLE("\u00a75", "purple", new int[] {170, 0, 170}, 5),
ORANGE("\u00a76", "orange", new int[] {255, 170, 0}, 14),
GREY("\u00a77", "grey", new int[] {170, 170, 170}, 7),
DARK_GREY("\u00a78", "darkGrey", new int[] {85, 85, 85}, 8),
INDIGO("\u00a79", "indigo", new int[] {85, 85, 255}, 12),
BRIGHT_GREEN("\u00a7a", "brightGreen", new int[] {85, 255, 85}, 10),
AQUA("\u00a7b", "aqua", new int[] {85, 255, 255}, -1),
RED("\u00a7c", "red", new int[] {255, 0, 0}, 1),
PINK("\u00a7d", "pink", new int[] {255, 85, 255}, 13),
YELLOW("\u00a7e", "yellow", new int[] {255, 255, 85}, 11),
WHITE("\u00a7f", "white", new int[] {255, 255, 255}, 15),
//Extras for dye-completeness
BROWN("\u00a73", "brown", new int[] {150, 75, 0}, 3),
BRIGHT_PINK("\u00a7d", "brightPink", new int[] {255, 192, 203}, 9);
public static EnumColor[] DYES = new EnumColor[] {BLACK, RED, DARK_GREEN, BROWN, DARK_BLUE, PURPLE, DARK_AQUA, GREY, DARK_GREY, BRIGHT_PINK, BRIGHT_GREEN, YELLOW, INDIGO, PINK, ORANGE, WHITE};
/** The color code that will be displayed */
public final String code;
public final int[] rgbCode;
public final int mcMeta;
/** A friendly name of the color. */
public String unlocalizedName;
private EnumColor(String s, String n, int[] rgb, int meta)
{
code = s;
unlocalizedName = n;
rgbCode = rgb;
mcMeta = meta;
}
/**
* Gets the localized name of this color by translating the unlocalized name.
* @return localized name
*/
public String getLocalizedName()
{
return StatCollector.translateToLocal("color." + unlocalizedName);
}
public String getDyeName()
{
return StatCollector.translateToLocal("dye." + unlocalizedName);
}
/**
* Gets the name of this color with it's color prefix code.
* @return the color's name and color prefix
*/
public String getName()
{
return code + getLocalizedName();
}
public String getDyedName()
{
return code + getDyeName();
}
/**
* Gets the 0-1 of this color's RGB value by dividing by 255 (used for OpenGL coloring).
* @param index - R:0, G:1, B:2
* @return the color value
*/
public float getColor(int index)
{
return (float)rgbCode[index]/255F;
}
/**
* Gets the value of this color mapped to MC in-game item colors present in dyes and wool.
* @return mc meta value
*/
public int getMetaValue()
{
return mcMeta;
}
@Override
public String toString()
{
return code;
}
}