Added utility functions
parent
7c8407f966
commit
ae89f0e987
|
@ -1,3 +1,5 @@
|
||||||
|
use std::num::NonZeroU32;
|
||||||
|
|
||||||
use galactica_content::SystemObjectHandle;
|
use galactica_content::SystemObjectHandle;
|
||||||
use rapier2d::math::Isometry;
|
use rapier2d::math::Isometry;
|
||||||
|
|
||||||
|
@ -73,4 +75,66 @@ impl ShipState {
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// An integer representing each state.
|
||||||
|
/// Makes detecting state changes cheap and easy.
|
||||||
|
pub fn as_int(&self) -> NonZeroU32 {
|
||||||
|
NonZeroU32::new(match self {
|
||||||
|
Self::Dead => 1,
|
||||||
|
Self::Collapsing => 2,
|
||||||
|
Self::Flying { .. } => 3,
|
||||||
|
Self::Landed { .. } => 4,
|
||||||
|
Self::Landing { .. } => 5,
|
||||||
|
Self::UnLanding { .. } => 6,
|
||||||
|
})
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state Dead?
|
||||||
|
pub fn is_dead(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::Dead => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state Collapsing?
|
||||||
|
pub fn is_collapsing(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::Collapsing => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state Flying?
|
||||||
|
pub fn is_flying(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::Flying { .. } => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state Landed?
|
||||||
|
pub fn is_landed(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::Landed { .. } => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state Landing?
|
||||||
|
pub fn is_landing(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::Landing { .. } => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Is this state UnLanding?
|
||||||
|
pub fn is_unlanding(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Self::UnLanding { .. } => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue