1use std::sync::LazyLock;
4
5use crate::{builtin::EntityKind, tags::RegistryTag};
6
7pub static ACCEPTS_IRON_GOLEM_GIFT: LazyLock<RegistryTag<EntityKind>> =
8 LazyLock::new(|| RegistryTag::new(vec![EntityKind::CopperGolem]));
9pub static AQUATIC: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
10 RegistryTag::new(vec![
11 EntityKind::Axolotl,
12 EntityKind::Cod,
13 EntityKind::Dolphin,
14 EntityKind::ElderGuardian,
15 EntityKind::GlowSquid,
16 EntityKind::Guardian,
17 EntityKind::Nautilus,
18 EntityKind::Pufferfish,
19 EntityKind::Salmon,
20 EntityKind::Squid,
21 EntityKind::Tadpole,
22 EntityKind::TropicalFish,
23 EntityKind::Turtle,
24 EntityKind::ZombieNautilus,
25 ])
26});
27pub static ARROWS: LazyLock<RegistryTag<EntityKind>> =
28 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Arrow, EntityKind::SpectralArrow]));
29pub static ARTHROPOD: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
30 RegistryTag::new(vec![
31 EntityKind::Bee,
32 EntityKind::CaveSpider,
33 EntityKind::Endermite,
34 EntityKind::Silverfish,
35 EntityKind::Spider,
36 ])
37});
38pub static AXOLOTL_ALWAYS_HOSTILES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
39 RegistryTag::new(vec![
40 EntityKind::Drowned,
41 EntityKind::ElderGuardian,
42 EntityKind::Guardian,
43 ])
44});
45pub static AXOLOTL_HUNT_TARGETS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
46 RegistryTag::new(vec![
47 EntityKind::Cod,
48 EntityKind::GlowSquid,
49 EntityKind::Pufferfish,
50 EntityKind::Salmon,
51 EntityKind::Squid,
52 EntityKind::Tadpole,
53 EntityKind::TropicalFish,
54 ])
55});
56pub static BEEHIVE_INHABITORS: LazyLock<RegistryTag<EntityKind>> =
57 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Bee]));
58pub static BOAT: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
59 RegistryTag::new(vec![
60 EntityKind::AcaciaBoat,
61 EntityKind::BambooRaft,
62 EntityKind::BirchBoat,
63 EntityKind::CherryBoat,
64 EntityKind::DarkOakBoat,
65 EntityKind::JungleBoat,
66 EntityKind::MangroveBoat,
67 EntityKind::OakBoat,
68 EntityKind::PaleOakBoat,
69 EntityKind::SpruceBoat,
70 ])
71});
72pub static BURN_IN_DAYLIGHT: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
73 RegistryTag::new(vec![
74 EntityKind::Bogged,
75 EntityKind::Drowned,
76 EntityKind::Phantom,
77 EntityKind::Skeleton,
78 EntityKind::Stray,
79 EntityKind::WitherSkeleton,
80 EntityKind::Zombie,
81 EntityKind::ZombieHorse,
82 EntityKind::ZombieNautilus,
83 EntityKind::ZombieVillager,
84 ])
85});
86pub static CAN_BREATHE_UNDER_WATER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
87 RegistryTag::new(vec![
88 EntityKind::ArmorStand,
89 EntityKind::Axolotl,
90 EntityKind::Bogged,
91 EntityKind::CamelHusk,
92 EntityKind::Cod,
93 EntityKind::CopperGolem,
94 EntityKind::Drowned,
95 EntityKind::ElderGuardian,
96 EntityKind::Frog,
97 EntityKind::GlowSquid,
98 EntityKind::Guardian,
99 EntityKind::Husk,
100 EntityKind::Nautilus,
101 EntityKind::Parched,
102 EntityKind::Phantom,
103 EntityKind::Pufferfish,
104 EntityKind::Salmon,
105 EntityKind::Skeleton,
106 EntityKind::SkeletonHorse,
107 EntityKind::Squid,
108 EntityKind::Stray,
109 EntityKind::Tadpole,
110 EntityKind::TropicalFish,
111 EntityKind::Turtle,
112 EntityKind::Wither,
113 EntityKind::WitherSkeleton,
114 EntityKind::Zoglin,
115 EntityKind::Zombie,
116 EntityKind::ZombieHorse,
117 EntityKind::ZombieNautilus,
118 EntityKind::ZombieVillager,
119 EntityKind::ZombifiedPiglin,
120 ])
121});
122pub static CAN_EQUIP_HARNESS: LazyLock<RegistryTag<EntityKind>> =
123 LazyLock::new(|| RegistryTag::new(vec![EntityKind::HappyGhast]));
124pub static CAN_EQUIP_SADDLE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
125 RegistryTag::new(vec![
126 EntityKind::Camel,
127 EntityKind::CamelHusk,
128 EntityKind::Donkey,
129 EntityKind::Horse,
130 EntityKind::Mule,
131 EntityKind::Nautilus,
132 EntityKind::Pig,
133 EntityKind::SkeletonHorse,
134 EntityKind::Strider,
135 EntityKind::ZombieHorse,
136 EntityKind::ZombieNautilus,
137 ])
138});
139pub static CAN_FLOAT_WHILE_RIDDEN: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
140 RegistryTag::new(vec![
141 EntityKind::Camel,
142 EntityKind::CamelHusk,
143 EntityKind::Donkey,
144 EntityKind::Horse,
145 EntityKind::Mule,
146 EntityKind::ZombieHorse,
147 ])
148});
149pub static CAN_TURN_IN_BOATS: LazyLock<RegistryTag<EntityKind>> =
150 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Breeze]));
151pub static CAN_WEAR_HORSE_ARMOR: LazyLock<RegistryTag<EntityKind>> =
152 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Horse, EntityKind::ZombieHorse]));
153pub static CAN_WEAR_NAUTILUS_ARMOR: LazyLock<RegistryTag<EntityKind>> =
154 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Nautilus, EntityKind::ZombieNautilus]));
155pub static CANDIDATE_FOR_IRON_GOLEM_GIFT: LazyLock<RegistryTag<EntityKind>> =
156 LazyLock::new(|| RegistryTag::new(vec![EntityKind::CopperGolem, EntityKind::Villager]));
157pub static CANNOT_BE_AGE_LOCKED: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
158 RegistryTag::new(vec![
159 EntityKind::SkeletonHorse,
160 EntityKind::Villager,
161 EntityKind::ZombieHorse,
162 ])
163});
164pub static CANNOT_BE_PUSHED_ONTO_BOATS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
165 RegistryTag::new(vec![
166 EntityKind::Cod,
167 EntityKind::Creaking,
168 EntityKind::Dolphin,
169 EntityKind::ElderGuardian,
170 EntityKind::GlowSquid,
171 EntityKind::Nautilus,
172 EntityKind::Pufferfish,
173 EntityKind::Salmon,
174 EntityKind::Squid,
175 EntityKind::Tadpole,
176 EntityKind::TropicalFish,
177 EntityKind::ZombieNautilus,
178 EntityKind::Player,
179 ])
180});
181pub static DEFLECTS_PROJECTILES: LazyLock<RegistryTag<EntityKind>> =
182 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Breeze]));
183pub static DISMOUNTS_UNDERWATER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
184 RegistryTag::new(vec![
185 EntityKind::Camel,
186 EntityKind::Chicken,
187 EntityKind::Donkey,
188 EntityKind::HappyGhast,
189 EntityKind::Horse,
190 EntityKind::Llama,
191 EntityKind::Mule,
192 EntityKind::Pig,
193 EntityKind::Ravager,
194 EntityKind::Spider,
195 EntityKind::Strider,
196 EntityKind::TraderLlama,
197 EntityKind::ZombieHorse,
198 ])
199});
200pub static FALL_DAMAGE_IMMUNE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
201 RegistryTag::new(vec![
202 EntityKind::Allay,
203 EntityKind::Bat,
204 EntityKind::Bee,
205 EntityKind::Blaze,
206 EntityKind::Breeze,
207 EntityKind::Cat,
208 EntityKind::Chicken,
209 EntityKind::CopperGolem,
210 EntityKind::Ghast,
211 EntityKind::HappyGhast,
212 EntityKind::IronGolem,
213 EntityKind::MagmaCube,
214 EntityKind::Ocelot,
215 EntityKind::Parrot,
216 EntityKind::Phantom,
217 EntityKind::Shulker,
218 EntityKind::SnowGolem,
219 EntityKind::Wither,
220 ])
221});
222pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
223 RegistryTag::new(vec![
224 EntityKind::Armadillo,
225 EntityKind::Bee,
226 EntityKind::Camel,
227 EntityKind::Cat,
228 EntityKind::Chicken,
229 EntityKind::Cow,
230 EntityKind::Donkey,
231 EntityKind::Fox,
232 EntityKind::HappyGhast,
233 EntityKind::Goat,
234 EntityKind::Horse,
235 EntityKind::Llama,
236 EntityKind::Mule,
237 EntityKind::Ocelot,
238 EntityKind::Panda,
239 EntityKind::Parrot,
240 EntityKind::Pig,
241 EntityKind::PolarBear,
242 EntityKind::Rabbit,
243 EntityKind::Sheep,
244 EntityKind::SkeletonHorse,
245 EntityKind::Sniffer,
246 EntityKind::Strider,
247 EntityKind::Villager,
248 EntityKind::Wolf,
249 ])
250});
251pub static FREEZE_HURTS_EXTRA_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
252 RegistryTag::new(vec![
253 EntityKind::Blaze,
254 EntityKind::MagmaCube,
255 EntityKind::Strider,
256 ])
257});
258pub static FREEZE_IMMUNE_ENTITY_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
259 RegistryTag::new(vec![
260 EntityKind::PolarBear,
261 EntityKind::SnowGolem,
262 EntityKind::Stray,
263 EntityKind::Wither,
264 ])
265});
266pub static FROG_FOOD: LazyLock<RegistryTag<EntityKind>> =
267 LazyLock::new(|| RegistryTag::new(vec![EntityKind::MagmaCube, EntityKind::Slime]));
268pub static IGNORES_POISON_AND_REGEN: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
269 RegistryTag::new(vec![
270 EntityKind::Bogged,
271 EntityKind::CamelHusk,
272 EntityKind::Drowned,
273 EntityKind::Husk,
274 EntityKind::Parched,
275 EntityKind::Phantom,
276 EntityKind::Skeleton,
277 EntityKind::SkeletonHorse,
278 EntityKind::Stray,
279 EntityKind::Wither,
280 EntityKind::WitherSkeleton,
281 EntityKind::Zoglin,
282 EntityKind::Zombie,
283 EntityKind::ZombieHorse,
284 EntityKind::ZombieNautilus,
285 EntityKind::ZombieVillager,
286 EntityKind::ZombifiedPiglin,
287 ])
288});
289pub static ILLAGER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
290 RegistryTag::new(vec![
291 EntityKind::Evoker,
292 EntityKind::Illusioner,
293 EntityKind::Pillager,
294 EntityKind::Vindicator,
295 ])
296});
297pub static ILLAGER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
298 RegistryTag::new(vec![
299 EntityKind::Evoker,
300 EntityKind::Illusioner,
301 EntityKind::Pillager,
302 EntityKind::Vindicator,
303 ])
304});
305pub static IMMUNE_TO_INFESTED: LazyLock<RegistryTag<EntityKind>> =
306 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Silverfish]));
307pub static IMMUNE_TO_OOZING: LazyLock<RegistryTag<EntityKind>> =
308 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Slime]));
309pub static IMPACT_PROJECTILES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
310 RegistryTag::new(vec![
311 EntityKind::Arrow,
312 EntityKind::BreezeWindCharge,
313 EntityKind::DragonFireball,
314 EntityKind::Egg,
315 EntityKind::Fireball,
316 EntityKind::FireworkRocket,
317 EntityKind::SmallFireball,
318 EntityKind::Snowball,
319 EntityKind::SpectralArrow,
320 EntityKind::Trident,
321 EntityKind::WindCharge,
322 EntityKind::WitherSkull,
323 ])
324});
325pub static INVERTED_HEALING_AND_HARM: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
326 RegistryTag::new(vec![
327 EntityKind::Bogged,
328 EntityKind::CamelHusk,
329 EntityKind::Drowned,
330 EntityKind::Husk,
331 EntityKind::Parched,
332 EntityKind::Phantom,
333 EntityKind::Skeleton,
334 EntityKind::SkeletonHorse,
335 EntityKind::Stray,
336 EntityKind::Wither,
337 EntityKind::WitherSkeleton,
338 EntityKind::Zoglin,
339 EntityKind::Zombie,
340 EntityKind::ZombieHorse,
341 EntityKind::ZombieNautilus,
342 EntityKind::ZombieVillager,
343 EntityKind::ZombifiedPiglin,
344 ])
345});
346pub static NAUTILUS_HOSTILES: LazyLock<RegistryTag<EntityKind>> =
347 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Pufferfish]));
348pub static NO_ANGER_FROM_WIND_CHARGE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
349 RegistryTag::new(vec![
350 EntityKind::Bogged,
351 EntityKind::Breeze,
352 EntityKind::CaveSpider,
353 EntityKind::Husk,
354 EntityKind::Skeleton,
355 EntityKind::Slime,
356 EntityKind::Spider,
357 EntityKind::Stray,
358 EntityKind::Zombie,
359 ])
360});
361pub static NON_CONTROLLING_RIDER: LazyLock<RegistryTag<EntityKind>> =
362 LazyLock::new(|| RegistryTag::new(vec![EntityKind::MagmaCube, EntityKind::Slime]));
363pub static NOT_SCARY_FOR_PUFFERFISH: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
364 RegistryTag::new(vec![
365 EntityKind::Cod,
366 EntityKind::Dolphin,
367 EntityKind::ElderGuardian,
368 EntityKind::GlowSquid,
369 EntityKind::Guardian,
370 EntityKind::Nautilus,
371 EntityKind::Pufferfish,
372 EntityKind::Salmon,
373 EntityKind::Squid,
374 EntityKind::Tadpole,
375 EntityKind::TropicalFish,
376 EntityKind::Turtle,
377 EntityKind::ZombieNautilus,
378 ])
379});
380pub static POWDER_SNOW_WALKABLE_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
381 RegistryTag::new(vec![
382 EntityKind::Endermite,
383 EntityKind::Fox,
384 EntityKind::Rabbit,
385 EntityKind::Silverfish,
386 ])
387});
388pub static RAIDERS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
389 RegistryTag::new(vec![
390 EntityKind::Evoker,
391 EntityKind::Illusioner,
392 EntityKind::Pillager,
393 EntityKind::Ravager,
394 EntityKind::Vindicator,
395 EntityKind::Witch,
396 ])
397});
398pub static REDIRECTABLE_PROJECTILE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
399 RegistryTag::new(vec![
400 EntityKind::BreezeWindCharge,
401 EntityKind::Fireball,
402 EntityKind::WindCharge,
403 ])
404});
405pub static SENSITIVE_TO_BANE_OF_ARTHROPODS: LazyLock<RegistryTag<EntityKind>> =
406 LazyLock::new(|| {
407 RegistryTag::new(vec![
408 EntityKind::Bee,
409 EntityKind::CaveSpider,
410 EntityKind::Endermite,
411 EntityKind::Silverfish,
412 EntityKind::Spider,
413 ])
414 });
415pub static SENSITIVE_TO_IMPALING: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
416 RegistryTag::new(vec![
417 EntityKind::Axolotl,
418 EntityKind::Cod,
419 EntityKind::Dolphin,
420 EntityKind::ElderGuardian,
421 EntityKind::GlowSquid,
422 EntityKind::Guardian,
423 EntityKind::Nautilus,
424 EntityKind::Pufferfish,
425 EntityKind::Salmon,
426 EntityKind::Squid,
427 EntityKind::Tadpole,
428 EntityKind::TropicalFish,
429 EntityKind::Turtle,
430 EntityKind::ZombieNautilus,
431 ])
432});
433pub static SENSITIVE_TO_SMITE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
434 RegistryTag::new(vec![
435 EntityKind::Bogged,
436 EntityKind::CamelHusk,
437 EntityKind::Drowned,
438 EntityKind::Husk,
439 EntityKind::Parched,
440 EntityKind::Phantom,
441 EntityKind::Skeleton,
442 EntityKind::SkeletonHorse,
443 EntityKind::Stray,
444 EntityKind::Wither,
445 EntityKind::WitherSkeleton,
446 EntityKind::Zoglin,
447 EntityKind::Zombie,
448 EntityKind::ZombieHorse,
449 EntityKind::ZombieNautilus,
450 EntityKind::ZombieVillager,
451 EntityKind::ZombifiedPiglin,
452 ])
453});
454pub static SKELETONS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
455 RegistryTag::new(vec![
456 EntityKind::Bogged,
457 EntityKind::Parched,
458 EntityKind::Skeleton,
459 EntityKind::SkeletonHorse,
460 EntityKind::Stray,
461 EntityKind::WitherSkeleton,
462 ])
463});
464pub static UNDEAD: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
465 RegistryTag::new(vec![
466 EntityKind::Bogged,
467 EntityKind::CamelHusk,
468 EntityKind::Drowned,
469 EntityKind::Husk,
470 EntityKind::Parched,
471 EntityKind::Phantom,
472 EntityKind::Skeleton,
473 EntityKind::SkeletonHorse,
474 EntityKind::Stray,
475 EntityKind::Wither,
476 EntityKind::WitherSkeleton,
477 EntityKind::Zoglin,
478 EntityKind::Zombie,
479 EntityKind::ZombieHorse,
480 EntityKind::ZombieNautilus,
481 EntityKind::ZombieVillager,
482 EntityKind::ZombifiedPiglin,
483 ])
484});
485pub static WITHER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
486 RegistryTag::new(vec![
487 EntityKind::Bogged,
488 EntityKind::CamelHusk,
489 EntityKind::Drowned,
490 EntityKind::Husk,
491 EntityKind::Parched,
492 EntityKind::Phantom,
493 EntityKind::Skeleton,
494 EntityKind::SkeletonHorse,
495 EntityKind::Stray,
496 EntityKind::Wither,
497 EntityKind::WitherSkeleton,
498 EntityKind::Zoglin,
499 EntityKind::Zombie,
500 EntityKind::ZombieHorse,
501 EntityKind::ZombieNautilus,
502 EntityKind::ZombieVillager,
503 EntityKind::ZombifiedPiglin,
504 ])
505});
506pub static ZOMBIES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
507 RegistryTag::new(vec![
508 EntityKind::CamelHusk,
509 EntityKind::Drowned,
510 EntityKind::Husk,
511 EntityKind::Zoglin,
512 EntityKind::Zombie,
513 EntityKind::ZombieHorse,
514 EntityKind::ZombieNautilus,
515 EntityKind::ZombieVillager,
516 EntityKind::ZombifiedPiglin,
517 ])
518});