001 package org.bukkit.material;
002
003 import org.bukkit.Material;
004 import org.bukkit.TreeSpecies;
005
006 /**
007 * Represents the different types of leaves.
008 */
009 public class Leaves extends MaterialData {
010 public Leaves() {
011 super(Material.LEAVES);
012 }
013
014 public Leaves(TreeSpecies species) {
015 this();
016 setSpecies(species);
017 }
018
019 /**
020 *
021 * @deprecated Magic value
022 */
023 @Deprecated
024 public Leaves(final int type) {
025 super(type);
026 }
027
028 public Leaves(final Material type) {
029 super(type);
030 }
031
032 /**
033 *
034 * @deprecated Magic value
035 */
036 @Deprecated
037 public Leaves(final int type, final byte data) {
038 super(type, data);
039 }
040
041 /**
042 *
043 * @deprecated Magic value
044 */
045 @Deprecated
046 public Leaves(final Material type, final byte data) {
047 super(type, data);
048 }
049
050 /**
051 * Gets the current species of this leave
052 *
053 * @return TreeSpecies of this leave
054 */
055 public TreeSpecies getSpecies() {
056 return TreeSpecies.getByData((byte) (getData() & 3));
057 }
058
059 /**
060 * Sets the species of this leave
061 *
062 * @param species New species of this leave
063 */
064 public void setSpecies(TreeSpecies species) {
065 setData(species.getData());
066 }
067
068 @Override
069 public String toString() {
070 return getSpecies() + " " + super.toString();
071 }
072
073 @Override
074 public Leaves clone() {
075 return (Leaves) super.clone();
076 }
077 }