veloren/common/src/comp/body/bird_small.rs

49 lines
1.2 KiB
Rust
Raw Normal View History

2019-10-24 23:42:33 +00:00
use rand::{seq::SliceRandom, thread_rng};
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct Body {
pub head: Head,
pub torso: Torso,
pub wing_l: WingL,
pub wing_r: WingR,
}
impl Body {
pub fn random() -> Self {
let mut rng = thread_rng();
Self {
head: *(&ALL_HEADS).choose(&mut rng).unwrap(),
torso: *(&ALL_TORSOS).choose(&mut rng).unwrap(),
wing_l: *(&ALL_WING_LS).choose(&mut rng).unwrap(),
wing_r: *(&ALL_WING_RS).choose(&mut rng).unwrap(),
}
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
2020-01-20 14:21:06 +00:00
#[repr(u32)]
2019-10-24 23:42:33 +00:00
pub enum Head {
Default,
}
const ALL_HEADS: [Head; 1] = [Head::Default];
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
2020-01-20 14:21:06 +00:00
#[repr(u32)]
2019-10-24 23:42:33 +00:00
pub enum Torso {
Default,
}
const ALL_TORSOS: [Torso; 1] = [Torso::Default];
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
2020-01-20 14:21:06 +00:00
#[repr(u32)]
2019-10-24 23:42:33 +00:00
pub enum WingL {
Default,
}
const ALL_WING_LS: [WingL; 1] = [WingL::Default];
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
2020-01-20 14:21:06 +00:00
#[repr(u32)]
2019-10-24 23:42:33 +00:00
pub enum WingR {
Default,
}
const ALL_WING_RS: [WingR; 1] = [WingR::Default];