|
19 | 19 | import com.github.steveice10.mc.protocol.data.game.entity.type.MobType; |
20 | 20 |
|
21 | 21 | public enum EntityType { |
22 | | - NONE(0), |
| 22 | + NONE(0, 0), |
23 | 23 |
|
24 | | - CHICKEN(10), |
25 | | - COW(11), |
26 | | - PIG(12), |
27 | | - SHEEP(13), |
28 | | - WOLF(14), |
29 | | - VILLAGER(15), |
30 | | - MOOSHROOM(16), |
31 | | - SQUID(17), |
32 | | - RABBIT(18), |
33 | | - BAT(19), |
34 | | - IRONGOLEM(20), |
35 | | - SNOWMAN(21), |
36 | | - OCELOT(22), |
37 | | - HORSE(23), |
38 | | - DONKEY(24), |
39 | | - MULE(25), |
40 | | - SKELETON_HORSE(26), |
41 | | - ZOMBIE_HORSE(27), |
42 | | - POLAR_BEAR(28), |
43 | | - LLAMA(29), |
44 | | - PARROT(30), |
| 24 | + CHICKEN(10, 0), |
| 25 | + COW(11, 0), |
| 26 | + PIG(12, 0), |
| 27 | + SHEEP(13, 0), |
| 28 | + WOLF(14, 0), |
| 29 | + VILLAGER(15, 0), |
| 30 | + MOOSHROOM(16, 0), |
| 31 | + SQUID(17, 0), |
| 32 | + RABBIT(18, 0), |
| 33 | + BAT(19, 0), |
| 34 | + IRONGOLEM(20, 0), |
| 35 | + SNOWMAN(21, 0), |
| 36 | + OCELOT(22, 0), |
| 37 | + HORSE(23, 1.6f), |
| 38 | + DONKEY(24, 0), |
| 39 | + MULE(25, 0), |
| 40 | + SKELETON_HORSE(26, 0), |
| 41 | + ZOMBIE_HORSE(27, 0), |
| 42 | + POLAR_BEAR(28, 0), |
| 43 | + LLAMA(29, 0), |
| 44 | + PARROT(30, 0), |
| 45 | + //UNKNOWN(31, 0), |
| 46 | + ZOMBIE(32, 0), |
| 47 | + CREEPER(33, 0), |
| 48 | + SKELETON(34, 0), |
| 49 | + SPIDER(35, 0), |
| 50 | + ZOMBIE_PIGMAN(36, 0), |
| 51 | + SLIME(37, 0), |
| 52 | + ENDERMAN(38, 0), |
| 53 | + SILVERFISH(39, 0), |
| 54 | + CAVE_SPIDER(40, 0), |
| 55 | + GHAST(41, 0), |
| 56 | + MAGMA_CUBE(42, 0), |
| 57 | + BLAZE(43, 0), |
| 58 | + ZOMBIEVILLAGER(44, 0), |
| 59 | + WITCH(45, 0), |
| 60 | + STRAY(46, 0), |
| 61 | + HUSK(47, 0), |
| 62 | + WITHER_SKELETON(48, 0), |
| 63 | + GUARDIAN(49, 0), |
| 64 | + ELDER_GUARDIAN(50, 0), |
| 65 | + NPC(51, 0), |
| 66 | + WITHER(52, 0), |
| 67 | + ENDER_DRAGON(53, 0), |
| 68 | + SHULKER(54, 0), |
| 69 | + ENDREMITE(55, 0), |
| 70 | + LEARN_TO_CODE_MASCOTE(56, 0), |
| 71 | + VINDICATOR(57, 0), |
| 72 | + //UNKNOWN(58, 0), |
| 73 | + //UNKNOWN(59, 0), |
| 74 | + //UNKNOWN(60, 0), |
| 75 | + ARMOR_STAND(61, 0), |
| 76 | + TRIPOD_CAMERA(62, 0), |
| 77 | + PLAYER(63, 1.62f), |
| 78 | + ITEM(64, 0), |
| 79 | + PRIMED_TNT(65, 0), |
| 80 | + FALLING_BLOCK(66, 0), |
| 81 | + MOVING_BLOCK(67, 0), |
| 82 | + POTION(68, 0), |
| 83 | + EXP_ORB(69, 0), |
| 84 | + ENDER_EYE(70, 0), |
| 85 | + ENDER_CRYSTAL(71, 0), |
| 86 | + FIREWORKS_ROCKET(72, 0), |
| 87 | + //UNKNOWN(73, 0), |
| 88 | + //UNKNOWN(74, 0), |
| 89 | + //UNKNOWN(75, 0), |
| 90 | + SHULKER_BULLET(76, 0), |
| 91 | + FISHING_HOOK(77, 0), |
| 92 | + CHALKBOARD(78, 0), |
| 93 | + DRAGON_FIREBALL(79, 0), |
| 94 | + ARROW(80, 0), |
| 95 | + SNOW_BALL(81, 0), |
| 96 | + EGG(82, 0), |
| 97 | + PAINTING(83, 0), |
| 98 | + MINECART(84, 0), |
| 99 | + LARGE_FIREBALL(85, 0), |
| 100 | + SPLASH_POTION(86, 0), |
| 101 | + ENDER_PEARL(87, 0), |
| 102 | + LEASH_KNOT(88, 0), |
| 103 | + WITHER_SKULL(89, 0), |
| 104 | + BOAT(90, 0.4f), |
| 105 | + WITHER_SKULL_DANGEROUS(91, 0), |
| 106 | + //UNKNOWN(92, 0), |
| 107 | + LIGHTNING_BOLT(93, 0), |
| 108 | + SMALL_FIREBALL(94, 0), |
| 109 | + AREA_EFFECT_CLOUD(95, 0), |
| 110 | + HOPPER_MINECART(96, 0), |
| 111 | + TNT_MINECART(97, 0), |
| 112 | + CHEST_MINECART(98, 0), |
| 113 | + COMMAND_BLOCK_MINECART(100, 0), |
| 114 | + LINGERING_POTION(101, 0), |
| 115 | + LLAMA_SPIT(102, 0), |
| 116 | + EVOCATION_FANG(103, 0), |
| 117 | + EVOCATION_ILLAGER(104, 0), |
| 118 | + VEX(105, 0); |
45 | 119 |
|
46 | | - ZOMBIE(32), |
47 | | - CREEPER(33), |
48 | | - SKELETON(34), |
49 | | - SPIDER(35), |
50 | | - ZOMBIE_PIGMAN(36), |
51 | | - SLIME(37), |
52 | | - ENDERMAN(38), |
53 | | - SILVERFISH(39), |
54 | | - CAVE_SPIDER(40), |
55 | | - GHAST(41), |
56 | | - MAGMA_CUBE(42), |
57 | | - BLAZE(43), |
58 | | - ZOMBIEVILLAGER(44), |
59 | | - NPC(51), |
60 | | - LEARN_TO_CODE_MASCOTE(56), |
61 | | - ARMOR_STAND(61), |
62 | | - TRIPOD_CAMERA(62), |
63 | | - PLAYER(63), |
64 | | - ITEM(64), |
65 | | - PRIMED_TNT(65), |
66 | | - FALLING_BLOCK(66), |
67 | | - MOVING_BLOCK(67), |
68 | | - POTION(68), |
69 | | - EXP_ORB(69), |
70 | | - ENDER_EYE(70), |
71 | | - ENDER_CRYSTAL(71), |
72 | | - FIREWORKS_ROCKET(72), |
| 120 | + private static final Map<Integer, EntityType> PC_TO_PE = new HashMap<>(); |
| 121 | + private final int peType; |
| 122 | + private final float offset; |
73 | 123 |
|
74 | | - SHULKER_BULLET(76), |
75 | | - FISHING_HOOK(77), |
76 | | - CHALKBOARD(78), |
77 | | - DRAGON_FIREBALL(79), |
78 | | - ARROW(80), |
79 | | - SNOW_BALL(81), |
80 | | - EGG(82), |
81 | | - PAINTING(83), |
82 | | - MINECART(84), |
83 | | - LARGE_FIREBALL(85), |
84 | | - SPLASH_POTION(86), |
85 | | - ENDER_PEARL(87), |
86 | | - LEASH_KNOT(88), |
87 | | - WITHER_SKULL(89), |
88 | | - BOAT(90), |
89 | | - WITHER_SKULL_DANGEROUS(91), |
| 124 | + static { |
| 125 | + for (EntityType peType : EntityType.values()) { |
| 126 | + try { |
| 127 | + MobType pcType = MobType.valueOf(peType.name()); |
| 128 | + int pcTypeId = MagicValues.value(Integer.class, pcType); |
| 129 | + PC_TO_PE.put(pcTypeId, peType); |
| 130 | + } catch (Exception e) { |
| 131 | + } |
| 132 | + } |
| 133 | + } |
90 | 134 |
|
91 | | - LIGHTNING_BOLT(93), |
92 | | - SMALL_FIREBALL(94), |
93 | | - AREA_EFFECT_CLOUD(95), |
94 | | - HOPPER_MINECART(96), |
95 | | - TNT_MINECART(97), |
96 | | - CHEST_MINECART(98), |
97 | | - COMMAND_BLOCK_MINECART(100), |
98 | | - LINGERING_POTION(101), |
99 | | - LLAMA_SPIT(102), |
100 | | - EVOCATION_FANG(103), |
101 | | - EVOCATION_ILLAGER(104), |
102 | | - VEX(105); |
| 135 | + EntityType(int peType, float offset) { |
| 136 | + this.peType = peType; |
| 137 | + this.offset = offset; |
| 138 | + } |
103 | 139 |
|
104 | | - private static final Map<Integer, EntityType> PC_TO_PE = new HashMap<>(); |
105 | | - private final int peType; |
| 140 | + public static EntityType convertToPE(MobType pcType) { |
| 141 | + return convertToPE(MagicValues.value(Integer.class, pcType)); |
| 142 | + } |
106 | 143 |
|
107 | | - static { |
108 | | - for (EntityType peType : EntityType.values()) { |
109 | | - try { |
110 | | - MobType pcType = MobType.valueOf(peType.name()); |
111 | | - int pcTypeId = MagicValues.value(Integer.class, pcType); |
112 | | - PC_TO_PE.put(pcTypeId, peType); |
113 | | - } catch (Exception e) { |
114 | | - } |
115 | | - } |
116 | | - } |
| 144 | + public static EntityType convertToPE(int pcType) { |
| 145 | + if (!PC_TO_PE.containsKey(pcType)) { |
| 146 | + return null; |
| 147 | + } |
| 148 | + return PC_TO_PE.get(pcType); |
| 149 | + } |
117 | 150 |
|
118 | | - EntityType(int peType) { |
119 | | - this.peType = peType; |
120 | | - } |
| 151 | + public int getPeType() { |
| 152 | + return peType; |
| 153 | + } |
121 | 154 |
|
122 | | - public static EntityType convertToPE(MobType pcType) { |
123 | | - return convertToPE(MagicValues.value(Integer.class, pcType)); |
124 | | - } |
125 | | - |
126 | | - public static EntityType convertToPE(int pcType) { |
127 | | - if (!PC_TO_PE.containsKey(pcType)) { |
128 | | - return null; |
129 | | - } |
130 | | - return PC_TO_PE.get(pcType); |
131 | | - } |
132 | | - |
133 | | - public int getPeType() { |
134 | | - return peType; |
135 | | - } |
| 155 | + // Y offset for spawning (more flexible than utilities/Constants.java) |
| 156 | + public float getOffset() { |
| 157 | + return offset; |
| 158 | + } |
136 | 159 | } |
0 commit comments