/**
* Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
* <p/>
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.core.lib.utils;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
public final class ColorUtils {
private static final int[] WOOL_TO_RGB = new int[]{
0xFAFAFA, 0xD87F33, 0xB24CD8, 0x6699D8,
0xE5E533, 0x7FCC19, 0xF27FA5, 0x4C4C4C,
0x999999, 0x4C7F99, 0x7F3FB2, 0x334CB2,
0x664C33, 0x667F33, 0x993333, 0x191919
};
private static final String[] WOOL_TO_NAME = new String[]{
"white", "orange", "magenta", "light.blue",
"yellow", "lime", "pink", "gray",
"light.gray", "cyan", "purple", "blue",
"brown", "green", "red", "black"
};
private static final String[] OREDICT_DYE_NAMES = new String[]{
"dyeWhite", "dyeOrange", "dyeMagenta", "dyeLightBlue",
"dyeYellow", "dyeLime", "dyePink", "dyeGray",
"dyeLightGray", "dyeCyan", "dyePurple", "dyeBlue",
"dyeBrown", "dyeGreen", "dyeRed", "dyeBlack"
};
private static final int[] OREDICT_DYE_IDS = new int[16];
private static final char[] WOOL_TO_CHAT = new char[]{
'f', '6', 'd', '9', 'e', 'a', 'd', '8',
'7', '3', '5', '1', '6', '2', '4', '0'
};
private ColorUtils() {
}
public static void initialize() {
for (int i = 0; i < 16; i++) {
OREDICT_DYE_IDS[i] = OreDictionary.getOreID(OREDICT_DYE_NAMES[i]);
}
}
public static int getColorIDFromDye(ItemStack stack) {
if (stack == null || stack.getItem() == null) {
return -1;
}
if (stack.getItem() == Items.dye) {
return 15 - stack.getItemDamage();
}
int[] itemOreIDs = OreDictionary.getOreIDs(stack);
for (int i = 0; i < 16; i++) {
for (int id : itemOreIDs) {
if (i == id) {
return i;
}
}
}
return -1;
}
public static boolean isDye(ItemStack stack) {
return getColorIDFromDye(stack) >= 0;
}
public static int getRGBColor(int wool) {
return WOOL_TO_RGB[wool & 15];
}
public static String getName(int wool) {
return WOOL_TO_NAME[wool & 15];
}
public static String getOreDictionaryName(int wool) {
return OREDICT_DYE_NAMES[wool & 15];
}
public static String getFormatting(int wool) {
return "\u00a7" + WOOL_TO_CHAT[wool & 15];
}
public static String getFormattingTooltip(int wool) {
return "\u00a7" + (WOOL_TO_CHAT[wool & 15] == '0' ? '8' : WOOL_TO_CHAT[wool & 15]);
}
}