From f9fada87cffcc7b1d592bf9437c30bc32db4ec1d Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 18 Sep 2020 18:45:03 +0200 Subject: [PATCH] Addresses comments --- common/src/comp/body/critter.rs | 99 ------------------- .../src/persistence/character/conversions.rs | 2 + .../audio/sfx/event_mapper/movement/mod.rs | 2 +- 3 files changed, 3 insertions(+), 100 deletions(-) delete mode 100644 common/src/comp/body/critter.rs diff --git a/common/src/comp/body/critter.rs b/common/src/comp/body/critter.rs deleted file mode 100644 index c3d0115693..0000000000 --- a/common/src/comp/body/critter.rs +++ /dev/null @@ -1,99 +0,0 @@ -use crate::{make_case_elim, make_proj_elim}; -use rand::{seq::SliceRandom, thread_rng}; -use serde::{Deserialize, Serialize}; - -make_proj_elim!( - body, - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] - pub struct Body { - pub species: Species, - pub body_type: BodyType, - } -); - -impl Body { - pub fn random() -> Self { - let mut rng = thread_rng(); - let species = *(&ALL_SPECIES).choose(&mut rng).unwrap(); - Self::random_with(&mut rng, &species) - } - - #[inline] - pub fn random_with(rng: &mut impl rand::Rng, &species: &Species) -> Self { - let body_type = *(&ALL_BODY_TYPES).choose(rng).unwrap(); - Self { species, body_type } - } -} - -impl From for super::Body { - fn from(body: Body) -> Self { super::Body::Critter(body) } -} - -make_case_elim!( - species, - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] - #[repr(u32)] - pub enum Species { - Rat = 0, - Axolotl = 1, - Gecko = 2, - Turtle = 3, - Squirrel = 4, - Fungome = 5, - } -); - -/// Data representing per-species generic data. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct AllSpecies { - pub rat: SpeciesMeta, - pub axolotl: SpeciesMeta, - pub gecko: SpeciesMeta, - pub turtle: SpeciesMeta, - pub squirrel: SpeciesMeta, - pub fungome: SpeciesMeta, -} - -impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { - type Output = SpeciesMeta; - - #[inline] - fn index(&self, &index: &'a Species) -> &Self::Output { - match index { - Species::Rat => &self.rat, - Species::Axolotl => &self.axolotl, - Species::Gecko => &self.gecko, - Species::Turtle => &self.turtle, - Species::Squirrel => &self.squirrel, - Species::Fungome => &self.fungome, - } - } -} - -pub const ALL_SPECIES: [Species; 6] = [ - Species::Rat, - Species::Axolotl, - Species::Gecko, - Species::Turtle, - Species::Squirrel, - Species::Fungome, -]; - -impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { - type IntoIter = std::iter::Copied>; - type Item = Species; - - fn into_iter(self) -> Self::IntoIter { ALL_SPECIES.iter().copied() } -} - -make_case_elim!( - body_type, - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] - #[repr(u32)] - pub enum BodyType { - Female = 0, - Male = 1, - } -); - -pub const ALL_BODY_TYPES: [BodyType; 2] = [BodyType::Female, BodyType::Male]; diff --git a/server/src/persistence/character/conversions.rs b/server/src/persistence/character/conversions.rs index 310a3a79b6..fea9f8af05 100644 --- a/server/src/persistence/character/conversions.rs +++ b/server/src/persistence/character/conversions.rs @@ -43,6 +43,7 @@ pub fn convert_items_to_database_items( ("neck", loadout.neck.as_ref()), ("head", loadout.head.as_ref()), ("tabard", loadout.tabard.as_ref()), + ("glider", loadout.glider.as_ref()), ]; let loadout = loadout @@ -254,6 +255,7 @@ pub fn convert_loadout_from_database_items(database_items: &[Item]) -> Result loadout = loadout.neck(Some(item)), "head" => loadout = loadout.head(Some(item)), "tabard" => loadout = loadout.tabard(Some(item)), + "glider" => loadout = loadout.glider(Some(item)), _ => { return Err(Error::ConversionError(format!( "Unknown loadout position on item: {}", diff --git a/voxygen/src/audio/sfx/event_mapper/movement/mod.rs b/voxygen/src/audio/sfx/event_mapper/movement/mod.rs index f551987ebb..85c10f1a6d 100644 --- a/voxygen/src/audio/sfx/event_mapper/movement/mod.rs +++ b/voxygen/src/audio/sfx/event_mapper/movement/mod.rs @@ -75,7 +75,7 @@ impl EventMapper for MovementEventMapper { | Body::BirdMedium(_) | Body::BirdSmall(_) | Body::BipedLarge(_) => Self::map_non_humanoid_movement_event(physics, vel.0), - _ => SfxEvent::Idle, // Ignore fish, critters, etc... + _ => SfxEvent::Idle, // Ignore fish, etc... }; // Check for SFX config entry for this movement