summaryrefslogtreecommitdiff
path: root/src/components/flags.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/flags.rs')
-rw-r--r--src/components/flags.rs32
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>);