1use std::{collections::HashSet, sync::LazyLock};
4
5use crate::Item;
6
7pub static ACACIA_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
8 HashSet::from_iter([
9 Item::AcaciaLog,
10 Item::AcaciaWood,
11 Item::StrippedAcaciaLog,
12 Item::StrippedAcaciaWood,
13 ])
14});
15pub static ANVIL: LazyLock<HashSet<Item>> =
16 LazyLock::new(|| HashSet::from_iter([Item::Anvil, Item::ChippedAnvil, Item::DamagedAnvil]));
17pub static ARMADILLO_FOOD: LazyLock<HashSet<Item>> =
18 LazyLock::new(|| HashSet::from_iter([Item::SpiderEye]));
19pub static ARROWS: LazyLock<HashSet<Item>> =
20 LazyLock::new(|| HashSet::from_iter([Item::Arrow, Item::TippedArrow, Item::SpectralArrow]));
21pub static AXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
22 HashSet::from_iter([
23 Item::DiamondAxe,
24 Item::StoneAxe,
25 Item::GoldenAxe,
26 Item::NetheriteAxe,
27 Item::WoodenAxe,
28 Item::IronAxe,
29 Item::CopperAxe,
30 ])
31});
32pub static AXOLOTL_FOOD: LazyLock<HashSet<Item>> =
33 LazyLock::new(|| HashSet::from_iter([Item::TropicalFishBucket]));
34pub static BAMBOO_BLOCKS: LazyLock<HashSet<Item>> =
35 LazyLock::new(|| HashSet::from_iter([Item::BambooBlock, Item::StrippedBambooBlock]));
36pub static BANNERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
37 HashSet::from_iter([
38 Item::WhiteBanner,
39 Item::OrangeBanner,
40 Item::MagentaBanner,
41 Item::LightBlueBanner,
42 Item::YellowBanner,
43 Item::LimeBanner,
44 Item::PinkBanner,
45 Item::GrayBanner,
46 Item::LightGrayBanner,
47 Item::CyanBanner,
48 Item::PurpleBanner,
49 Item::BlueBanner,
50 Item::BrownBanner,
51 Item::GreenBanner,
52 Item::RedBanner,
53 Item::BlackBanner,
54 ])
55});
56pub static BARS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
57 HashSet::from_iter([
58 Item::IronBars,
59 Item::CopperBars,
60 Item::WaxedCopperBars,
61 Item::ExposedCopperBars,
62 Item::WaxedExposedCopperBars,
63 Item::WeatheredCopperBars,
64 Item::WaxedWeatheredCopperBars,
65 Item::OxidizedCopperBars,
66 Item::WaxedOxidizedCopperBars,
67 ])
68});
69pub static BEACON_PAYMENT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
70 HashSet::from_iter([
71 Item::NetheriteIngot,
72 Item::Emerald,
73 Item::Diamond,
74 Item::GoldIngot,
75 Item::IronIngot,
76 ])
77});
78pub static BEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
79 HashSet::from_iter([
80 Item::RedBed,
81 Item::BlackBed,
82 Item::BlueBed,
83 Item::BrownBed,
84 Item::CyanBed,
85 Item::GrayBed,
86 Item::GreenBed,
87 Item::LightBlueBed,
88 Item::LightGrayBed,
89 Item::LimeBed,
90 Item::MagentaBed,
91 Item::OrangeBed,
92 Item::PinkBed,
93 Item::PurpleBed,
94 Item::WhiteBed,
95 Item::YellowBed,
96 ])
97});
98pub static BEE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
99 HashSet::from_iter([
100 Item::Dandelion,
101 Item::OpenEyeblossom,
102 Item::Poppy,
103 Item::BlueOrchid,
104 Item::Allium,
105 Item::AzureBluet,
106 Item::RedTulip,
107 Item::OrangeTulip,
108 Item::WhiteTulip,
109 Item::PinkTulip,
110 Item::OxeyeDaisy,
111 Item::Cornflower,
112 Item::LilyOfTheValley,
113 Item::WitherRose,
114 Item::Torchflower,
115 Item::Sunflower,
116 Item::Lilac,
117 Item::Peony,
118 Item::RoseBush,
119 Item::PitcherPlant,
120 Item::FloweringAzaleaLeaves,
121 Item::FloweringAzalea,
122 Item::MangrovePropagule,
123 Item::CherryLeaves,
124 Item::PinkPetals,
125 Item::Wildflowers,
126 Item::ChorusFlower,
127 Item::SporeBlossom,
128 Item::CactusFlower,
129 ])
130});
131pub static BIRCH_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
132 HashSet::from_iter([
133 Item::BirchLog,
134 Item::BirchWood,
135 Item::StrippedBirchLog,
136 Item::StrippedBirchWood,
137 ])
138});
139pub static BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
140 HashSet::from_iter([
141 Item::OakBoat,
142 Item::SpruceBoat,
143 Item::BirchBoat,
144 Item::JungleBoat,
145 Item::AcaciaBoat,
146 Item::DarkOakBoat,
147 Item::PaleOakBoat,
148 Item::MangroveBoat,
149 Item::BambooRaft,
150 Item::CherryBoat,
151 Item::OakChestBoat,
152 Item::SpruceChestBoat,
153 Item::BirchChestBoat,
154 Item::JungleChestBoat,
155 Item::AcaciaChestBoat,
156 Item::DarkOakChestBoat,
157 Item::PaleOakChestBoat,
158 Item::MangroveChestBoat,
159 Item::BambooChestRaft,
160 Item::CherryChestBoat,
161 ])
162});
163pub static BOOK_CLONING_TARGET: LazyLock<HashSet<Item>> =
164 LazyLock::new(|| HashSet::from_iter([Item::WritableBook]));
165pub static BOOKSHELF_BOOKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
166 HashSet::from_iter([
167 Item::Book,
168 Item::WrittenBook,
169 Item::EnchantedBook,
170 Item::WritableBook,
171 Item::KnowledgeBook,
172 ])
173});
174pub static BREAKS_DECORATED_POTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
175 HashSet::from_iter([
176 Item::Trident,
177 Item::Mace,
178 Item::DiamondSword,
179 Item::StoneSword,
180 Item::GoldenSword,
181 Item::NetheriteSword,
182 Item::WoodenSword,
183 Item::IronSword,
184 Item::CopperSword,
185 Item::DiamondAxe,
186 Item::StoneAxe,
187 Item::GoldenAxe,
188 Item::NetheriteAxe,
189 Item::WoodenAxe,
190 Item::IronAxe,
191 Item::CopperAxe,
192 Item::DiamondPickaxe,
193 Item::StonePickaxe,
194 Item::GoldenPickaxe,
195 Item::NetheritePickaxe,
196 Item::WoodenPickaxe,
197 Item::IronPickaxe,
198 Item::CopperPickaxe,
199 Item::DiamondShovel,
200 Item::StoneShovel,
201 Item::GoldenShovel,
202 Item::NetheriteShovel,
203 Item::WoodenShovel,
204 Item::IronShovel,
205 Item::CopperShovel,
206 Item::DiamondHoe,
207 Item::StoneHoe,
208 Item::GoldenHoe,
209 Item::NetheriteHoe,
210 Item::WoodenHoe,
211 Item::IronHoe,
212 Item::CopperHoe,
213 ])
214});
215pub static BREWING_FUEL: LazyLock<HashSet<Item>> =
216 LazyLock::new(|| HashSet::from_iter([Item::BlazePowder]));
217pub static BUNDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
218 HashSet::from_iter([
219 Item::Bundle,
220 Item::BlackBundle,
221 Item::BlueBundle,
222 Item::BrownBundle,
223 Item::CyanBundle,
224 Item::GrayBundle,
225 Item::GreenBundle,
226 Item::LightBlueBundle,
227 Item::LightGrayBundle,
228 Item::LimeBundle,
229 Item::MagentaBundle,
230 Item::OrangeBundle,
231 Item::PinkBundle,
232 Item::PurpleBundle,
233 Item::RedBundle,
234 Item::YellowBundle,
235 Item::WhiteBundle,
236 ])
237});
238pub static BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
239 HashSet::from_iter([
240 Item::OakButton,
241 Item::SpruceButton,
242 Item::BirchButton,
243 Item::JungleButton,
244 Item::AcaciaButton,
245 Item::DarkOakButton,
246 Item::PaleOakButton,
247 Item::CrimsonButton,
248 Item::WarpedButton,
249 Item::MangroveButton,
250 Item::BambooButton,
251 Item::CherryButton,
252 Item::StoneButton,
253 Item::PolishedBlackstoneButton,
254 ])
255});
256pub static CAMEL_FOOD: LazyLock<HashSet<Item>> =
257 LazyLock::new(|| HashSet::from_iter([Item::Cactus]));
258pub static CANDLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
259 HashSet::from_iter([
260 Item::Candle,
261 Item::WhiteCandle,
262 Item::OrangeCandle,
263 Item::MagentaCandle,
264 Item::LightBlueCandle,
265 Item::YellowCandle,
266 Item::LimeCandle,
267 Item::PinkCandle,
268 Item::GrayCandle,
269 Item::LightGrayCandle,
270 Item::CyanCandle,
271 Item::PurpleCandle,
272 Item::BlueCandle,
273 Item::BrownCandle,
274 Item::GreenCandle,
275 Item::RedCandle,
276 Item::BlackCandle,
277 ])
278});
279pub static CAT_FOOD: LazyLock<HashSet<Item>> =
280 LazyLock::new(|| HashSet::from_iter([Item::Cod, Item::Salmon]));
281pub static CHAINS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
282 HashSet::from_iter([
283 Item::IronChain,
284 Item::CopperChain,
285 Item::WaxedCopperChain,
286 Item::ExposedCopperChain,
287 Item::WaxedExposedCopperChain,
288 Item::WeatheredCopperChain,
289 Item::WaxedWeatheredCopperChain,
290 Item::OxidizedCopperChain,
291 Item::WaxedOxidizedCopperChain,
292 ])
293});
294pub static CHERRY_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
295 HashSet::from_iter([
296 Item::CherryLog,
297 Item::CherryWood,
298 Item::StrippedCherryLog,
299 Item::StrippedCherryWood,
300 ])
301});
302pub static CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
303 HashSet::from_iter([
304 Item::LeatherChestplate,
305 Item::CopperChestplate,
306 Item::ChainmailChestplate,
307 Item::GoldenChestplate,
308 Item::IronChestplate,
309 Item::DiamondChestplate,
310 Item::NetheriteChestplate,
311 ])
312});
313pub static CHEST_BOATS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
314 HashSet::from_iter([
315 Item::OakChestBoat,
316 Item::SpruceChestBoat,
317 Item::BirchChestBoat,
318 Item::JungleChestBoat,
319 Item::AcaciaChestBoat,
320 Item::DarkOakChestBoat,
321 Item::PaleOakChestBoat,
322 Item::MangroveChestBoat,
323 Item::BambooChestRaft,
324 Item::CherryChestBoat,
325 ])
326});
327pub static CHICKEN_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
328 HashSet::from_iter([
329 Item::WheatSeeds,
330 Item::MelonSeeds,
331 Item::PumpkinSeeds,
332 Item::BeetrootSeeds,
333 Item::TorchflowerSeeds,
334 Item::PitcherPod,
335 ])
336});
337pub static CLUSTER_MAX_HARVESTABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
338 HashSet::from_iter([
339 Item::DiamondPickaxe,
340 Item::GoldenPickaxe,
341 Item::IronPickaxe,
342 Item::NetheritePickaxe,
343 Item::StonePickaxe,
344 Item::WoodenPickaxe,
345 Item::CopperPickaxe,
346 ])
347});
348pub static COAL_ORES: LazyLock<HashSet<Item>> =
349 LazyLock::new(|| HashSet::from_iter([Item::CoalOre, Item::DeepslateCoalOre]));
350pub static COALS: LazyLock<HashSet<Item>> =
351 LazyLock::new(|| HashSet::from_iter([Item::Coal, Item::Charcoal]));
352pub static COMPASSES: LazyLock<HashSet<Item>> =
353 LazyLock::new(|| HashSet::from_iter([Item::Compass, Item::RecoveryCompass]));
354pub static COMPLETES_FIND_TREE_TUTORIAL: LazyLock<HashSet<Item>> = LazyLock::new(|| {
355 HashSet::from_iter([
356 Item::JungleLeaves,
357 Item::OakLeaves,
358 Item::SpruceLeaves,
359 Item::PaleOakLeaves,
360 Item::DarkOakLeaves,
361 Item::AcaciaLeaves,
362 Item::BirchLeaves,
363 Item::AzaleaLeaves,
364 Item::FloweringAzaleaLeaves,
365 Item::MangroveLeaves,
366 Item::CherryLeaves,
367 Item::NetherWartBlock,
368 Item::WarpedWartBlock,
369 Item::CrimsonStem,
370 Item::StrippedCrimsonStem,
371 Item::CrimsonHyphae,
372 Item::StrippedCrimsonHyphae,
373 Item::WarpedStem,
374 Item::StrippedWarpedStem,
375 Item::WarpedHyphae,
376 Item::StrippedWarpedHyphae,
377 Item::DarkOakLog,
378 Item::DarkOakWood,
379 Item::StrippedDarkOakLog,
380 Item::StrippedDarkOakWood,
381 Item::PaleOakLog,
382 Item::PaleOakWood,
383 Item::StrippedPaleOakLog,
384 Item::StrippedPaleOakWood,
385 Item::OakLog,
386 Item::OakWood,
387 Item::StrippedOakLog,
388 Item::StrippedOakWood,
389 Item::AcaciaLog,
390 Item::AcaciaWood,
391 Item::StrippedAcaciaLog,
392 Item::StrippedAcaciaWood,
393 Item::BirchLog,
394 Item::BirchWood,
395 Item::StrippedBirchLog,
396 Item::StrippedBirchWood,
397 Item::JungleLog,
398 Item::JungleWood,
399 Item::StrippedJungleLog,
400 Item::StrippedJungleWood,
401 Item::SpruceLog,
402 Item::SpruceWood,
403 Item::StrippedSpruceLog,
404 Item::StrippedSpruceWood,
405 Item::MangroveLog,
406 Item::MangroveWood,
407 Item::StrippedMangroveLog,
408 Item::StrippedMangroveWood,
409 Item::CherryLog,
410 Item::CherryWood,
411 Item::StrippedCherryLog,
412 Item::StrippedCherryWood,
413 ])
414});
415pub static COPPER: LazyLock<HashSet<Item>> = LazyLock::new(|| {
416 HashSet::from_iter([
417 Item::CopperBlock,
418 Item::ExposedCopper,
419 Item::WeatheredCopper,
420 Item::OxidizedCopper,
421 Item::WaxedCopperBlock,
422 Item::WaxedExposedCopper,
423 Item::WaxedWeatheredCopper,
424 Item::WaxedOxidizedCopper,
425 ])
426});
427pub static COPPER_CHESTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
428 HashSet::from_iter([
429 Item::CopperChest,
430 Item::ExposedCopperChest,
431 Item::WeatheredCopperChest,
432 Item::OxidizedCopperChest,
433 Item::WaxedCopperChest,
434 Item::WaxedExposedCopperChest,
435 Item::WaxedWeatheredCopperChest,
436 Item::WaxedOxidizedCopperChest,
437 ])
438});
439pub static COPPER_GOLEM_STATUES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
440 HashSet::from_iter([
441 Item::CopperGolemStatue,
442 Item::ExposedCopperGolemStatue,
443 Item::WeatheredCopperGolemStatue,
444 Item::OxidizedCopperGolemStatue,
445 Item::WaxedCopperGolemStatue,
446 Item::WaxedExposedCopperGolemStatue,
447 Item::WaxedWeatheredCopperGolemStatue,
448 Item::WaxedOxidizedCopperGolemStatue,
449 ])
450});
451pub static COPPER_ORES: LazyLock<HashSet<Item>> =
452 LazyLock::new(|| HashSet::from_iter([Item::CopperOre, Item::DeepslateCopperOre]));
453pub static COPPER_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
454 LazyLock::new(|| HashSet::from_iter([Item::CopperIngot]));
455pub static COW_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| HashSet::from_iter([Item::Wheat]));
456pub static CREEPER_DROP_MUSIC_DISCS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
457 HashSet::from_iter([
458 Item::MusicDisc13,
459 Item::MusicDiscCat,
460 Item::MusicDiscBlocks,
461 Item::MusicDiscChirp,
462 Item::MusicDiscFar,
463 Item::MusicDiscMall,
464 Item::MusicDiscMellohi,
465 Item::MusicDiscStal,
466 Item::MusicDiscStrad,
467 Item::MusicDiscWard,
468 Item::MusicDisc11,
469 Item::MusicDiscWait,
470 ])
471});
472pub static CREEPER_IGNITERS: LazyLock<HashSet<Item>> =
473 LazyLock::new(|| HashSet::from_iter([Item::FlintAndSteel, Item::FireCharge]));
474pub static CRIMSON_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
475 HashSet::from_iter([
476 Item::CrimsonStem,
477 Item::StrippedCrimsonStem,
478 Item::CrimsonHyphae,
479 Item::StrippedCrimsonHyphae,
480 ])
481});
482pub static DAMPENS_VIBRATIONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
483 HashSet::from_iter([
484 Item::WhiteWool,
485 Item::OrangeWool,
486 Item::MagentaWool,
487 Item::LightBlueWool,
488 Item::YellowWool,
489 Item::LimeWool,
490 Item::PinkWool,
491 Item::GrayWool,
492 Item::LightGrayWool,
493 Item::CyanWool,
494 Item::PurpleWool,
495 Item::BlueWool,
496 Item::BrownWool,
497 Item::GreenWool,
498 Item::RedWool,
499 Item::BlackWool,
500 Item::WhiteCarpet,
501 Item::OrangeCarpet,
502 Item::MagentaCarpet,
503 Item::LightBlueCarpet,
504 Item::YellowCarpet,
505 Item::LimeCarpet,
506 Item::PinkCarpet,
507 Item::GrayCarpet,
508 Item::LightGrayCarpet,
509 Item::CyanCarpet,
510 Item::PurpleCarpet,
511 Item::BlueCarpet,
512 Item::BrownCarpet,
513 Item::GreenCarpet,
514 Item::RedCarpet,
515 Item::BlackCarpet,
516 ])
517});
518pub static DARK_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
519 HashSet::from_iter([
520 Item::DarkOakLog,
521 Item::DarkOakWood,
522 Item::StrippedDarkOakLog,
523 Item::StrippedDarkOakWood,
524 ])
525});
526pub static DECORATED_POT_INGREDIENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
527 HashSet::from_iter([
528 Item::Brick,
529 Item::AnglerPotterySherd,
530 Item::ArcherPotterySherd,
531 Item::ArmsUpPotterySherd,
532 Item::BladePotterySherd,
533 Item::BrewerPotterySherd,
534 Item::BurnPotterySherd,
535 Item::DangerPotterySherd,
536 Item::ExplorerPotterySherd,
537 Item::FriendPotterySherd,
538 Item::HeartPotterySherd,
539 Item::HeartbreakPotterySherd,
540 Item::HowlPotterySherd,
541 Item::MinerPotterySherd,
542 Item::MournerPotterySherd,
543 Item::PlentyPotterySherd,
544 Item::PrizePotterySherd,
545 Item::SheafPotterySherd,
546 Item::ShelterPotterySherd,
547 Item::SkullPotterySherd,
548 Item::SnortPotterySherd,
549 Item::FlowPotterySherd,
550 Item::GusterPotterySherd,
551 Item::ScrapePotterySherd,
552 ])
553});
554pub static DECORATED_POT_SHERDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
555 HashSet::from_iter([
556 Item::AnglerPotterySherd,
557 Item::ArcherPotterySherd,
558 Item::ArmsUpPotterySherd,
559 Item::BladePotterySherd,
560 Item::BrewerPotterySherd,
561 Item::BurnPotterySherd,
562 Item::DangerPotterySherd,
563 Item::ExplorerPotterySherd,
564 Item::FriendPotterySherd,
565 Item::HeartPotterySherd,
566 Item::HeartbreakPotterySherd,
567 Item::HowlPotterySherd,
568 Item::MinerPotterySherd,
569 Item::MournerPotterySherd,
570 Item::PlentyPotterySherd,
571 Item::PrizePotterySherd,
572 Item::SheafPotterySherd,
573 Item::ShelterPotterySherd,
574 Item::SkullPotterySherd,
575 Item::SnortPotterySherd,
576 Item::FlowPotterySherd,
577 Item::GusterPotterySherd,
578 Item::ScrapePotterySherd,
579 ])
580});
581pub static DIAMOND_ORES: LazyLock<HashSet<Item>> =
582 LazyLock::new(|| HashSet::from_iter([Item::DiamondOre, Item::DeepslateDiamondOre]));
583pub static DIAMOND_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
584 LazyLock::new(|| HashSet::from_iter([Item::Diamond]));
585pub static DIRT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
586 HashSet::from_iter([
587 Item::Dirt,
588 Item::GrassBlock,
589 Item::Podzol,
590 Item::CoarseDirt,
591 Item::Mycelium,
592 Item::RootedDirt,
593 Item::MossBlock,
594 Item::PaleMossBlock,
595 Item::Mud,
596 Item::MuddyMangroveRoots,
597 ])
598});
599pub static DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
600 HashSet::from_iter([
601 Item::CopperDoor,
602 Item::ExposedCopperDoor,
603 Item::WeatheredCopperDoor,
604 Item::OxidizedCopperDoor,
605 Item::WaxedCopperDoor,
606 Item::WaxedExposedCopperDoor,
607 Item::WaxedWeatheredCopperDoor,
608 Item::WaxedOxidizedCopperDoor,
609 Item::IronDoor,
610 Item::OakDoor,
611 Item::SpruceDoor,
612 Item::BirchDoor,
613 Item::JungleDoor,
614 Item::AcaciaDoor,
615 Item::DarkOakDoor,
616 Item::PaleOakDoor,
617 Item::CrimsonDoor,
618 Item::WarpedDoor,
619 Item::MangroveDoor,
620 Item::BambooDoor,
621 Item::CherryDoor,
622 ])
623});
624pub static DROWNED_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
625 LazyLock::new(|| HashSet::from_iter([Item::Trident]));
626pub static DUPLICATES_ALLAYS: LazyLock<HashSet<Item>> =
627 LazyLock::new(|| HashSet::from_iter([Item::AmethystShard]));
628pub static DYEABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
629 HashSet::from_iter([
630 Item::LeatherHelmet,
631 Item::LeatherChestplate,
632 Item::LeatherLeggings,
633 Item::LeatherBoots,
634 Item::LeatherHorseArmor,
635 Item::WolfArmor,
636 ])
637});
638pub static EGGS: LazyLock<HashSet<Item>> =
639 LazyLock::new(|| HashSet::from_iter([Item::Egg, Item::BlueEgg, Item::BrownEgg]));
640pub static EMERALD_ORES: LazyLock<HashSet<Item>> =
641 LazyLock::new(|| HashSet::from_iter([Item::EmeraldOre, Item::DeepslateEmeraldOre]));
642pub static ENCHANTABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
643 HashSet::from_iter([
644 Item::LeatherBoots,
645 Item::CopperBoots,
646 Item::ChainmailBoots,
647 Item::GoldenBoots,
648 Item::IronBoots,
649 Item::DiamondBoots,
650 Item::NetheriteBoots,
651 Item::LeatherLeggings,
652 Item::CopperLeggings,
653 Item::ChainmailLeggings,
654 Item::GoldenLeggings,
655 Item::IronLeggings,
656 Item::DiamondLeggings,
657 Item::NetheriteLeggings,
658 Item::LeatherChestplate,
659 Item::CopperChestplate,
660 Item::ChainmailChestplate,
661 Item::GoldenChestplate,
662 Item::IronChestplate,
663 Item::DiamondChestplate,
664 Item::NetheriteChestplate,
665 Item::LeatherHelmet,
666 Item::CopperHelmet,
667 Item::ChainmailHelmet,
668 Item::GoldenHelmet,
669 Item::IronHelmet,
670 Item::DiamondHelmet,
671 Item::NetheriteHelmet,
672 Item::TurtleHelmet,
673 ])
674});
675pub static ENCHANTABLE_BOW: LazyLock<HashSet<Item>> =
676 LazyLock::new(|| HashSet::from_iter([Item::Bow]));
677pub static ENCHANTABLE_CHEST_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
678 HashSet::from_iter([
679 Item::LeatherChestplate,
680 Item::CopperChestplate,
681 Item::ChainmailChestplate,
682 Item::GoldenChestplate,
683 Item::IronChestplate,
684 Item::DiamondChestplate,
685 Item::NetheriteChestplate,
686 ])
687});
688pub static ENCHANTABLE_CROSSBOW: LazyLock<HashSet<Item>> =
689 LazyLock::new(|| HashSet::from_iter([Item::Crossbow]));
690pub static ENCHANTABLE_DURABILITY: LazyLock<HashSet<Item>> = LazyLock::new(|| {
691 HashSet::from_iter([
692 Item::Elytra,
693 Item::Shield,
694 Item::Bow,
695 Item::Crossbow,
696 Item::Trident,
697 Item::FlintAndSteel,
698 Item::Shears,
699 Item::Brush,
700 Item::FishingRod,
701 Item::CarrotOnAStick,
702 Item::WarpedFungusOnAStick,
703 Item::Mace,
704 Item::LeatherBoots,
705 Item::CopperBoots,
706 Item::ChainmailBoots,
707 Item::GoldenBoots,
708 Item::IronBoots,
709 Item::DiamondBoots,
710 Item::NetheriteBoots,
711 Item::LeatherLeggings,
712 Item::CopperLeggings,
713 Item::ChainmailLeggings,
714 Item::GoldenLeggings,
715 Item::IronLeggings,
716 Item::DiamondLeggings,
717 Item::NetheriteLeggings,
718 Item::LeatherChestplate,
719 Item::CopperChestplate,
720 Item::ChainmailChestplate,
721 Item::GoldenChestplate,
722 Item::IronChestplate,
723 Item::DiamondChestplate,
724 Item::NetheriteChestplate,
725 Item::LeatherHelmet,
726 Item::CopperHelmet,
727 Item::ChainmailHelmet,
728 Item::GoldenHelmet,
729 Item::IronHelmet,
730 Item::DiamondHelmet,
731 Item::NetheriteHelmet,
732 Item::TurtleHelmet,
733 Item::DiamondSword,
734 Item::StoneSword,
735 Item::GoldenSword,
736 Item::NetheriteSword,
737 Item::WoodenSword,
738 Item::IronSword,
739 Item::CopperSword,
740 Item::DiamondAxe,
741 Item::StoneAxe,
742 Item::GoldenAxe,
743 Item::NetheriteAxe,
744 Item::WoodenAxe,
745 Item::IronAxe,
746 Item::CopperAxe,
747 Item::DiamondPickaxe,
748 Item::StonePickaxe,
749 Item::GoldenPickaxe,
750 Item::NetheritePickaxe,
751 Item::WoodenPickaxe,
752 Item::IronPickaxe,
753 Item::CopperPickaxe,
754 Item::DiamondShovel,
755 Item::StoneShovel,
756 Item::GoldenShovel,
757 Item::NetheriteShovel,
758 Item::WoodenShovel,
759 Item::IronShovel,
760 Item::CopperShovel,
761 Item::DiamondHoe,
762 Item::StoneHoe,
763 Item::GoldenHoe,
764 Item::NetheriteHoe,
765 Item::WoodenHoe,
766 Item::IronHoe,
767 Item::CopperHoe,
768 ])
769});
770pub static ENCHANTABLE_EQUIPPABLE: LazyLock<HashSet<Item>> = LazyLock::new(|| {
771 HashSet::from_iter([
772 Item::Elytra,
773 Item::CarvedPumpkin,
774 Item::LeatherBoots,
775 Item::CopperBoots,
776 Item::ChainmailBoots,
777 Item::GoldenBoots,
778 Item::IronBoots,
779 Item::DiamondBoots,
780 Item::NetheriteBoots,
781 Item::LeatherLeggings,
782 Item::CopperLeggings,
783 Item::ChainmailLeggings,
784 Item::GoldenLeggings,
785 Item::IronLeggings,
786 Item::DiamondLeggings,
787 Item::NetheriteLeggings,
788 Item::LeatherChestplate,
789 Item::CopperChestplate,
790 Item::ChainmailChestplate,
791 Item::GoldenChestplate,
792 Item::IronChestplate,
793 Item::DiamondChestplate,
794 Item::NetheriteChestplate,
795 Item::LeatherHelmet,
796 Item::CopperHelmet,
797 Item::ChainmailHelmet,
798 Item::GoldenHelmet,
799 Item::IronHelmet,
800 Item::DiamondHelmet,
801 Item::NetheriteHelmet,
802 Item::TurtleHelmet,
803 Item::PlayerHead,
804 Item::CreeperHead,
805 Item::ZombieHead,
806 Item::SkeletonSkull,
807 Item::WitherSkeletonSkull,
808 Item::DragonHead,
809 Item::PiglinHead,
810 ])
811});
812pub static ENCHANTABLE_FIRE_ASPECT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
813 HashSet::from_iter([
814 Item::Mace,
815 Item::DiamondSword,
816 Item::StoneSword,
817 Item::GoldenSword,
818 Item::NetheriteSword,
819 Item::WoodenSword,
820 Item::IronSword,
821 Item::CopperSword,
822 ])
823});
824pub static ENCHANTABLE_FISHING: LazyLock<HashSet<Item>> =
825 LazyLock::new(|| HashSet::from_iter([Item::FishingRod]));
826pub static ENCHANTABLE_FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
827 HashSet::from_iter([
828 Item::LeatherBoots,
829 Item::CopperBoots,
830 Item::ChainmailBoots,
831 Item::GoldenBoots,
832 Item::IronBoots,
833 Item::DiamondBoots,
834 Item::NetheriteBoots,
835 ])
836});
837pub static ENCHANTABLE_HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
838 HashSet::from_iter([
839 Item::LeatherHelmet,
840 Item::CopperHelmet,
841 Item::ChainmailHelmet,
842 Item::GoldenHelmet,
843 Item::IronHelmet,
844 Item::DiamondHelmet,
845 Item::NetheriteHelmet,
846 Item::TurtleHelmet,
847 ])
848});
849pub static ENCHANTABLE_LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
850 HashSet::from_iter([
851 Item::LeatherLeggings,
852 Item::CopperLeggings,
853 Item::ChainmailLeggings,
854 Item::GoldenLeggings,
855 Item::IronLeggings,
856 Item::DiamondLeggings,
857 Item::NetheriteLeggings,
858 ])
859});
860pub static ENCHANTABLE_MACE: LazyLock<HashSet<Item>> =
861 LazyLock::new(|| HashSet::from_iter([Item::Mace]));
862pub static ENCHANTABLE_MINING: LazyLock<HashSet<Item>> = LazyLock::new(|| {
863 HashSet::from_iter([
864 Item::Shears,
865 Item::DiamondAxe,
866 Item::StoneAxe,
867 Item::GoldenAxe,
868 Item::NetheriteAxe,
869 Item::WoodenAxe,
870 Item::IronAxe,
871 Item::CopperAxe,
872 Item::DiamondPickaxe,
873 Item::StonePickaxe,
874 Item::GoldenPickaxe,
875 Item::NetheritePickaxe,
876 Item::WoodenPickaxe,
877 Item::IronPickaxe,
878 Item::CopperPickaxe,
879 Item::DiamondShovel,
880 Item::StoneShovel,
881 Item::GoldenShovel,
882 Item::NetheriteShovel,
883 Item::WoodenShovel,
884 Item::IronShovel,
885 Item::CopperShovel,
886 Item::DiamondHoe,
887 Item::StoneHoe,
888 Item::GoldenHoe,
889 Item::NetheriteHoe,
890 Item::WoodenHoe,
891 Item::IronHoe,
892 Item::CopperHoe,
893 ])
894});
895pub static ENCHANTABLE_MINING_LOOT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
896 HashSet::from_iter([
897 Item::DiamondAxe,
898 Item::StoneAxe,
899 Item::GoldenAxe,
900 Item::NetheriteAxe,
901 Item::WoodenAxe,
902 Item::IronAxe,
903 Item::CopperAxe,
904 Item::DiamondPickaxe,
905 Item::StonePickaxe,
906 Item::GoldenPickaxe,
907 Item::NetheritePickaxe,
908 Item::WoodenPickaxe,
909 Item::IronPickaxe,
910 Item::CopperPickaxe,
911 Item::DiamondShovel,
912 Item::StoneShovel,
913 Item::GoldenShovel,
914 Item::NetheriteShovel,
915 Item::WoodenShovel,
916 Item::IronShovel,
917 Item::CopperShovel,
918 Item::DiamondHoe,
919 Item::StoneHoe,
920 Item::GoldenHoe,
921 Item::NetheriteHoe,
922 Item::WoodenHoe,
923 Item::IronHoe,
924 Item::CopperHoe,
925 ])
926});
927pub static ENCHANTABLE_SHARP_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| {
928 HashSet::from_iter([
929 Item::DiamondSword,
930 Item::StoneSword,
931 Item::GoldenSword,
932 Item::NetheriteSword,
933 Item::WoodenSword,
934 Item::IronSword,
935 Item::CopperSword,
936 Item::DiamondAxe,
937 Item::StoneAxe,
938 Item::GoldenAxe,
939 Item::NetheriteAxe,
940 Item::WoodenAxe,
941 Item::IronAxe,
942 Item::CopperAxe,
943 ])
944});
945pub static ENCHANTABLE_SWORD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
946 HashSet::from_iter([
947 Item::DiamondSword,
948 Item::StoneSword,
949 Item::GoldenSword,
950 Item::NetheriteSword,
951 Item::WoodenSword,
952 Item::IronSword,
953 Item::CopperSword,
954 ])
955});
956pub static ENCHANTABLE_TRIDENT: LazyLock<HashSet<Item>> =
957 LazyLock::new(|| HashSet::from_iter([Item::Trident]));
958pub static ENCHANTABLE_VANISHING: LazyLock<HashSet<Item>> = LazyLock::new(|| {
959 HashSet::from_iter([
960 Item::Compass,
961 Item::CarvedPumpkin,
962 Item::Elytra,
963 Item::Shield,
964 Item::Bow,
965 Item::Crossbow,
966 Item::Trident,
967 Item::FlintAndSteel,
968 Item::Shears,
969 Item::Brush,
970 Item::FishingRod,
971 Item::CarrotOnAStick,
972 Item::WarpedFungusOnAStick,
973 Item::Mace,
974 Item::PlayerHead,
975 Item::CreeperHead,
976 Item::ZombieHead,
977 Item::SkeletonSkull,
978 Item::WitherSkeletonSkull,
979 Item::DragonHead,
980 Item::PiglinHead,
981 Item::LeatherBoots,
982 Item::CopperBoots,
983 Item::ChainmailBoots,
984 Item::GoldenBoots,
985 Item::IronBoots,
986 Item::DiamondBoots,
987 Item::NetheriteBoots,
988 Item::LeatherLeggings,
989 Item::CopperLeggings,
990 Item::ChainmailLeggings,
991 Item::GoldenLeggings,
992 Item::IronLeggings,
993 Item::DiamondLeggings,
994 Item::NetheriteLeggings,
995 Item::LeatherChestplate,
996 Item::CopperChestplate,
997 Item::ChainmailChestplate,
998 Item::GoldenChestplate,
999 Item::IronChestplate,
1000 Item::DiamondChestplate,
1001 Item::NetheriteChestplate,
1002 Item::LeatherHelmet,
1003 Item::CopperHelmet,
1004 Item::ChainmailHelmet,
1005 Item::GoldenHelmet,
1006 Item::IronHelmet,
1007 Item::DiamondHelmet,
1008 Item::NetheriteHelmet,
1009 Item::TurtleHelmet,
1010 Item::DiamondSword,
1011 Item::StoneSword,
1012 Item::GoldenSword,
1013 Item::NetheriteSword,
1014 Item::WoodenSword,
1015 Item::IronSword,
1016 Item::CopperSword,
1017 Item::DiamondAxe,
1018 Item::StoneAxe,
1019 Item::GoldenAxe,
1020 Item::NetheriteAxe,
1021 Item::WoodenAxe,
1022 Item::IronAxe,
1023 Item::CopperAxe,
1024 Item::DiamondPickaxe,
1025 Item::StonePickaxe,
1026 Item::GoldenPickaxe,
1027 Item::NetheritePickaxe,
1028 Item::WoodenPickaxe,
1029 Item::IronPickaxe,
1030 Item::CopperPickaxe,
1031 Item::DiamondShovel,
1032 Item::StoneShovel,
1033 Item::GoldenShovel,
1034 Item::NetheriteShovel,
1035 Item::WoodenShovel,
1036 Item::IronShovel,
1037 Item::CopperShovel,
1038 Item::DiamondHoe,
1039 Item::StoneHoe,
1040 Item::GoldenHoe,
1041 Item::NetheriteHoe,
1042 Item::WoodenHoe,
1043 Item::IronHoe,
1044 Item::CopperHoe,
1045 ])
1046});
1047pub static ENCHANTABLE_WEAPON: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1048 HashSet::from_iter([
1049 Item::Mace,
1050 Item::DiamondSword,
1051 Item::StoneSword,
1052 Item::GoldenSword,
1053 Item::NetheriteSword,
1054 Item::WoodenSword,
1055 Item::IronSword,
1056 Item::CopperSword,
1057 Item::DiamondAxe,
1058 Item::StoneAxe,
1059 Item::GoldenAxe,
1060 Item::NetheriteAxe,
1061 Item::WoodenAxe,
1062 Item::IronAxe,
1063 Item::CopperAxe,
1064 ])
1065});
1066pub static FENCE_GATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1067 HashSet::from_iter([
1068 Item::AcaciaFenceGate,
1069 Item::BirchFenceGate,
1070 Item::DarkOakFenceGate,
1071 Item::PaleOakFenceGate,
1072 Item::JungleFenceGate,
1073 Item::OakFenceGate,
1074 Item::SpruceFenceGate,
1075 Item::CrimsonFenceGate,
1076 Item::WarpedFenceGate,
1077 Item::MangroveFenceGate,
1078 Item::BambooFenceGate,
1079 Item::CherryFenceGate,
1080 ])
1081});
1082pub static FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1083 HashSet::from_iter([
1084 Item::NetherBrickFence,
1085 Item::OakFence,
1086 Item::AcaciaFence,
1087 Item::DarkOakFence,
1088 Item::PaleOakFence,
1089 Item::SpruceFence,
1090 Item::BirchFence,
1091 Item::JungleFence,
1092 Item::CrimsonFence,
1093 Item::WarpedFence,
1094 Item::MangroveFence,
1095 Item::BambooFence,
1096 Item::CherryFence,
1097 ])
1098});
1099pub static FISHES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1100 HashSet::from_iter([
1101 Item::Cod,
1102 Item::CookedCod,
1103 Item::Salmon,
1104 Item::CookedSalmon,
1105 Item::Pufferfish,
1106 Item::TropicalFish,
1107 ])
1108});
1109pub static FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1110 HashSet::from_iter([
1111 Item::Sunflower,
1112 Item::Lilac,
1113 Item::Peony,
1114 Item::RoseBush,
1115 Item::PitcherPlant,
1116 Item::FloweringAzaleaLeaves,
1117 Item::FloweringAzalea,
1118 Item::MangrovePropagule,
1119 Item::CherryLeaves,
1120 Item::PinkPetals,
1121 Item::Wildflowers,
1122 Item::ChorusFlower,
1123 Item::SporeBlossom,
1124 Item::CactusFlower,
1125 Item::Dandelion,
1126 Item::OpenEyeblossom,
1127 Item::Poppy,
1128 Item::BlueOrchid,
1129 Item::Allium,
1130 Item::AzureBluet,
1131 Item::RedTulip,
1132 Item::OrangeTulip,
1133 Item::WhiteTulip,
1134 Item::PinkTulip,
1135 Item::OxeyeDaisy,
1136 Item::Cornflower,
1137 Item::LilyOfTheValley,
1138 Item::WitherRose,
1139 Item::Torchflower,
1140 Item::ClosedEyeblossom,
1141 ])
1142});
1143pub static FOOT_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1144 HashSet::from_iter([
1145 Item::LeatherBoots,
1146 Item::CopperBoots,
1147 Item::ChainmailBoots,
1148 Item::GoldenBoots,
1149 Item::IronBoots,
1150 Item::DiamondBoots,
1151 Item::NetheriteBoots,
1152 ])
1153});
1154pub static FOX_FOOD: LazyLock<HashSet<Item>> =
1155 LazyLock::new(|| HashSet::from_iter([Item::SweetBerries, Item::GlowBerries]));
1156pub static FREEZE_IMMUNE_WEARABLES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1157 HashSet::from_iter([
1158 Item::LeatherBoots,
1159 Item::LeatherLeggings,
1160 Item::LeatherChestplate,
1161 Item::LeatherHelmet,
1162 Item::LeatherHorseArmor,
1163 ])
1164});
1165pub static FROG_FOOD: LazyLock<HashSet<Item>> =
1166 LazyLock::new(|| HashSet::from_iter([Item::SlimeBall]));
1167pub static FURNACE_MINECART_FUEL: LazyLock<HashSet<Item>> =
1168 LazyLock::new(|| HashSet::from_iter([Item::Coal, Item::Charcoal]));
1169pub static GAZE_DISGUISE_EQUIPMENT: LazyLock<HashSet<Item>> =
1170 LazyLock::new(|| HashSet::from_iter([Item::CarvedPumpkin]));
1171pub static GOAT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| HashSet::from_iter([Item::Wheat]));
1172pub static GOLD_ORES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1173 HashSet::from_iter([Item::GoldOre, Item::NetherGoldOre, Item::DeepslateGoldOre])
1174});
1175pub static GOLD_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1176 LazyLock::new(|| HashSet::from_iter([Item::GoldIngot]));
1177pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1178 HashSet::from_iter([
1179 Item::OakHangingSign,
1180 Item::SpruceHangingSign,
1181 Item::BirchHangingSign,
1182 Item::AcaciaHangingSign,
1183 Item::CherryHangingSign,
1184 Item::JungleHangingSign,
1185 Item::DarkOakHangingSign,
1186 Item::PaleOakHangingSign,
1187 Item::CrimsonHangingSign,
1188 Item::WarpedHangingSign,
1189 Item::MangroveHangingSign,
1190 Item::BambooHangingSign,
1191 ])
1192});
1193pub static HAPPY_GHAST_FOOD: LazyLock<HashSet<Item>> =
1194 LazyLock::new(|| HashSet::from_iter([Item::Snowball]));
1195pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1196 HashSet::from_iter([
1197 Item::Snowball,
1198 Item::WhiteHarness,
1199 Item::OrangeHarness,
1200 Item::MagentaHarness,
1201 Item::LightBlueHarness,
1202 Item::YellowHarness,
1203 Item::LimeHarness,
1204 Item::PinkHarness,
1205 Item::GrayHarness,
1206 Item::LightGrayHarness,
1207 Item::CyanHarness,
1208 Item::PurpleHarness,
1209 Item::BlueHarness,
1210 Item::BrownHarness,
1211 Item::GreenHarness,
1212 Item::RedHarness,
1213 Item::BlackHarness,
1214 ])
1215});
1216pub static HARNESSES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1217 HashSet::from_iter([
1218 Item::WhiteHarness,
1219 Item::OrangeHarness,
1220 Item::MagentaHarness,
1221 Item::LightBlueHarness,
1222 Item::YellowHarness,
1223 Item::LimeHarness,
1224 Item::PinkHarness,
1225 Item::GrayHarness,
1226 Item::LightGrayHarness,
1227 Item::CyanHarness,
1228 Item::PurpleHarness,
1229 Item::BlueHarness,
1230 Item::BrownHarness,
1231 Item::GreenHarness,
1232 Item::RedHarness,
1233 Item::BlackHarness,
1234 ])
1235});
1236pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1237 HashSet::from_iter([
1238 Item::LeatherHelmet,
1239 Item::CopperHelmet,
1240 Item::ChainmailHelmet,
1241 Item::GoldenHelmet,
1242 Item::IronHelmet,
1243 Item::DiamondHelmet,
1244 Item::NetheriteHelmet,
1245 Item::TurtleHelmet,
1246 ])
1247});
1248pub static HOES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1249 HashSet::from_iter([
1250 Item::DiamondHoe,
1251 Item::StoneHoe,
1252 Item::GoldenHoe,
1253 Item::NetheriteHoe,
1254 Item::WoodenHoe,
1255 Item::IronHoe,
1256 Item::CopperHoe,
1257 ])
1258});
1259pub static HOGLIN_FOOD: LazyLock<HashSet<Item>> =
1260 LazyLock::new(|| HashSet::from_iter([Item::CrimsonFungus]));
1261pub static HORSE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1262 HashSet::from_iter([
1263 Item::Wheat,
1264 Item::Sugar,
1265 Item::HayBlock,
1266 Item::Apple,
1267 Item::Carrot,
1268 Item::GoldenCarrot,
1269 Item::GoldenApple,
1270 Item::EnchantedGoldenApple,
1271 ])
1272});
1273pub static HORSE_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1274 HashSet::from_iter([
1275 Item::GoldenCarrot,
1276 Item::GoldenApple,
1277 Item::EnchantedGoldenApple,
1278 ])
1279});
1280pub static IGNORED_BY_PIGLIN_BABIES: LazyLock<HashSet<Item>> =
1281 LazyLock::new(|| HashSet::from_iter([Item::Leather]));
1282pub static IRON_ORES: LazyLock<HashSet<Item>> =
1283 LazyLock::new(|| HashSet::from_iter([Item::IronOre, Item::DeepslateIronOre]));
1284pub static IRON_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1285 LazyLock::new(|| HashSet::from_iter([Item::IronIngot]));
1286pub static JUNGLE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1287 HashSet::from_iter([
1288 Item::JungleLog,
1289 Item::JungleWood,
1290 Item::StrippedJungleLog,
1291 Item::StrippedJungleWood,
1292 ])
1293});
1294pub static LANTERNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1295 HashSet::from_iter([
1296 Item::Lantern,
1297 Item::SoulLantern,
1298 Item::CopperLantern,
1299 Item::WaxedCopperLantern,
1300 Item::ExposedCopperLantern,
1301 Item::WaxedExposedCopperLantern,
1302 Item::WeatheredCopperLantern,
1303 Item::WaxedWeatheredCopperLantern,
1304 Item::OxidizedCopperLantern,
1305 Item::WaxedOxidizedCopperLantern,
1306 ])
1307});
1308pub static LAPIS_ORES: LazyLock<HashSet<Item>> =
1309 LazyLock::new(|| HashSet::from_iter([Item::LapisOre, Item::DeepslateLapisOre]));
1310pub static LEAVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1311 HashSet::from_iter([
1312 Item::JungleLeaves,
1313 Item::OakLeaves,
1314 Item::SpruceLeaves,
1315 Item::PaleOakLeaves,
1316 Item::DarkOakLeaves,
1317 Item::AcaciaLeaves,
1318 Item::BirchLeaves,
1319 Item::AzaleaLeaves,
1320 Item::FloweringAzaleaLeaves,
1321 Item::MangroveLeaves,
1322 Item::CherryLeaves,
1323 ])
1324});
1325pub static LECTERN_BOOKS: LazyLock<HashSet<Item>> =
1326 LazyLock::new(|| HashSet::from_iter([Item::WrittenBook, Item::WritableBook]));
1327pub static LEG_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1328 HashSet::from_iter([
1329 Item::LeatherLeggings,
1330 Item::CopperLeggings,
1331 Item::ChainmailLeggings,
1332 Item::GoldenLeggings,
1333 Item::IronLeggings,
1334 Item::DiamondLeggings,
1335 Item::NetheriteLeggings,
1336 ])
1337});
1338pub static LIGHTNING_RODS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1339 HashSet::from_iter([
1340 Item::LightningRod,
1341 Item::ExposedLightningRod,
1342 Item::WeatheredLightningRod,
1343 Item::OxidizedLightningRod,
1344 Item::WaxedLightningRod,
1345 Item::WaxedExposedLightningRod,
1346 Item::WaxedWeatheredLightningRod,
1347 Item::WaxedOxidizedLightningRod,
1348 ])
1349});
1350pub static LLAMA_FOOD: LazyLock<HashSet<Item>> =
1351 LazyLock::new(|| HashSet::from_iter([Item::Wheat, Item::HayBlock]));
1352pub static LLAMA_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1353 LazyLock::new(|| HashSet::from_iter([Item::HayBlock]));
1354pub static LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1355 HashSet::from_iter([
1356 Item::CrimsonStem,
1357 Item::StrippedCrimsonStem,
1358 Item::CrimsonHyphae,
1359 Item::StrippedCrimsonHyphae,
1360 Item::WarpedStem,
1361 Item::StrippedWarpedStem,
1362 Item::WarpedHyphae,
1363 Item::StrippedWarpedHyphae,
1364 Item::DarkOakLog,
1365 Item::DarkOakWood,
1366 Item::StrippedDarkOakLog,
1367 Item::StrippedDarkOakWood,
1368 Item::PaleOakLog,
1369 Item::PaleOakWood,
1370 Item::StrippedPaleOakLog,
1371 Item::StrippedPaleOakWood,
1372 Item::OakLog,
1373 Item::OakWood,
1374 Item::StrippedOakLog,
1375 Item::StrippedOakWood,
1376 Item::AcaciaLog,
1377 Item::AcaciaWood,
1378 Item::StrippedAcaciaLog,
1379 Item::StrippedAcaciaWood,
1380 Item::BirchLog,
1381 Item::BirchWood,
1382 Item::StrippedBirchLog,
1383 Item::StrippedBirchWood,
1384 Item::JungleLog,
1385 Item::JungleWood,
1386 Item::StrippedJungleLog,
1387 Item::StrippedJungleWood,
1388 Item::SpruceLog,
1389 Item::SpruceWood,
1390 Item::StrippedSpruceLog,
1391 Item::StrippedSpruceWood,
1392 Item::MangroveLog,
1393 Item::MangroveWood,
1394 Item::StrippedMangroveLog,
1395 Item::StrippedMangroveWood,
1396 Item::CherryLog,
1397 Item::CherryWood,
1398 Item::StrippedCherryLog,
1399 Item::StrippedCherryWood,
1400 ])
1401});
1402pub static LOGS_THAT_BURN: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1403 HashSet::from_iter([
1404 Item::DarkOakLog,
1405 Item::DarkOakWood,
1406 Item::StrippedDarkOakLog,
1407 Item::StrippedDarkOakWood,
1408 Item::PaleOakLog,
1409 Item::PaleOakWood,
1410 Item::StrippedPaleOakLog,
1411 Item::StrippedPaleOakWood,
1412 Item::OakLog,
1413 Item::OakWood,
1414 Item::StrippedOakLog,
1415 Item::StrippedOakWood,
1416 Item::AcaciaLog,
1417 Item::AcaciaWood,
1418 Item::StrippedAcaciaLog,
1419 Item::StrippedAcaciaWood,
1420 Item::BirchLog,
1421 Item::BirchWood,
1422 Item::StrippedBirchLog,
1423 Item::StrippedBirchWood,
1424 Item::JungleLog,
1425 Item::JungleWood,
1426 Item::StrippedJungleLog,
1427 Item::StrippedJungleWood,
1428 Item::SpruceLog,
1429 Item::SpruceWood,
1430 Item::StrippedSpruceLog,
1431 Item::StrippedSpruceWood,
1432 Item::MangroveLog,
1433 Item::MangroveWood,
1434 Item::StrippedMangroveLog,
1435 Item::StrippedMangroveWood,
1436 Item::CherryLog,
1437 Item::CherryWood,
1438 Item::StrippedCherryLog,
1439 Item::StrippedCherryWood,
1440 ])
1441});
1442pub static MANGROVE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1443 HashSet::from_iter([
1444 Item::MangroveLog,
1445 Item::MangroveWood,
1446 Item::StrippedMangroveLog,
1447 Item::StrippedMangroveWood,
1448 ])
1449});
1450pub static MAP_INVISIBILITY_EQUIPMENT: LazyLock<HashSet<Item>> =
1451 LazyLock::new(|| HashSet::from_iter([Item::CarvedPumpkin]));
1452pub static MEAT: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1453 HashSet::from_iter([
1454 Item::Beef,
1455 Item::Chicken,
1456 Item::CookedBeef,
1457 Item::CookedChicken,
1458 Item::CookedMutton,
1459 Item::CookedPorkchop,
1460 Item::CookedRabbit,
1461 Item::Mutton,
1462 Item::Porkchop,
1463 Item::Rabbit,
1464 Item::RottenFlesh,
1465 ])
1466});
1467pub static NETHERITE_TOOL_MATERIALS: LazyLock<HashSet<Item>> =
1468 LazyLock::new(|| HashSet::from_iter([Item::NetheriteIngot]));
1469pub static NON_FLAMMABLE_WOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1470 HashSet::from_iter([
1471 Item::WarpedStem,
1472 Item::StrippedWarpedStem,
1473 Item::WarpedHyphae,
1474 Item::StrippedWarpedHyphae,
1475 Item::CrimsonStem,
1476 Item::StrippedCrimsonStem,
1477 Item::CrimsonHyphae,
1478 Item::StrippedCrimsonHyphae,
1479 Item::CrimsonPlanks,
1480 Item::WarpedPlanks,
1481 Item::CrimsonSlab,
1482 Item::WarpedSlab,
1483 Item::CrimsonPressurePlate,
1484 Item::WarpedPressurePlate,
1485 Item::CrimsonFence,
1486 Item::WarpedFence,
1487 Item::CrimsonTrapdoor,
1488 Item::WarpedTrapdoor,
1489 Item::CrimsonFenceGate,
1490 Item::WarpedFenceGate,
1491 Item::CrimsonStairs,
1492 Item::WarpedStairs,
1493 Item::CrimsonButton,
1494 Item::WarpedButton,
1495 Item::CrimsonDoor,
1496 Item::WarpedDoor,
1497 Item::CrimsonSign,
1498 Item::WarpedSign,
1499 Item::WarpedHangingSign,
1500 Item::CrimsonHangingSign,
1501 Item::WarpedShelf,
1502 Item::CrimsonShelf,
1503 ])
1504});
1505pub static NOTEBLOCK_TOP_INSTRUMENTS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1506 HashSet::from_iter([
1507 Item::ZombieHead,
1508 Item::SkeletonSkull,
1509 Item::CreeperHead,
1510 Item::DragonHead,
1511 Item::WitherSkeletonSkull,
1512 Item::PiglinHead,
1513 Item::PlayerHead,
1514 ])
1515});
1516pub static OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1517 HashSet::from_iter([
1518 Item::OakLog,
1519 Item::OakWood,
1520 Item::StrippedOakLog,
1521 Item::StrippedOakWood,
1522 ])
1523});
1524pub static OCELOT_FOOD: LazyLock<HashSet<Item>> =
1525 LazyLock::new(|| HashSet::from_iter([Item::Cod, Item::Salmon]));
1526pub static PALE_OAK_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1527 HashSet::from_iter([
1528 Item::PaleOakLog,
1529 Item::PaleOakWood,
1530 Item::StrippedPaleOakLog,
1531 Item::StrippedPaleOakWood,
1532 ])
1533});
1534pub static PANDA_EATS_FROM_GROUND: LazyLock<HashSet<Item>> =
1535 LazyLock::new(|| HashSet::from_iter([Item::Cake, Item::Bamboo]));
1536pub static PANDA_FOOD: LazyLock<HashSet<Item>> =
1537 LazyLock::new(|| HashSet::from_iter([Item::Bamboo]));
1538pub static PARROT_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1539 HashSet::from_iter([
1540 Item::WheatSeeds,
1541 Item::MelonSeeds,
1542 Item::PumpkinSeeds,
1543 Item::BeetrootSeeds,
1544 Item::TorchflowerSeeds,
1545 Item::PitcherPod,
1546 ])
1547});
1548pub static PARROT_POISONOUS_FOOD: LazyLock<HashSet<Item>> =
1549 LazyLock::new(|| HashSet::from_iter([Item::Cookie]));
1550pub static PICKAXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1551 HashSet::from_iter([
1552 Item::DiamondPickaxe,
1553 Item::StonePickaxe,
1554 Item::GoldenPickaxe,
1555 Item::NetheritePickaxe,
1556 Item::WoodenPickaxe,
1557 Item::IronPickaxe,
1558 Item::CopperPickaxe,
1559 ])
1560});
1561pub static PIG_FOOD: LazyLock<HashSet<Item>> =
1562 LazyLock::new(|| HashSet::from_iter([Item::Carrot, Item::Potato, Item::Beetroot]));
1563pub static PIGLIN_FOOD: LazyLock<HashSet<Item>> =
1564 LazyLock::new(|| HashSet::from_iter([Item::Porkchop, Item::CookedPorkchop]));
1565pub static PIGLIN_LOVED: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1566 HashSet::from_iter([
1567 Item::GoldBlock,
1568 Item::GildedBlackstone,
1569 Item::LightWeightedPressurePlate,
1570 Item::GoldIngot,
1571 Item::Bell,
1572 Item::Clock,
1573 Item::GoldenCarrot,
1574 Item::GlisteringMelonSlice,
1575 Item::GoldenApple,
1576 Item::EnchantedGoldenApple,
1577 Item::GoldenHelmet,
1578 Item::GoldenChestplate,
1579 Item::GoldenLeggings,
1580 Item::GoldenBoots,
1581 Item::GoldenHorseArmor,
1582 Item::GoldenSword,
1583 Item::GoldenPickaxe,
1584 Item::GoldenShovel,
1585 Item::GoldenAxe,
1586 Item::GoldenHoe,
1587 Item::RawGold,
1588 Item::RawGoldBlock,
1589 Item::GoldOre,
1590 Item::NetherGoldOre,
1591 Item::DeepslateGoldOre,
1592 ])
1593});
1594pub static PIGLIN_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1595 LazyLock::new(|| HashSet::from_iter([Item::Crossbow]));
1596pub static PIGLIN_REPELLENTS: LazyLock<HashSet<Item>> =
1597 LazyLock::new(|| HashSet::from_iter([Item::SoulTorch, Item::SoulLantern, Item::SoulCampfire]));
1598pub static PIGLIN_SAFE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1599 HashSet::from_iter([
1600 Item::GoldenHelmet,
1601 Item::GoldenChestplate,
1602 Item::GoldenLeggings,
1603 Item::GoldenBoots,
1604 ])
1605});
1606pub static PILLAGER_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1607 LazyLock::new(|| HashSet::from_iter([Item::Crossbow]));
1608pub static PLANKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1609 HashSet::from_iter([
1610 Item::OakPlanks,
1611 Item::SprucePlanks,
1612 Item::BirchPlanks,
1613 Item::JunglePlanks,
1614 Item::AcaciaPlanks,
1615 Item::DarkOakPlanks,
1616 Item::PaleOakPlanks,
1617 Item::CrimsonPlanks,
1618 Item::WarpedPlanks,
1619 Item::MangrovePlanks,
1620 Item::BambooPlanks,
1621 Item::CherryPlanks,
1622 ])
1623});
1624pub static RABBIT_FOOD: LazyLock<HashSet<Item>> =
1625 LazyLock::new(|| HashSet::from_iter([Item::Carrot, Item::GoldenCarrot, Item::Dandelion]));
1626pub static RAILS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1627 HashSet::from_iter([
1628 Item::Rail,
1629 Item::PoweredRail,
1630 Item::DetectorRail,
1631 Item::ActivatorRail,
1632 ])
1633});
1634pub static REDSTONE_ORES: LazyLock<HashSet<Item>> =
1635 LazyLock::new(|| HashSet::from_iter([Item::RedstoneOre, Item::DeepslateRedstoneOre]));
1636pub static REPAIRS_CHAIN_ARMOR: LazyLock<HashSet<Item>> =
1637 LazyLock::new(|| HashSet::from_iter([Item::IronIngot]));
1638pub static REPAIRS_COPPER_ARMOR: LazyLock<HashSet<Item>> =
1639 LazyLock::new(|| HashSet::from_iter([Item::CopperIngot]));
1640pub static REPAIRS_DIAMOND_ARMOR: LazyLock<HashSet<Item>> =
1641 LazyLock::new(|| HashSet::from_iter([Item::Diamond]));
1642pub static REPAIRS_GOLD_ARMOR: LazyLock<HashSet<Item>> =
1643 LazyLock::new(|| HashSet::from_iter([Item::GoldIngot]));
1644pub static REPAIRS_IRON_ARMOR: LazyLock<HashSet<Item>> =
1645 LazyLock::new(|| HashSet::from_iter([Item::IronIngot]));
1646pub static REPAIRS_LEATHER_ARMOR: LazyLock<HashSet<Item>> =
1647 LazyLock::new(|| HashSet::from_iter([Item::Leather]));
1648pub static REPAIRS_NETHERITE_ARMOR: LazyLock<HashSet<Item>> =
1649 LazyLock::new(|| HashSet::from_iter([Item::NetheriteIngot]));
1650pub static REPAIRS_TURTLE_HELMET: LazyLock<HashSet<Item>> =
1651 LazyLock::new(|| HashSet::from_iter([Item::TurtleScute]));
1652pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> =
1653 LazyLock::new(|| HashSet::from_iter([Item::ArmadilloScute]));
1654pub static SAND: LazyLock<HashSet<Item>> =
1655 LazyLock::new(|| HashSet::from_iter([Item::Sand, Item::RedSand, Item::SuspiciousSand]));
1656pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1657 HashSet::from_iter([
1658 Item::OakSapling,
1659 Item::SpruceSapling,
1660 Item::BirchSapling,
1661 Item::JungleSapling,
1662 Item::AcaciaSapling,
1663 Item::DarkOakSapling,
1664 Item::PaleOakSapling,
1665 Item::Azalea,
1666 Item::FloweringAzalea,
1667 Item::MangrovePropagule,
1668 Item::CherrySapling,
1669 ])
1670});
1671pub static SHEARABLE_FROM_COPPER_GOLEM: LazyLock<HashSet<Item>> =
1672 LazyLock::new(|| HashSet::from_iter([Item::Poppy]));
1673pub static SHEEP_FOOD: LazyLock<HashSet<Item>> =
1674 LazyLock::new(|| HashSet::from_iter([Item::Wheat]));
1675pub static SHOVELS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1676 HashSet::from_iter([
1677 Item::DiamondShovel,
1678 Item::StoneShovel,
1679 Item::GoldenShovel,
1680 Item::NetheriteShovel,
1681 Item::WoodenShovel,
1682 Item::IronShovel,
1683 Item::CopperShovel,
1684 ])
1685});
1686pub static SHULKER_BOXES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1687 HashSet::from_iter([
1688 Item::ShulkerBox,
1689 Item::BlackShulkerBox,
1690 Item::BlueShulkerBox,
1691 Item::BrownShulkerBox,
1692 Item::CyanShulkerBox,
1693 Item::GrayShulkerBox,
1694 Item::GreenShulkerBox,
1695 Item::LightBlueShulkerBox,
1696 Item::LightGrayShulkerBox,
1697 Item::LimeShulkerBox,
1698 Item::MagentaShulkerBox,
1699 Item::OrangeShulkerBox,
1700 Item::PinkShulkerBox,
1701 Item::PurpleShulkerBox,
1702 Item::RedShulkerBox,
1703 Item::WhiteShulkerBox,
1704 Item::YellowShulkerBox,
1705 ])
1706});
1707pub static SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1708 HashSet::from_iter([
1709 Item::OakSign,
1710 Item::SpruceSign,
1711 Item::BirchSign,
1712 Item::AcaciaSign,
1713 Item::JungleSign,
1714 Item::DarkOakSign,
1715 Item::PaleOakSign,
1716 Item::CrimsonSign,
1717 Item::WarpedSign,
1718 Item::MangroveSign,
1719 Item::BambooSign,
1720 Item::CherrySign,
1721 ])
1722});
1723pub static SKELETON_PREFERRED_WEAPONS: LazyLock<HashSet<Item>> =
1724 LazyLock::new(|| HashSet::from_iter([Item::Bow]));
1725pub static SKULLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1726 HashSet::from_iter([
1727 Item::PlayerHead,
1728 Item::CreeperHead,
1729 Item::ZombieHead,
1730 Item::SkeletonSkull,
1731 Item::WitherSkeletonSkull,
1732 Item::DragonHead,
1733 Item::PiglinHead,
1734 ])
1735});
1736pub static SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1737 HashSet::from_iter([
1738 Item::BambooMosaicSlab,
1739 Item::StoneSlab,
1740 Item::SmoothStoneSlab,
1741 Item::StoneBrickSlab,
1742 Item::SandstoneSlab,
1743 Item::PurpurSlab,
1744 Item::QuartzSlab,
1745 Item::RedSandstoneSlab,
1746 Item::BrickSlab,
1747 Item::CobblestoneSlab,
1748 Item::NetherBrickSlab,
1749 Item::PetrifiedOakSlab,
1750 Item::PrismarineSlab,
1751 Item::PrismarineBrickSlab,
1752 Item::DarkPrismarineSlab,
1753 Item::PolishedGraniteSlab,
1754 Item::SmoothRedSandstoneSlab,
1755 Item::MossyStoneBrickSlab,
1756 Item::PolishedDioriteSlab,
1757 Item::MossyCobblestoneSlab,
1758 Item::EndStoneBrickSlab,
1759 Item::SmoothSandstoneSlab,
1760 Item::SmoothQuartzSlab,
1761 Item::GraniteSlab,
1762 Item::AndesiteSlab,
1763 Item::RedNetherBrickSlab,
1764 Item::PolishedAndesiteSlab,
1765 Item::DioriteSlab,
1766 Item::CutSandstoneSlab,
1767 Item::CutRedSandstoneSlab,
1768 Item::BlackstoneSlab,
1769 Item::PolishedBlackstoneBrickSlab,
1770 Item::PolishedBlackstoneSlab,
1771 Item::CobbledDeepslateSlab,
1772 Item::PolishedDeepslateSlab,
1773 Item::DeepslateTileSlab,
1774 Item::DeepslateBrickSlab,
1775 Item::WaxedWeatheredCutCopperSlab,
1776 Item::WaxedExposedCutCopperSlab,
1777 Item::WaxedCutCopperSlab,
1778 Item::OxidizedCutCopperSlab,
1779 Item::WeatheredCutCopperSlab,
1780 Item::ExposedCutCopperSlab,
1781 Item::CutCopperSlab,
1782 Item::WaxedOxidizedCutCopperSlab,
1783 Item::MudBrickSlab,
1784 Item::TuffSlab,
1785 Item::PolishedTuffSlab,
1786 Item::TuffBrickSlab,
1787 Item::ResinBrickSlab,
1788 Item::OakSlab,
1789 Item::SpruceSlab,
1790 Item::BirchSlab,
1791 Item::JungleSlab,
1792 Item::AcaciaSlab,
1793 Item::DarkOakSlab,
1794 Item::PaleOakSlab,
1795 Item::CrimsonSlab,
1796 Item::WarpedSlab,
1797 Item::MangroveSlab,
1798 Item::BambooSlab,
1799 Item::CherrySlab,
1800 ])
1801});
1802pub static SMALL_FLOWERS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1803 HashSet::from_iter([
1804 Item::Dandelion,
1805 Item::OpenEyeblossom,
1806 Item::Poppy,
1807 Item::BlueOrchid,
1808 Item::Allium,
1809 Item::AzureBluet,
1810 Item::RedTulip,
1811 Item::OrangeTulip,
1812 Item::WhiteTulip,
1813 Item::PinkTulip,
1814 Item::OxeyeDaisy,
1815 Item::Cornflower,
1816 Item::LilyOfTheValley,
1817 Item::WitherRose,
1818 Item::Torchflower,
1819 Item::ClosedEyeblossom,
1820 ])
1821});
1822pub static SMELTS_TO_GLASS: LazyLock<HashSet<Item>> =
1823 LazyLock::new(|| HashSet::from_iter([Item::Sand, Item::RedSand]));
1824pub static SNIFFER_FOOD: LazyLock<HashSet<Item>> =
1825 LazyLock::new(|| HashSet::from_iter([Item::TorchflowerSeeds]));
1826pub static SOUL_FIRE_BASE_BLOCKS: LazyLock<HashSet<Item>> =
1827 LazyLock::new(|| HashSet::from_iter([Item::SoulSand, Item::SoulSoil]));
1828pub static SPRUCE_LOGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1829 HashSet::from_iter([
1830 Item::SpruceLog,
1831 Item::SpruceWood,
1832 Item::StrippedSpruceLog,
1833 Item::StrippedSpruceWood,
1834 ])
1835});
1836pub static STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1837 HashSet::from_iter([
1838 Item::BambooMosaicStairs,
1839 Item::CobblestoneStairs,
1840 Item::SandstoneStairs,
1841 Item::NetherBrickStairs,
1842 Item::StoneBrickStairs,
1843 Item::BrickStairs,
1844 Item::PurpurStairs,
1845 Item::QuartzStairs,
1846 Item::RedSandstoneStairs,
1847 Item::PrismarineBrickStairs,
1848 Item::PrismarineStairs,
1849 Item::DarkPrismarineStairs,
1850 Item::PolishedGraniteStairs,
1851 Item::SmoothRedSandstoneStairs,
1852 Item::MossyStoneBrickStairs,
1853 Item::PolishedDioriteStairs,
1854 Item::MossyCobblestoneStairs,
1855 Item::EndStoneBrickStairs,
1856 Item::StoneStairs,
1857 Item::SmoothSandstoneStairs,
1858 Item::SmoothQuartzStairs,
1859 Item::GraniteStairs,
1860 Item::AndesiteStairs,
1861 Item::RedNetherBrickStairs,
1862 Item::PolishedAndesiteStairs,
1863 Item::DioriteStairs,
1864 Item::BlackstoneStairs,
1865 Item::PolishedBlackstoneBrickStairs,
1866 Item::PolishedBlackstoneStairs,
1867 Item::CobbledDeepslateStairs,
1868 Item::PolishedDeepslateStairs,
1869 Item::DeepslateTileStairs,
1870 Item::DeepslateBrickStairs,
1871 Item::OxidizedCutCopperStairs,
1872 Item::WeatheredCutCopperStairs,
1873 Item::ExposedCutCopperStairs,
1874 Item::CutCopperStairs,
1875 Item::WaxedWeatheredCutCopperStairs,
1876 Item::WaxedExposedCutCopperStairs,
1877 Item::WaxedCutCopperStairs,
1878 Item::WaxedOxidizedCutCopperStairs,
1879 Item::MudBrickStairs,
1880 Item::TuffStairs,
1881 Item::PolishedTuffStairs,
1882 Item::TuffBrickStairs,
1883 Item::ResinBrickStairs,
1884 Item::OakStairs,
1885 Item::SpruceStairs,
1886 Item::BirchStairs,
1887 Item::JungleStairs,
1888 Item::AcaciaStairs,
1889 Item::DarkOakStairs,
1890 Item::PaleOakStairs,
1891 Item::CrimsonStairs,
1892 Item::WarpedStairs,
1893 Item::MangroveStairs,
1894 Item::BambooStairs,
1895 Item::CherryStairs,
1896 ])
1897});
1898pub static STONE_BRICKS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1899 HashSet::from_iter([
1900 Item::StoneBricks,
1901 Item::MossyStoneBricks,
1902 Item::CrackedStoneBricks,
1903 Item::ChiseledStoneBricks,
1904 ])
1905});
1906pub static STONE_BUTTONS: LazyLock<HashSet<Item>> =
1907 LazyLock::new(|| HashSet::from_iter([Item::StoneButton, Item::PolishedBlackstoneButton]));
1908pub static STONE_CRAFTING_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1909 HashSet::from_iter([Item::Cobblestone, Item::Blackstone, Item::CobbledDeepslate])
1910});
1911pub static STONE_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1912 HashSet::from_iter([Item::Cobblestone, Item::Blackstone, Item::CobbledDeepslate])
1913});
1914pub static STRIDER_FOOD: LazyLock<HashSet<Item>> =
1915 LazyLock::new(|| HashSet::from_iter([Item::WarpedFungus]));
1916pub static STRIDER_TEMPT_ITEMS: LazyLock<HashSet<Item>> =
1917 LazyLock::new(|| HashSet::from_iter([Item::WarpedFungusOnAStick, Item::WarpedFungus]));
1918pub static SWORDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1919 HashSet::from_iter([
1920 Item::DiamondSword,
1921 Item::StoneSword,
1922 Item::GoldenSword,
1923 Item::NetheriteSword,
1924 Item::WoodenSword,
1925 Item::IronSword,
1926 Item::CopperSword,
1927 ])
1928});
1929pub static TERRACOTTA: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1930 HashSet::from_iter([
1931 Item::Terracotta,
1932 Item::WhiteTerracotta,
1933 Item::OrangeTerracotta,
1934 Item::MagentaTerracotta,
1935 Item::LightBlueTerracotta,
1936 Item::YellowTerracotta,
1937 Item::LimeTerracotta,
1938 Item::PinkTerracotta,
1939 Item::GrayTerracotta,
1940 Item::LightGrayTerracotta,
1941 Item::CyanTerracotta,
1942 Item::PurpleTerracotta,
1943 Item::BlueTerracotta,
1944 Item::BrownTerracotta,
1945 Item::GreenTerracotta,
1946 Item::RedTerracotta,
1947 Item::BlackTerracotta,
1948 ])
1949});
1950pub static TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1951 HashSet::from_iter([
1952 Item::IronTrapdoor,
1953 Item::CopperTrapdoor,
1954 Item::ExposedCopperTrapdoor,
1955 Item::WeatheredCopperTrapdoor,
1956 Item::OxidizedCopperTrapdoor,
1957 Item::WaxedCopperTrapdoor,
1958 Item::WaxedExposedCopperTrapdoor,
1959 Item::WaxedWeatheredCopperTrapdoor,
1960 Item::WaxedOxidizedCopperTrapdoor,
1961 Item::AcaciaTrapdoor,
1962 Item::BirchTrapdoor,
1963 Item::DarkOakTrapdoor,
1964 Item::PaleOakTrapdoor,
1965 Item::JungleTrapdoor,
1966 Item::OakTrapdoor,
1967 Item::SpruceTrapdoor,
1968 Item::CrimsonTrapdoor,
1969 Item::WarpedTrapdoor,
1970 Item::MangroveTrapdoor,
1971 Item::BambooTrapdoor,
1972 Item::CherryTrapdoor,
1973 ])
1974});
1975pub static TRIM_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1976 HashSet::from_iter([
1977 Item::AmethystShard,
1978 Item::CopperIngot,
1979 Item::Diamond,
1980 Item::Emerald,
1981 Item::GoldIngot,
1982 Item::IronIngot,
1983 Item::LapisLazuli,
1984 Item::NetheriteIngot,
1985 Item::Quartz,
1986 Item::Redstone,
1987 Item::ResinBrick,
1988 ])
1989});
1990pub static TRIMMABLE_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
1991 HashSet::from_iter([
1992 Item::LeatherBoots,
1993 Item::CopperBoots,
1994 Item::ChainmailBoots,
1995 Item::GoldenBoots,
1996 Item::IronBoots,
1997 Item::DiamondBoots,
1998 Item::NetheriteBoots,
1999 Item::LeatherLeggings,
2000 Item::CopperLeggings,
2001 Item::ChainmailLeggings,
2002 Item::GoldenLeggings,
2003 Item::IronLeggings,
2004 Item::DiamondLeggings,
2005 Item::NetheriteLeggings,
2006 Item::LeatherChestplate,
2007 Item::CopperChestplate,
2008 Item::ChainmailChestplate,
2009 Item::GoldenChestplate,
2010 Item::IronChestplate,
2011 Item::DiamondChestplate,
2012 Item::NetheriteChestplate,
2013 Item::LeatherHelmet,
2014 Item::CopperHelmet,
2015 Item::ChainmailHelmet,
2016 Item::GoldenHelmet,
2017 Item::IronHelmet,
2018 Item::DiamondHelmet,
2019 Item::NetheriteHelmet,
2020 Item::TurtleHelmet,
2021 ])
2022});
2023pub static TURTLE_FOOD: LazyLock<HashSet<Item>> =
2024 LazyLock::new(|| HashSet::from_iter([Item::Seagrass]));
2025pub static VILLAGER_PICKS_UP: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2026 HashSet::from_iter([
2027 Item::Bread,
2028 Item::Wheat,
2029 Item::Beetroot,
2030 Item::WheatSeeds,
2031 Item::Potato,
2032 Item::Carrot,
2033 Item::BeetrootSeeds,
2034 Item::TorchflowerSeeds,
2035 Item::PitcherPod,
2036 ])
2037});
2038pub static VILLAGER_PLANTABLE_SEEDS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2039 HashSet::from_iter([
2040 Item::WheatSeeds,
2041 Item::Potato,
2042 Item::Carrot,
2043 Item::BeetrootSeeds,
2044 Item::TorchflowerSeeds,
2045 Item::PitcherPod,
2046 ])
2047});
2048pub static WALLS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2049 HashSet::from_iter([
2050 Item::CobblestoneWall,
2051 Item::MossyCobblestoneWall,
2052 Item::BrickWall,
2053 Item::PrismarineWall,
2054 Item::RedSandstoneWall,
2055 Item::MossyStoneBrickWall,
2056 Item::GraniteWall,
2057 Item::StoneBrickWall,
2058 Item::NetherBrickWall,
2059 Item::AndesiteWall,
2060 Item::RedNetherBrickWall,
2061 Item::SandstoneWall,
2062 Item::EndStoneBrickWall,
2063 Item::DioriteWall,
2064 Item::BlackstoneWall,
2065 Item::PolishedBlackstoneBrickWall,
2066 Item::PolishedBlackstoneWall,
2067 Item::CobbledDeepslateWall,
2068 Item::PolishedDeepslateWall,
2069 Item::DeepslateTileWall,
2070 Item::DeepslateBrickWall,
2071 Item::MudBrickWall,
2072 Item::TuffWall,
2073 Item::PolishedTuffWall,
2074 Item::TuffBrickWall,
2075 Item::ResinBrickWall,
2076 ])
2077});
2078pub static WARPED_STEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2079 HashSet::from_iter([
2080 Item::WarpedStem,
2081 Item::StrippedWarpedStem,
2082 Item::WarpedHyphae,
2083 Item::StrippedWarpedHyphae,
2084 ])
2085});
2086pub static WART_BLOCKS: LazyLock<HashSet<Item>> =
2087 LazyLock::new(|| HashSet::from_iter([Item::NetherWartBlock, Item::WarpedWartBlock]));
2088pub static WITHER_SKELETON_DISLIKED_WEAPONS: LazyLock<HashSet<Item>> =
2089 LazyLock::new(|| HashSet::from_iter([Item::Bow, Item::Crossbow]));
2090pub static WOLF_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2091 HashSet::from_iter([
2092 Item::Cod,
2093 Item::CookedCod,
2094 Item::Salmon,
2095 Item::CookedSalmon,
2096 Item::TropicalFish,
2097 Item::Pufferfish,
2098 Item::RabbitStew,
2099 Item::Beef,
2100 Item::Chicken,
2101 Item::CookedBeef,
2102 Item::CookedChicken,
2103 Item::CookedMutton,
2104 Item::CookedPorkchop,
2105 Item::CookedRabbit,
2106 Item::Mutton,
2107 Item::Porkchop,
2108 Item::Rabbit,
2109 Item::RottenFlesh,
2110 ])
2111});
2112pub static WOODEN_BUTTONS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2113 HashSet::from_iter([
2114 Item::OakButton,
2115 Item::SpruceButton,
2116 Item::BirchButton,
2117 Item::JungleButton,
2118 Item::AcaciaButton,
2119 Item::DarkOakButton,
2120 Item::PaleOakButton,
2121 Item::CrimsonButton,
2122 Item::WarpedButton,
2123 Item::MangroveButton,
2124 Item::BambooButton,
2125 Item::CherryButton,
2126 ])
2127});
2128pub static WOODEN_DOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2129 HashSet::from_iter([
2130 Item::OakDoor,
2131 Item::SpruceDoor,
2132 Item::BirchDoor,
2133 Item::JungleDoor,
2134 Item::AcaciaDoor,
2135 Item::DarkOakDoor,
2136 Item::PaleOakDoor,
2137 Item::CrimsonDoor,
2138 Item::WarpedDoor,
2139 Item::MangroveDoor,
2140 Item::BambooDoor,
2141 Item::CherryDoor,
2142 ])
2143});
2144pub static WOODEN_FENCES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2145 HashSet::from_iter([
2146 Item::OakFence,
2147 Item::AcaciaFence,
2148 Item::DarkOakFence,
2149 Item::PaleOakFence,
2150 Item::SpruceFence,
2151 Item::BirchFence,
2152 Item::JungleFence,
2153 Item::CrimsonFence,
2154 Item::WarpedFence,
2155 Item::MangroveFence,
2156 Item::BambooFence,
2157 Item::CherryFence,
2158 ])
2159});
2160pub static WOODEN_PRESSURE_PLATES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2161 HashSet::from_iter([
2162 Item::OakPressurePlate,
2163 Item::SprucePressurePlate,
2164 Item::BirchPressurePlate,
2165 Item::JunglePressurePlate,
2166 Item::AcaciaPressurePlate,
2167 Item::DarkOakPressurePlate,
2168 Item::PaleOakPressurePlate,
2169 Item::CrimsonPressurePlate,
2170 Item::WarpedPressurePlate,
2171 Item::MangrovePressurePlate,
2172 Item::BambooPressurePlate,
2173 Item::CherryPressurePlate,
2174 ])
2175});
2176pub static WOODEN_SHELVES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2177 HashSet::from_iter([
2178 Item::AcaciaShelf,
2179 Item::BambooShelf,
2180 Item::BirchShelf,
2181 Item::CherryShelf,
2182 Item::CrimsonShelf,
2183 Item::DarkOakShelf,
2184 Item::JungleShelf,
2185 Item::MangroveShelf,
2186 Item::OakShelf,
2187 Item::PaleOakShelf,
2188 Item::SpruceShelf,
2189 Item::WarpedShelf,
2190 ])
2191});
2192pub static WOODEN_SLABS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2193 HashSet::from_iter([
2194 Item::OakSlab,
2195 Item::SpruceSlab,
2196 Item::BirchSlab,
2197 Item::JungleSlab,
2198 Item::AcaciaSlab,
2199 Item::DarkOakSlab,
2200 Item::PaleOakSlab,
2201 Item::CrimsonSlab,
2202 Item::WarpedSlab,
2203 Item::MangroveSlab,
2204 Item::BambooSlab,
2205 Item::CherrySlab,
2206 ])
2207});
2208pub static WOODEN_STAIRS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2209 HashSet::from_iter([
2210 Item::OakStairs,
2211 Item::SpruceStairs,
2212 Item::BirchStairs,
2213 Item::JungleStairs,
2214 Item::AcaciaStairs,
2215 Item::DarkOakStairs,
2216 Item::PaleOakStairs,
2217 Item::CrimsonStairs,
2218 Item::WarpedStairs,
2219 Item::MangroveStairs,
2220 Item::BambooStairs,
2221 Item::CherryStairs,
2222 ])
2223});
2224pub static WOODEN_TOOL_MATERIALS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2225 HashSet::from_iter([
2226 Item::OakPlanks,
2227 Item::SprucePlanks,
2228 Item::BirchPlanks,
2229 Item::JunglePlanks,
2230 Item::AcaciaPlanks,
2231 Item::DarkOakPlanks,
2232 Item::PaleOakPlanks,
2233 Item::CrimsonPlanks,
2234 Item::WarpedPlanks,
2235 Item::MangrovePlanks,
2236 Item::BambooPlanks,
2237 Item::CherryPlanks,
2238 ])
2239});
2240pub static WOODEN_TRAPDOORS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2241 HashSet::from_iter([
2242 Item::AcaciaTrapdoor,
2243 Item::BirchTrapdoor,
2244 Item::DarkOakTrapdoor,
2245 Item::PaleOakTrapdoor,
2246 Item::JungleTrapdoor,
2247 Item::OakTrapdoor,
2248 Item::SpruceTrapdoor,
2249 Item::CrimsonTrapdoor,
2250 Item::WarpedTrapdoor,
2251 Item::MangroveTrapdoor,
2252 Item::BambooTrapdoor,
2253 Item::CherryTrapdoor,
2254 ])
2255});
2256pub static WOOL: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2257 HashSet::from_iter([
2258 Item::WhiteWool,
2259 Item::OrangeWool,
2260 Item::MagentaWool,
2261 Item::LightBlueWool,
2262 Item::YellowWool,
2263 Item::LimeWool,
2264 Item::PinkWool,
2265 Item::GrayWool,
2266 Item::LightGrayWool,
2267 Item::CyanWool,
2268 Item::PurpleWool,
2269 Item::BlueWool,
2270 Item::BrownWool,
2271 Item::GreenWool,
2272 Item::RedWool,
2273 Item::BlackWool,
2274 ])
2275});
2276pub static WOOL_CARPETS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
2277 HashSet::from_iter([
2278 Item::WhiteCarpet,
2279 Item::OrangeCarpet,
2280 Item::MagentaCarpet,
2281 Item::LightBlueCarpet,
2282 Item::YellowCarpet,
2283 Item::LimeCarpet,
2284 Item::PinkCarpet,
2285 Item::GrayCarpet,
2286 Item::LightGrayCarpet,
2287 Item::CyanCarpet,
2288 Item::PurpleCarpet,
2289 Item::BlueCarpet,
2290 Item::BrownCarpet,
2291 Item::GreenCarpet,
2292 Item::RedCarpet,
2293 Item::BlackCarpet,
2294 ])
2295});