1use azalea_registry::builtin::ItemKind;
2
3pub fn get_item_tier(item: ItemKind) -> Option<Tier> {
4 use ItemKind::*;
5 Some(match item {
6 WoodenPickaxe | WoodenShovel | WoodenAxe | WoodenHoe | WoodenSword => Tier::Wood,
7 StonePickaxe | StoneShovel | StoneAxe | StoneHoe | StoneSword => Tier::Stone,
8 IronPickaxe | IronShovel | IronAxe | IronHoe | IronSword => Tier::Iron,
9 DiamondPickaxe | DiamondShovel | DiamondAxe | DiamondHoe | DiamondSword => Tier::Diamond,
10 GoldenPickaxe | GoldenShovel | GoldenAxe | GoldenHoe | GoldenSword => Tier::Gold,
11 NetheritePickaxe | NetheriteShovel | NetheriteAxe | NetheriteHoe | NetheriteSword => {
12 Tier::Netherite
13 }
14 _ => return None,
15 })
16}
17
18pub enum Tier {
19 Wood,
20 Stone,
21 Iron,
22 Diamond,
23 Gold,
24 Netherite,
25}
26
27impl Tier {
28 pub fn level(&self) -> u8 {
29 match self {
30 Tier::Wood => 0,
31 Tier::Stone => 1,
32 Tier::Iron => 2,
33 Tier::Diamond => 3,
34 Tier::Gold => 0, Tier::Netherite => 4,
36 }
37 }
38 pub fn speed(&self) -> f32 {
39 match self {
40 Tier::Wood => 2.,
41 Tier::Stone => 4.,
42 Tier::Iron => 6.,
43 Tier::Diamond => 8.,
44 Tier::Gold => 12.,
45 Tier::Netherite => 9.,
46 }
47 }
48}