summaryrefslogtreecommitdiff
path: root/src/components/flags.rs
blob: d985bf2c4e9c81c37f669c3a3b1a5c6bbe3e9fab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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>);