Allow particles to be looked up using their name

This commit is contained in:
Dan Mulloy 2015-06-21 16:31:55 -04:00
parent 3f5abe8719
commit 63babc4ca1

View File

@ -168,63 +168,80 @@ public abstract class EnumWrappers {
} }
public enum Particle { public enum Particle {
EXPLOSION_NORMAL(0, true), EXPLOSION_NORMAL("explode", 0, true),
EXPLOSION_LARGE(1, true), EXPLOSION_LARGE("largeexplode", 1, true),
EXPLOSION_HUGE(2, true), EXPLOSION_HUGE("hugeexplosion", 2, true),
FIREWORKS_SPARK(3, false), FIREWORKS_SPARK("fireworksSpark", 3, false),
WATER_BUBBLE(4, false), WATER_BUBBLE("bubble", 4, false),
WATER_SPLASH(5, false), WATER_SPLASH("splash", 5, false),
WATER_WAKE(6, false), WATER_WAKE("wake", 6, false),
SUSPENDED(7, false), SUSPENDED("suspended", 7, false),
SUSPENDED_DEPTH(8, false), SUSPENDED_DEPTH("depthsuspend", 8, false),
CRIT(9, false), CRIT("crit", 9, false),
CRIT_MAGIC(10, false), CRIT_MAGIC("magicCrit", 10, false),
SMOKE_NORMAL(11, false), SMOKE_NORMAL("smoke", 11, false),
SMOKE_LARGE(12, false), SMOKE_LARGE("largesmoke", 12, false),
SPELL(13, false), SPELL("spell", 13, false),
SPELL_INSTANT(14, false), SPELL_INSTANT("instantSpell", 14, false),
SPELL_MOB(15, false), SPELL_MOB("mobSpell", 15, false),
SPELL_MOB_AMBIENT(16, false), SPELL_MOB_AMBIENT("mobSpellAmbient", 16, false),
SPELL_WITCH(17, false), SPELL_WITCH("witchMagic", 17, false),
DRIP_WATER(18, false), DRIP_WATER("dripWater", 18, false),
DRIP_LAVA(19, false), DRIP_LAVA("dripLava", 19, false),
VILLAGER_ANGRY(20, false), VILLAGER_ANGRY("angryVillager", 20, false),
VILLAGER_HAPPY(21, false), VILLAGER_HAPPY("happyVillager", 21, false),
TOWN_AURA(22, false), TOWN_AURA("townaura", 22, false),
NOTE(23, false), NOTE("note", 23, false),
PORTAL(24, false), PORTAL("portal", 24, false),
ENCHANTMENT_TABLE(25, false), ENCHANTMENT_TABLE("enchantmenttable", 25, false),
FLAME(26, false), FLAME("flame", 26, false),
LAVA(27, false), LAVA("lava", 27, false),
FOOTSTEP(28, false), FOOTSTEP("footstep", 28, false),
CLOUD(29, false), CLOUD("cloud", 29, false),
REDSTONE(30, false), REDSTONE("reddust", 30, false),
SNOWBALL(31, false), SNOWBALL("snowballpoof", 31, false),
SNOW_SHOVEL(32, false), SNOW_SHOVEL("snowshovel", 32, false),
SLIME(33, false), SLIME("slime", 33, false),
HEART(34, false), HEART("heart", 34, false),
BARRIER(35, false), BARRIER("barrier", 35, false),
ITEM_CRACK(36, false), ITEM_CRACK("iconcrack_", 36, false, 2),
BLOCK_CRACK(37, false), BLOCK_CRACK("blockcrack_", 37, false, 1),
BLOCK_DUST(38, false), BLOCK_DUST("blockdust_", 38, false, 1),
WATER_DROP(39, false), WATER_DROP("droplet", 39, false),
ITEM_TAKE(40, false), ITEM_TAKE("take", 40, false),
MOB_APPEARANCE(41, true); MOB_APPEARANCE("mobappearance", 41, true);
private static final Map<String, Particle> BY_NAME;
private static final Map<Integer, Particle> BY_ID; private static final Map<Integer, Particle> BY_ID;
static { static {
BY_ID = new HashMap<Integer, Particle>(); BY_ID = new HashMap<Integer, Particle>();
BY_NAME = new HashMap<String, Particle>();
for (Particle particle : values()) { for (Particle particle : values()) {
BY_NAME.put(particle.getName().toLowerCase(), particle);
BY_ID.put(particle.getId(), particle); BY_ID.put(particle.getId(), particle);
} }
} }
private final String name;
private final int id; private final int id;
private final boolean longDistance; private final boolean longDistance;
private final int dataLength;
private Particle(int id, boolean longDistance) { private Particle(String name, int id, boolean longDistance) {
this(name, id, longDistance, 0);
}
private Particle(String name, int id, boolean longDistance, int dataLength) {
this.name = name;
this.id = id; this.id = id;
this.longDistance = longDistance; this.longDistance = longDistance;
this.dataLength = dataLength;
}
public String getName() {
return name;
} }
public int getId() { public int getId() {
@ -235,6 +252,14 @@ public abstract class EnumWrappers {
return longDistance; return longDistance;
} }
public int getDataLength() {
return dataLength;
}
public static Particle getByName(String name) {
return BY_NAME.get(name.toLowerCase());
}
public static Particle getById(int id) { public static Particle getById(int id) {
return BY_ID.get(id); return BY_ID.get(id);
} }