import java.util.HashMap; import java.util.Map; /** * * @author Meaglin */ public class Cloth { public enum Color { WHITE("white", 0), // ORANGE("Orange", 1), // MAGENTA("Magenta", 2), // LIGHT_BLUE("Light Blue", 3), // YELLOW("Yellow", 4), // LIGHT_GREEN("Light Green", 5), // PINK("Pink", 6), // GRAY("Gray", 7), // LIGHT_GRAY("Light Gray", 8), // CYAN("Cyan", 9), // PURPLE("Purple", 10), // BLUE("Blue", 11), // BROWN("Brown", 12), // DARK_GREEN("Dark Green", 13), // RED("Red", 14), // BLACK("Black", 15); private String name; private int data; private static Color[] colors; private static Map<String, Color> colorMap; private Color(String name, int data) { this.name = name; this.data = data; add(data, this); } private static void add(int data, Color color) { if (colors == null) colors = new Color[16]; if (colorMap == null) colorMap = new HashMap<String, Color>(); colors[data] = color; colorMap.put(color.getName().toLowerCase(), color); } public static Color getColor(int data) { if (data < 0 || data > 15) return null; else return colors[data]; } public static Color getColor(String name) { return colorMap.get(name); } public int getData() { return data; } public String getName() { return name; } public Block getBlock() { return new Block(Block.Type.Cloth, getData()); } public Item getItem() { return new Item(Item.Type.Cloth, 1, -1, getData()); } } }