Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
DyeColor.java
Go to the documentation of this file.
1 package org.bukkit;
2 
3 import java.util.Map;
4 
5 import com.google.common.collect.ImmutableMap;
6 
10 public enum DyeColor {
11 
15  WHITE(0x0, 0xF, Color.WHITE, Color.fromRGB(0xF0F0F0)),
19  ORANGE(0x1, 0xE, Color.fromRGB(0xD87F33), Color.fromRGB(0xEB8844)),
23  MAGENTA(0x2, 0xD, Color.fromRGB(0xB24CD8), Color.fromRGB(0xC354CD)),
27  LIGHT_BLUE(0x3, 0xC, Color.fromRGB(0x6699D8), Color.fromRGB(0x6689D3)),
31  YELLOW(0x4, 0xB, Color.fromRGB(0xE5E533), Color.fromRGB(0xDECF2A)),
35  LIME(0x5, 0xA, Color.fromRGB(0x7FCC19), Color.fromRGB(0x41CD34)),
39  PINK(0x6, 0x9, Color.fromRGB(0xF27FA5), Color.fromRGB(0xD88198)),
43  GRAY(0x7, 0x8, Color.fromRGB(0x4C4C4C), Color.fromRGB(0x434343)),
47  SILVER(0x8, 0x7, Color.fromRGB(0x999999), Color.fromRGB(0xABABAB)),
51  CYAN(0x9, 0x6, Color.fromRGB(0x4C7F99), Color.fromRGB(0x287697)),
55  PURPLE(0xA, 0x5, Color.fromRGB(0x7F3FB2), Color.fromRGB(0x7B2FBE)),
59  BLUE(0xB, 0x4, Color.fromRGB(0x334CB2), Color.fromRGB(0x253192)),
63  BROWN(0xC, 0x3, Color.fromRGB(0x664C33), Color.fromRGB(0x51301A)),
67  GREEN(0xD, 0x2, Color.fromRGB(0x667F33), Color.fromRGB(0x3B511A)),
71  RED(0xE, 0x1, Color.fromRGB(0x993333), Color.fromRGB(0xB3312C)),
75  BLACK(0xF, 0x0, Color.fromRGB(0x191919), Color.fromRGB(0x1E1B1B));
76 
77  private final byte woolData;
78  private final byte dyeData;
79  private final Color color;
80  private final Color firework;
81  private final static DyeColor[] BY_WOOL_DATA;
82  private final static DyeColor[] BY_DYE_DATA;
83  private final static Map<Color, DyeColor> BY_COLOR;
84  private final static Map<Color, DyeColor> BY_FIREWORK;
85 
86  private DyeColor(final int woolData, final int dyeData, Color color, Color firework) {
87  this.woolData = (byte) woolData;
88  this.dyeData = (byte) dyeData;
89  this.color = color;
90  this.firework = firework;
91  }
92 
101  @Deprecated
102  public byte getData() {
103  return getWoolData();
104  }
105 
112  public byte getWoolData() {
113  return woolData;
114  }
115 
122  public byte getDyeData() {
123  return dyeData;
124  }
125 
131  public Color getColor() {
132  return color;
133  }
134 
141  return firework;
142  }
143 
153  @Deprecated
154  public static DyeColor getByData(final byte data) {
155  return getByWoolData(data);
156  }
157 
165  public static DyeColor getByWoolData(final byte data) {
166  int i = 0xff & data;
167  if (i > BY_WOOL_DATA.length) {
168  return null;
169  }
170  return BY_WOOL_DATA[i];
171  }
172 
180  public static DyeColor getByDyeData(final byte data) {
181  int i = 0xff & data;
182  if (i > BY_DYE_DATA.length) {
183  return null;
184  }
185  return BY_DYE_DATA[i];
186  }
187 
194  public static DyeColor getByColor(final Color color) {
195  return BY_COLOR.get(color);
196  }
197 
204  public static DyeColor getByFireworkColor(final Color color) {
205  return BY_FIREWORK.get(color);
206  }
207 
208  static {
209  BY_WOOL_DATA = values();
210  BY_DYE_DATA = values();
211  ImmutableMap.Builder<Color, DyeColor> byColor = ImmutableMap.builder();
212  ImmutableMap.Builder<Color, DyeColor> byFirework = ImmutableMap.builder();
213 
214  for (DyeColor color : values()) {
215  BY_WOOL_DATA[color.woolData & 0xff] = color;
216  BY_DYE_DATA[color.dyeData & 0xff] = color;
217  byColor.put(color.getColor(), color);
218  byFirework.put(color.getFireworkColor(), color);
219  }
220 
221  BY_COLOR = byColor.build();
222  BY_FIREWORK = byFirework.build();
223  }
224 }