package org.bukkit.material; import org.bukkit.GrassSpecies; import org.bukkit.Material; import org.bukkit.TreeSpecies; /** * Represents a flower pot. */ public class FlowerPot extends MaterialData { /** * Default constructor for a flower pot. */ public FlowerPot() { super(Material.FLOWER_POT); } /** * @deprecated Magic value */ @Deprecated public FlowerPot(final int type) { super(type); } public FlowerPot(final Material type) { super(type); } /** * @deprecated Magic value */ @Deprecated public FlowerPot(final int type, final byte data) { super(type, data); } /** * @deprecated Magic value */ @Deprecated public FlowerPot(final Material type, final byte data) { super(type, data); } /** * Get the material in the flower pot * * @return material MaterialData for the block currently in the flower pot * or null if empty */ public MaterialData getContents() { switch(getData()) { case 1: return new MaterialData(Material.RED_ROSE); case 2: return new MaterialData(Material.YELLOW_FLOWER); case 3: return new Tree(TreeSpecies.GENERIC); case 4: return new Tree(TreeSpecies.REDWOOD); case 5: return new Tree(TreeSpecies.BIRCH); case 6: return new Tree(TreeSpecies.JUNGLE); case 7: return new MaterialData(Material.RED_MUSHROOM); case 8: return new MaterialData(Material.BROWN_MUSHROOM); case 9: return new MaterialData(Material.CACTUS); case 10: return new MaterialData(Material.DEAD_BUSH); case 11: return new LongGrass(GrassSpecies.FERN_LIKE); default: return null; } } /** * Set the contents of the flower pot * * @param materialData MaterialData of the block to put in the flower pot. */ public void setContents(MaterialData materialData) { Material mat = materialData.getItemType(); if(mat == Material.RED_ROSE) { setData((byte) 1); } else if(mat == Material.YELLOW_FLOWER) { setData((byte) 2); } else if(mat == Material.RED_MUSHROOM) { setData((byte) 7); } else if(mat == Material.BROWN_MUSHROOM) { setData((byte) 8); } else if(mat == Material.CACTUS) { setData((byte) 9); } else if(mat == Material.DEAD_BUSH) { setData((byte) 10); } else if(mat == Material.SAPLING) { TreeSpecies species = ((Tree) materialData).getSpecies(); if(species == TreeSpecies.GENERIC) { setData((byte) 3); } else if(species == TreeSpecies.REDWOOD) { setData((byte) 4); } else if(species == TreeSpecies.BIRCH) { setData((byte) 5); } else { setData((byte) 6); } } else if(mat == Material.LONG_GRASS) { GrassSpecies species = ((LongGrass) materialData).getSpecies(); if(species == GrassSpecies.FERN_LIKE) { setData((byte) 11); } } } @Override public String toString() { return super.toString() + " containing " + getContents(); } @Override public FlowerPot clone() { return (FlowerPot) super.clone(); } }