steel_registry/
villager_type.rs1use rustc_hash::FxHashMap;
2use steel_utils::Identifier;
3
4#[derive(Debug)]
5pub struct VillagerType {
6 pub key: Identifier,
7}
8
9pub type VillagerTypeRef = &'static VillagerType;
10
11pub struct VillagerTypeRegistry {
12 villager_types_by_id: Vec<VillagerTypeRef>,
13 villager_types_by_key: FxHashMap<Identifier, usize>,
14 allows_registering: bool,
15}
16
17impl VillagerTypeRegistry {
18 #[must_use]
19 pub fn new() -> Self {
20 Self {
21 villager_types_by_id: Vec::new(),
22 villager_types_by_key: FxHashMap::default(),
23 allows_registering: true,
24 }
25 }
26}
27
28crate::impl_standard_methods!(
29 VillagerTypeRegistry,
30 VillagerTypeRef,
31 villager_types_by_id,
32 villager_types_by_key,
33 allows_registering
34);
35
36crate::impl_registry!(
37 VillagerTypeRegistry,
38 VillagerType,
39 villager_types_by_id,
40 villager_types_by_key,
41 villager_types
42);