001 package org.bukkit.material;
002
003 import org.bukkit.Material;
004 import org.bukkit.NetherWartsState;
005
006 /**
007 * Represents nether wart
008 */
009 public class NetherWarts extends MaterialData {
010 public NetherWarts() {
011 super(Material.NETHER_WARTS);
012 }
013
014 public NetherWarts(NetherWartsState state) {
015 this();
016 setState(state);
017 }
018
019 /**
020 *
021 * @deprecated Magic value
022 */
023 @Deprecated
024 public NetherWarts(final int type) {
025 super(type);
026 }
027
028 public NetherWarts(final Material type) {
029 super (type);
030 }
031
032 /**
033 *
034 * @deprecated Magic value
035 */
036 @Deprecated
037 public NetherWarts(final int type, final byte data) {
038 super(type, data);
039 }
040
041 /**
042 *
043 * @deprecated Magic value
044 */
045 @Deprecated
046 public NetherWarts(final Material type, final byte data) {
047 super(type, data);
048 }
049
050 /**
051 * Gets the current growth state of this nether wart
052 *
053 * @return NetherWartsState of this nether wart
054 */
055 public NetherWartsState getState() {
056 switch (getData()) {
057 case 0:
058 return NetherWartsState.SEEDED;
059 case 1:
060 return NetherWartsState.STAGE_ONE;
061 case 2:
062 return NetherWartsState.STAGE_TWO;
063 default:
064 return NetherWartsState.RIPE;
065 }
066 }
067
068 /**
069 * Sets the growth state of this nether wart
070 *
071 * @param state New growth state of this nether wart
072 */
073 public void setState(NetherWartsState state) {
074 switch (state) {
075 case SEEDED:
076 setData((byte) 0x0);
077 return;
078 case STAGE_ONE:
079 setData((byte) 0x1);
080 return;
081 case STAGE_TWO:
082 setData((byte) 0x2);
083 return;
084 case RIPE:
085 setData((byte) 0x3);
086 return;
087 }
088 }
089
090 @Override
091 public String toString() {
092 return getState() + " " + super.toString();
093 }
094
095 @Override
096 public NetherWarts clone() {
097 return (NetherWarts) super.clone();
098 }
099 }