001 package org.bukkit;
002
003 import java.util.Map;
004
005 import com.google.common.collect.Maps;
006
007 /**
008 * Represents the different growth states of crops
009 */
010 public enum CropState {
011
012 /**
013 * State when first seeded
014 */
015 SEEDED(0x0),
016 /**
017 * First growth stage
018 */
019 GERMINATED(0x1),
020 /**
021 * Second growth stage
022 */
023 VERY_SMALL(0x2),
024 /**
025 * Third growth stage
026 */
027 SMALL(0x3),
028 /**
029 * Fourth growth stage
030 */
031 MEDIUM(0x4),
032 /**
033 * Fifth growth stage
034 */
035 TALL(0x5),
036 /**
037 * Almost ripe stage
038 */
039 VERY_TALL(0x6),
040 /**
041 * Ripe stage
042 */
043 RIPE(0x7);
044
045 private final byte data;
046 private final static Map<Byte, CropState> BY_DATA = Maps.newHashMap();
047
048 private CropState(final int data) {
049 this.data = (byte) data;
050 }
051
052 /**
053 * Gets the associated data value representing this growth state
054 *
055 * @return A byte containing the data value of this growth state
056 * @deprecated Magic value
057 */
058 @Deprecated
059 public byte getData() {
060 return data;
061 }
062
063 /**
064 * Gets the CropState with the given data value
065 *
066 * @param data Data value to fetch
067 * @return The {@link CropState} representing the given value, or null if
068 * it doesn't exist
069 * @deprecated Magic value
070 */
071 @Deprecated
072 public static CropState getByData(final byte data) {
073 return BY_DATA.get(data);
074 }
075
076 static {
077 for (CropState cropState : values()) {
078 BY_DATA.put(cropState.getData(), cropState);
079 }
080 }
081 }