diff options
Diffstat (limited to 'src/components/flags.rs')
| -rw-r--r-- | src/components/flags.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/components/flags.rs b/src/components/flags.rs new file mode 100644 index 0000000..d985bf2 --- /dev/null +++ b/src/components/flags.rs @@ -0,0 +1,32 @@ + +use std::collections::HashSet; +use specs::{ + Component, + VecStorage, +}; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Flag { + Blocking, + Floor, + Occupied, + Soil +} + +use Flag::*; +impl Flag { + pub fn from_str(s: &str) -> Option<Flag> { + Some(match s { + "Blocking" => Blocking, + "Floor" => Floor, + "Occupied" => Occupied, + "Soil" => Soil, + _ => None? + }) + } +} + + +#[derive(Component, Debug, Clone, PartialEq, Eq)] +#[storage(VecStorage)] +pub struct Flags(pub HashSet<Flag>); |
