summaryrefslogtreecommitdiff
path: root/src/components/flags.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-02 14:13:18 +0200
committertroido <troido@protonmail.com>2020-04-02 14:13:18 +0200
commit4f9932074a8f0390d5cb6072b4e419c7ab08ffed (patch)
treed83da5cd8b35af25aa6e0b2c9105182920c49bd0 /src/components/flags.rs
parentec007f34c4cd984640a235660803b81a739742b3 (diff)
added flags component, and conditions for building
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>);