Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / Art.java
@vlad20012 vlad20012 on 24 Feb 2017 2 KB initial
package org.bukkit;

import com.google.common.collect.Maps;
import org.apache.commons.lang.Validate;

import java.util.HashMap;

/**
 * Represents the art on a painting
 */
public enum Art
{
	KEBAB(0, 1, 1),
	AZTEC(1, 1, 1),
	ALBAN(2, 1, 1),
	AZTEC2(3, 1, 1),
	BOMB(4, 1, 1),
	PLANT(5, 1, 1),
	WASTELAND(6, 1, 1),
	POOL(7, 2, 1),
	COURBET(8, 2, 1),
	SEA(9, 2, 1),
	SUNSET(10, 2, 1),
	CREEBET(11, 2, 1),
	WANDERER(12, 1, 2),
	GRAHAM(13, 1, 2),
	MATCH(14, 2, 2),
	BUST(15, 2, 2),
	STAGE(16, 2, 2),
	VOID(17, 2, 2),
	SKULL_AND_ROSES(18, 2, 2),
	WITHER(19, 2, 2),
	FIGHTERS(20, 4, 2),
	POINTER(21, 4, 4),
	PIGSCENE(22, 4, 4),
	BURNINGSKULL(23, 4, 4),
	SKELETON(24, 4, 3),
	DONKEYKONG(25, 4, 3);

	private int id, width, height;
	private static final HashMap<String, Art> BY_NAME = Maps.newHashMap();
	private static final HashMap<Integer, Art> BY_ID = Maps.newHashMap();

	private Art(int id, int width, int height)
	{
		this.id = id;
		this.width = width;
		this.height = height;
	}

	/**
	 * Gets the width of the painting, in blocks
	 *
	 * @return The width of the painting, in blocks
	 */
	public int getBlockWidth()
	{
		return width;
	}

	/**
	 * Gets the height of the painting, in blocks
	 *
	 * @return The height of the painting, in blocks
	 */
	public int getBlockHeight()
	{
		return height;
	}

	/**
	 * Get the ID of this painting.
	 *
	 * @return The ID of this painting
	 * @deprecated Magic value
	 */
	@Deprecated
	public int getId()
	{
		return id;
	}

	/**
	 * Get a painting by its numeric ID
	 *
	 * @param id The ID
	 * @return The painting
	 * @deprecated Magic value
	 */
	@Deprecated
	public static Art getById(int id)
	{
		return BY_ID.get(id);
	}

	/**
	 * Get a painting by its unique name
	 * <p>
	 * This ignores underscores and capitalization
	 *
	 * @param name The name
	 * @return The painting
	 */
	public static Art getByName(String name)
	{
		Validate.notNull(name, "Name cannot be null");

		return BY_NAME.get(name.toLowerCase().replaceAll("_", ""));
	}

	static
	{
		for(Art art : values())
		{
			BY_ID.put(art.id, art);
			BY_NAME.put(art.toString().toLowerCase().replaceAll("_", ""), art);
		}
	}
}