001 package org.bukkit;
002
003 import java.util.Map;
004
005 import com.google.common.collect.Maps;
006
007 /**
008 * Represents the different species of trees regardless of size.
009 */
010 public enum TreeSpecies {
011
012 /**
013 * Represents the common tree species.
014 */
015 GENERIC(0x0),
016 /**
017 * Represents the darker barked/leaved tree species.
018 */
019 REDWOOD(0x1),
020 /**
021 * Represents birches.
022 */
023 BIRCH(0x2),
024 /**
025 * Represents jungle trees.
026 */
027 JUNGLE(0x3),
028 /**
029 * Represents acacia trees.
030 */
031 ACACIA(0x4),
032 /**
033 * Represents dark oak trees.
034 */
035 DARK_OAK(0x5),
036 ;
037
038 private final byte data;
039 private final static Map<Byte, TreeSpecies> BY_DATA = Maps.newHashMap();
040
041 private TreeSpecies(final int data) {
042 this.data = (byte) data;
043 }
044
045 /**
046 * Gets the associated data value representing this species
047 *
048 * @return A byte containing the data value of this tree species
049 * @deprecated Magic value
050 */
051 @Deprecated
052 public byte getData() {
053 return data;
054 }
055
056 /**
057 * Gets the TreeSpecies with the given data value
058 *
059 * @param data Data value to fetch
060 * @return The {@link TreeSpecies} representing the given value, or null
061 * if it doesn't exist
062 * @deprecated Magic value
063 */
064 @Deprecated
065 public static TreeSpecies getByData(final byte data) {
066 return BY_DATA.get(data);
067 }
068
069 static {
070 for (TreeSpecies species : values()) {
071 BY_DATA.put(species.data, species);
072 }
073 }
074 }