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::SulfurCube,
176 EntityKind::Tadpole,
177 EntityKind::TropicalFish,
178 EntityKind::ZombieNautilus,
179 EntityKind::Player,
180 ])
181});
182pub static DEFLECTS_PROJECTILES: LazyLock<RegistryTag<EntityKind>> =
183 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Breeze]));
184pub static DISMOUNTS_UNDERWATER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
185 RegistryTag::new(vec![
186 EntityKind::Camel,
187 EntityKind::Chicken,
188 EntityKind::Donkey,
189 EntityKind::HappyGhast,
190 EntityKind::Horse,
191 EntityKind::Llama,
192 EntityKind::Mule,
193 EntityKind::Pig,
194 EntityKind::Ravager,
195 EntityKind::Spider,
196 EntityKind::Strider,
197 EntityKind::TraderLlama,
198 EntityKind::ZombieHorse,
199 ])
200});
201pub static FALL_DAMAGE_IMMUNE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
202 RegistryTag::new(vec![
203 EntityKind::Allay,
204 EntityKind::Bat,
205 EntityKind::Bee,
206 EntityKind::Blaze,
207 EntityKind::Breeze,
208 EntityKind::Cat,
209 EntityKind::Chicken,
210 EntityKind::CopperGolem,
211 EntityKind::Ghast,
212 EntityKind::HappyGhast,
213 EntityKind::IronGolem,
214 EntityKind::MagmaCube,
215 EntityKind::Ocelot,
216 EntityKind::Parrot,
217 EntityKind::Phantom,
218 EntityKind::Shulker,
219 EntityKind::SnowGolem,
220 EntityKind::Wither,
221 ])
222});
223pub static FOLLOWABLE_FRIENDLY_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
224 RegistryTag::new(vec![
225 EntityKind::Armadillo,
226 EntityKind::Bee,
227 EntityKind::Camel,
228 EntityKind::Cat,
229 EntityKind::Chicken,
230 EntityKind::Cow,
231 EntityKind::Donkey,
232 EntityKind::Fox,
233 EntityKind::HappyGhast,
234 EntityKind::Goat,
235 EntityKind::Horse,
236 EntityKind::Llama,
237 EntityKind::Mule,
238 EntityKind::Ocelot,
239 EntityKind::Panda,
240 EntityKind::Parrot,
241 EntityKind::Pig,
242 EntityKind::PolarBear,
243 EntityKind::Rabbit,
244 EntityKind::Sheep,
245 EntityKind::SkeletonHorse,
246 EntityKind::Sniffer,
247 EntityKind::Strider,
248 EntityKind::Villager,
249 EntityKind::Wolf,
250 ])
251});
252pub static FREEZE_HURTS_EXTRA_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
253 RegistryTag::new(vec![
254 EntityKind::Blaze,
255 EntityKind::MagmaCube,
256 EntityKind::Strider,
257 ])
258});
259pub static FREEZE_IMMUNE_ENTITY_TYPES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
260 RegistryTag::new(vec![
261 EntityKind::PolarBear,
262 EntityKind::SnowGolem,
263 EntityKind::Stray,
264 EntityKind::Wither,
265 ])
266});
267pub static FROG_FOOD: LazyLock<RegistryTag<EntityKind>> =
268 LazyLock::new(|| RegistryTag::new(vec![EntityKind::MagmaCube, EntityKind::Slime]));
269pub static IGNORES_POISON_AND_REGEN: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
270 RegistryTag::new(vec![
271 EntityKind::Bogged,
272 EntityKind::CamelHusk,
273 EntityKind::Drowned,
274 EntityKind::Husk,
275 EntityKind::Parched,
276 EntityKind::Phantom,
277 EntityKind::Skeleton,
278 EntityKind::SkeletonHorse,
279 EntityKind::Stray,
280 EntityKind::Wither,
281 EntityKind::WitherSkeleton,
282 EntityKind::Zoglin,
283 EntityKind::Zombie,
284 EntityKind::ZombieHorse,
285 EntityKind::ZombieNautilus,
286 EntityKind::ZombieVillager,
287 EntityKind::ZombifiedPiglin,
288 ])
289});
290pub static ILLAGER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
291 RegistryTag::new(vec![
292 EntityKind::Evoker,
293 EntityKind::Illusioner,
294 EntityKind::Pillager,
295 EntityKind::Vindicator,
296 ])
297});
298pub static ILLAGER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
299 RegistryTag::new(vec![
300 EntityKind::Evoker,
301 EntityKind::Illusioner,
302 EntityKind::Pillager,
303 EntityKind::Vindicator,
304 ])
305});
306pub static IMMUNE_TO_INFESTED: LazyLock<RegistryTag<EntityKind>> =
307 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Silverfish]));
308pub static IMMUNE_TO_OOZING: LazyLock<RegistryTag<EntityKind>> =
309 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Slime]));
310pub static IMPACT_PROJECTILES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
311 RegistryTag::new(vec![
312 EntityKind::Arrow,
313 EntityKind::BreezeWindCharge,
314 EntityKind::DragonFireball,
315 EntityKind::Egg,
316 EntityKind::Fireball,
317 EntityKind::FireworkRocket,
318 EntityKind::SmallFireball,
319 EntityKind::Snowball,
320 EntityKind::SpectralArrow,
321 EntityKind::Trident,
322 EntityKind::WindCharge,
323 EntityKind::WitherSkull,
324 ])
325});
326pub static INVERTED_HEALING_AND_HARM: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
327 RegistryTag::new(vec![
328 EntityKind::Bogged,
329 EntityKind::CamelHusk,
330 EntityKind::Drowned,
331 EntityKind::Husk,
332 EntityKind::Parched,
333 EntityKind::Phantom,
334 EntityKind::Skeleton,
335 EntityKind::SkeletonHorse,
336 EntityKind::Stray,
337 EntityKind::Wither,
338 EntityKind::WitherSkeleton,
339 EntityKind::Zoglin,
340 EntityKind::Zombie,
341 EntityKind::ZombieHorse,
342 EntityKind::ZombieNautilus,
343 EntityKind::ZombieVillager,
344 EntityKind::ZombifiedPiglin,
345 ])
346});
347pub static NAUTILUS_HOSTILES: LazyLock<RegistryTag<EntityKind>> =
348 LazyLock::new(|| RegistryTag::new(vec![EntityKind::Pufferfish]));
349pub static NO_ANGER_FROM_WIND_CHARGE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
350 RegistryTag::new(vec![
351 EntityKind::Bogged,
352 EntityKind::Breeze,
353 EntityKind::CaveSpider,
354 EntityKind::Husk,
355 EntityKind::Skeleton,
356 EntityKind::Slime,
357 EntityKind::Spider,
358 EntityKind::Stray,
359 EntityKind::Zombie,
360 ])
361});
362pub static NON_CONTROLLING_RIDER: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
363 RegistryTag::new(vec![
364 EntityKind::MagmaCube,
365 EntityKind::Slime,
366 EntityKind::SulfurCube,
367 ])
368});
369pub static NOT_AFFECTED_BY_GEYSERS: LazyLock<RegistryTag<EntityKind>> =
370 LazyLock::new(|| RegistryTag::new(vec![EntityKind::EnderDragon]));
371pub static NOT_SCARY_FOR_PUFFERFISH: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
372 RegistryTag::new(vec![
373 EntityKind::Cod,
374 EntityKind::Dolphin,
375 EntityKind::ElderGuardian,
376 EntityKind::GlowSquid,
377 EntityKind::Guardian,
378 EntityKind::Nautilus,
379 EntityKind::Pufferfish,
380 EntityKind::Salmon,
381 EntityKind::Squid,
382 EntityKind::SulfurCube,
383 EntityKind::Tadpole,
384 EntityKind::TropicalFish,
385 EntityKind::Turtle,
386 EntityKind::ZombieNautilus,
387 ])
388});
389pub static POWDER_SNOW_WALKABLE_MOBS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
390 RegistryTag::new(vec![
391 EntityKind::Endermite,
392 EntityKind::Fox,
393 EntityKind::Rabbit,
394 EntityKind::Silverfish,
395 ])
396});
397pub static RAIDERS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
398 RegistryTag::new(vec![
399 EntityKind::Evoker,
400 EntityKind::Illusioner,
401 EntityKind::Pillager,
402 EntityKind::Ravager,
403 EntityKind::Vindicator,
404 EntityKind::Witch,
405 ])
406});
407pub static REDIRECTABLE_PROJECTILE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
408 RegistryTag::new(vec![
409 EntityKind::BreezeWindCharge,
410 EntityKind::Fireball,
411 EntityKind::WindCharge,
412 ])
413});
414pub static SENSITIVE_TO_BANE_OF_ARTHROPODS: LazyLock<RegistryTag<EntityKind>> =
415 LazyLock::new(|| {
416 RegistryTag::new(vec![
417 EntityKind::Bee,
418 EntityKind::CaveSpider,
419 EntityKind::Endermite,
420 EntityKind::Silverfish,
421 EntityKind::Spider,
422 ])
423 });
424pub static SENSITIVE_TO_IMPALING: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
425 RegistryTag::new(vec![
426 EntityKind::Axolotl,
427 EntityKind::Cod,
428 EntityKind::Dolphin,
429 EntityKind::ElderGuardian,
430 EntityKind::GlowSquid,
431 EntityKind::Guardian,
432 EntityKind::Nautilus,
433 EntityKind::Pufferfish,
434 EntityKind::Salmon,
435 EntityKind::Squid,
436 EntityKind::Tadpole,
437 EntityKind::TropicalFish,
438 EntityKind::Turtle,
439 EntityKind::ZombieNautilus,
440 ])
441});
442pub static SENSITIVE_TO_SMITE: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
443 RegistryTag::new(vec![
444 EntityKind::Bogged,
445 EntityKind::CamelHusk,
446 EntityKind::Drowned,
447 EntityKind::Husk,
448 EntityKind::Parched,
449 EntityKind::Phantom,
450 EntityKind::Skeleton,
451 EntityKind::SkeletonHorse,
452 EntityKind::Stray,
453 EntityKind::Wither,
454 EntityKind::WitherSkeleton,
455 EntityKind::Zoglin,
456 EntityKind::Zombie,
457 EntityKind::ZombieHorse,
458 EntityKind::ZombieNautilus,
459 EntityKind::ZombieVillager,
460 EntityKind::ZombifiedPiglin,
461 ])
462});
463pub static SKELETONS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
464 RegistryTag::new(vec![
465 EntityKind::Bogged,
466 EntityKind::Parched,
467 EntityKind::Skeleton,
468 EntityKind::SkeletonHorse,
469 EntityKind::Stray,
470 EntityKind::WitherSkeleton,
471 ])
472});
473pub static UNDEAD: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
474 RegistryTag::new(vec![
475 EntityKind::Bogged,
476 EntityKind::CamelHusk,
477 EntityKind::Drowned,
478 EntityKind::Husk,
479 EntityKind::Parched,
480 EntityKind::Phantom,
481 EntityKind::Skeleton,
482 EntityKind::SkeletonHorse,
483 EntityKind::Stray,
484 EntityKind::Wither,
485 EntityKind::WitherSkeleton,
486 EntityKind::Zoglin,
487 EntityKind::Zombie,
488 EntityKind::ZombieHorse,
489 EntityKind::ZombieNautilus,
490 EntityKind::ZombieVillager,
491 EntityKind::ZombifiedPiglin,
492 ])
493});
494pub static WITHER_FRIENDS: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
495 RegistryTag::new(vec![
496 EntityKind::Bogged,
497 EntityKind::CamelHusk,
498 EntityKind::Drowned,
499 EntityKind::Husk,
500 EntityKind::Parched,
501 EntityKind::Phantom,
502 EntityKind::Skeleton,
503 EntityKind::SkeletonHorse,
504 EntityKind::Stray,
505 EntityKind::Wither,
506 EntityKind::WitherSkeleton,
507 EntityKind::Zoglin,
508 EntityKind::Zombie,
509 EntityKind::ZombieHorse,
510 EntityKind::ZombieNautilus,
511 EntityKind::ZombieVillager,
512 EntityKind::ZombifiedPiglin,
513 ])
514});
515pub static ZOMBIES: LazyLock<RegistryTag<EntityKind>> = LazyLock::new(|| {
516 RegistryTag::new(vec![
517 EntityKind::CamelHusk,
518 EntityKind::Drowned,
519 EntityKind::Husk,
520 EntityKind::Zoglin,
521 EntityKind::Zombie,
522 EntityKind::ZombieHorse,
523 EntityKind::ZombieNautilus,
524 EntityKind::ZombieVillager,
525 EntityKind::ZombifiedPiglin,
526 ])
527});