underworld_core/generators/utils/
materials.rs

1use crate::components::{items::ItemType, Material};
2
3pub fn possible_materials(item_type: &ItemType) -> Vec<Material> {
4    match *item_type {
5        ItemType::Breastplate => vec![Material::Iron, Material::Leather, Material::Steel],
6        ItemType::Mask => vec![Material::Bone, Material::Iron],
7        ItemType::Cloak => {
8            vec![Material::Linen, Material::Hide, Material::Wool]
9        }
10        ItemType::Shirt => vec![
11            Material::Wool,
12            Material::Linen,
13            Material::Cotton,
14            Material::Silk,
15        ],
16        ItemType::Trousers => vec![
17            Material::Hide,
18            Material::Leather,
19            Material::Wool,
20            Material::Linen,
21        ],
22        ItemType::Crown => {
23            vec![Material::Bone, Material::Gold, Material::Stone]
24        }
25        ItemType::Boots => vec![
26            Material::Hide,
27            Material::Iron,
28            Material::Leather,
29            Material::Steel,
30        ],
31        ItemType::Gloves | ItemType::Vest => vec![Material::Fur, Material::Hide, Material::Leather],
32        ItemType::LoinCloth => vec![
33            Material::Hide,
34            Material::Wool,
35            Material::Leather,
36            Material::Silk,
37            Material::Linen,
38            Material::Cotton,
39        ],
40        ItemType::PlateBoots | ItemType::PlateGauntlets | ItemType::PlateHelmet => {
41            vec![Material::Iron, Material::Steel]
42        }
43        ItemType::Shackles => vec![Material::Iron, Material::Leather, Material::Steel],
44        ItemType::Buckler => {
45            vec![Material::Hide, Material::Iron, Material::Steel]
46        }
47        ItemType::Club => vec![Material::Bone, Material::Stone, Material::Wooden],
48        ItemType::Dagger => vec![
49            Material::Bone,
50            Material::Gold,
51            Material::Iron,
52            Material::Steel,
53            Material::Stone,
54        ],
55        ItemType::Dirk | ItemType::GreatSword => vec![
56            Material::Bone,
57            Material::Iron,
58            Material::Steel,
59            Material::Stone,
60        ],
61        ItemType::Hammer | ItemType::LongSword => {
62            vec![Material::Bone, Material::Iron, Material::Steel]
63        }
64        ItemType::Mace => vec![Material::Iron, Material::Steel],
65        ItemType::Morningstar => vec![Material::Iron, Material::Steel],
66        ItemType::Shield => vec![
67            Material::Hide,
68            Material::Iron,
69            Material::Leather,
70            Material::Steel,
71            Material::Wooden,
72        ],
73        ItemType::ShortSword => vec![Material::Iron, Material::Steel],
74        ItemType::Whip => vec![Material::Leather],
75        ItemType::Helm => vec![
76            Material::Iron,
77            Material::Hide,
78            Material::Steel,
79            Material::Leather,
80            Material::Fur,
81        ],
82        ItemType::Halberd => vec![
83            Material::Bone,
84            Material::Wooden,
85            Material::Steel,
86            Material::Iron,
87        ],
88        ItemType::Pike => vec![
89            Material::Bone,
90            Material::Wooden,
91            Material::Steel,
92            Material::Iron,
93        ],
94        ItemType::Spear => vec![
95            Material::Bone,
96            Material::Wooden,
97            Material::Steel,
98            Material::Iron,
99        ],
100        ItemType::Scroll => vec![
101            Material::Paper,
102            Material::Papyrus,
103            Material::Bone,
104            Material::Linen,
105        ],
106        ItemType::BowlerHat | ItemType::Fedora | ItemType::TopHat => {
107            vec![
108                Material::Bone,
109                Material::Cotton,
110                Material::Fur,
111                Material::Gold,
112                Material::Hide,
113                Material::Iron,
114                Material::Leather,
115                Material::Linen,
116                Material::Silk,
117                Material::Steel,
118                Material::Stone,
119                Material::Wooden,
120                Material::Wool,
121            ]
122        }
123        ItemType::Pot => vec![Material::Bone, Material::Ceramic],
124        ItemType::Flask => vec![
125            Material::Ceramic,
126            Material::Bone,
127            Material::Glass,
128            Material::Steel,
129            Material::Iron,
130            Material::Gold,
131        ],
132    }
133}