Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / material / FlowerPot.java
@vlad20012 vlad20012 on 24 Feb 2017 2 KB initial
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();
	}
}