001 package org.bukkit.material;
002
003 import org.bukkit.GrassSpecies;
004 import org.bukkit.Material;
005 import org.bukkit.TreeSpecies;
006
007 /**
008 * Represents a flower pot.
009 */
010 public class FlowerPot extends MaterialData {
011
012 /**
013 * Default constructor for a flower pot.
014 */
015 public FlowerPot() {
016 super(Material.FLOWER_POT);
017 }
018
019 /**
020 *
021 * @deprecated Magic value
022 */
023 @Deprecated
024 public FlowerPot(final int type) {
025 super(type);
026 }
027
028 public FlowerPot(final Material type) {
029 super(type);
030 }
031
032 /**
033 *
034 * @deprecated Magic value
035 */
036 @Deprecated
037 public FlowerPot(final int type, final byte data) {
038 super(type, data);
039 }
040
041 /**
042 *
043 * @deprecated Magic value
044 */
045 @Deprecated
046 public FlowerPot(final Material type, final byte data) {
047 super(type, data);
048 }
049
050 /**
051 * Get the material in the flower pot
052 *
053 * @return material MaterialData for the block currently in the flower pot
054 * or null if empty
055 */
056 public MaterialData getContents() {
057 switch (getData()) {
058 case 1:
059 return new MaterialData(Material.RED_ROSE);
060 case 2:
061 return new MaterialData(Material.YELLOW_FLOWER);
062 case 3:
063 return new Tree(TreeSpecies.GENERIC);
064 case 4:
065 return new Tree(TreeSpecies.REDWOOD);
066 case 5:
067 return new Tree(TreeSpecies.BIRCH);
068 case 6:
069 return new Tree(TreeSpecies.JUNGLE);
070 case 7:
071 return new MaterialData(Material.RED_MUSHROOM);
072 case 8:
073 return new MaterialData(Material.BROWN_MUSHROOM);
074 case 9:
075 return new MaterialData(Material.CACTUS);
076 case 10:
077 return new MaterialData(Material.DEAD_BUSH);
078 case 11:
079 return new LongGrass(GrassSpecies.FERN_LIKE);
080 default:
081 return null;
082 }
083 }
084
085 /**
086 * Set the contents of the flower pot
087 *
088 * @param materialData MaterialData of the block to put in the flower pot.
089 */
090 public void setContents(MaterialData materialData) {
091 Material mat = materialData.getItemType();
092
093 if (mat == Material.RED_ROSE) {
094 setData((byte) 1);
095 } else if (mat == Material.YELLOW_FLOWER) {
096 setData((byte) 2);
097 } else if (mat == Material.RED_MUSHROOM) {
098 setData((byte) 7);
099 } else if (mat == Material.BROWN_MUSHROOM) {
100 setData((byte) 8);
101 } else if (mat == Material.CACTUS) {
102 setData((byte) 9);
103 } else if (mat == Material.DEAD_BUSH) {
104 setData((byte) 10);
105 } else if (mat == Material.SAPLING) {
106 TreeSpecies species = ((Tree) materialData).getSpecies();
107
108 if (species == TreeSpecies.GENERIC) {
109 setData((byte) 3);
110 } else if (species == TreeSpecies.REDWOOD) {
111 setData((byte) 4);
112 } else if (species == TreeSpecies.BIRCH) {
113 setData((byte) 5);
114 } else {
115 setData((byte) 6);
116 }
117 } else if (mat == Material.LONG_GRASS) {
118 GrassSpecies species = ((LongGrass) materialData).getSpecies();
119
120 if (species == GrassSpecies.FERN_LIKE) {
121 setData((byte) 11);
122 }
123 }
124 }
125
126 @Override
127 public String toString() {
128 return super.toString() + " containing " + getContents();
129 }
130
131 @Override
132 public FlowerPot clone() {
133 return (FlowerPot) super.clone();
134 }
135 }