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 }