1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#[cfg(feature = "specs")]
use specs::DenseVecStorage;

/// A mob (missile, upgrade, or powerup) ID
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Hash, From, Into, Constructor)]
#[cfg_attr(feature = "specs", derive(Component))]
pub struct Mob(pub u16);

wrapper_serde_decl!(Mob);

#[cfg(feature = "specs")]
mod specs_convert {
	use super::*;
	use specs::Entity;
	use std::convert::TryInto;

	impl From<Entity> for Mob {
		fn from(ent: Entity) -> Self {
			Mob(ent.id().try_into().expect("Entity id out of range"))
		}
	}
}