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