001 package org.bukkit; 002 003 import java.util.HashMap; 004 005 import org.apache.commons.lang.Validate; 006 007 import com.google.common.collect.Maps; 008 009 /** 010 * Represents the art on a painting 011 */ 012 public enum Art { 013 KEBAB(0, 1, 1), 014 AZTEC(1, 1, 1), 015 ALBAN(2, 1, 1), 016 AZTEC2(3, 1, 1), 017 BOMB(4, 1, 1), 018 PLANT(5, 1, 1), 019 WASTELAND(6, 1, 1), 020 POOL(7, 2, 1), 021 COURBET(8, 2, 1), 022 SEA(9, 2, 1), 023 SUNSET(10, 2, 1), 024 CREEBET(11, 2, 1), 025 WANDERER(12, 1, 2), 026 GRAHAM(13, 1, 2), 027 MATCH(14, 2, 2), 028 BUST(15, 2, 2), 029 STAGE(16, 2, 2), 030 VOID(17, 2, 2), 031 SKULL_AND_ROSES(18, 2, 2), 032 WITHER(19, 2, 2), 033 FIGHTERS(20, 4, 2), 034 POINTER(21, 4, 4), 035 PIGSCENE(22, 4, 4), 036 BURNINGSKULL(23, 4, 4), 037 SKELETON(24, 4, 3), 038 DONKEYKONG(25, 4, 3); 039 040 private int id, width, height; 041 private static final HashMap<String, Art> BY_NAME = Maps.newHashMap(); 042 private static final HashMap<Integer, Art> BY_ID = Maps.newHashMap(); 043 044 private Art(int id, int width, int height) { 045 this.id = id; 046 this.width = width; 047 this.height = height; 048 } 049 050 /** 051 * Gets the width of the painting, in blocks 052 * 053 * @return The width of the painting, in blocks 054 */ 055 public int getBlockWidth() { 056 return width; 057 } 058 059 /** 060 * Gets the height of the painting, in blocks 061 * 062 * @return The height of the painting, in blocks 063 */ 064 public int getBlockHeight() { 065 return height; 066 } 067 068 /** 069 * Get the ID of this painting. 070 * 071 * @return The ID of this painting 072 * @deprecated Magic value 073 */ 074 @Deprecated 075 public int getId() { 076 return id; 077 } 078 079 /** 080 * Get a painting by its numeric ID 081 * 082 * @param id The ID 083 * @return The painting 084 * @deprecated Magic value 085 */ 086 @Deprecated 087 public static Art getById(int id) { 088 return BY_ID.get(id); 089 } 090 091 /** 092 * Get a painting by its unique name 093 * <p> 094 * This ignores underscores and capitalization 095 * 096 * @param name The name 097 * @return The painting 098 */ 099 public static Art getByName(String name) { 100 Validate.notNull(name, "Name cannot be null"); 101 102 return BY_NAME.get(name.toLowerCase().replaceAll("_", "")); 103 } 104 105 static { 106 for (Art art : values()) { 107 BY_ID.put(art.id, art); 108 BY_NAME.put(art.toString().toLowerCase().replaceAll("_", ""), art); 109 } 110 } 111 }