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