Adds 3 new npcs

This commit is contained in:
Snowram 2020-11-17 01:13:59 +01:00 committed by Robin Gilh
parent 44fe398ba3
commit b48de84f8c
46 changed files with 216 additions and 48 deletions

View File

@ -529,6 +529,10 @@
"beaver": { "beaver": {
"keyword": "beaver", "keyword": "beaver",
"generic": "Beaver" "generic": "Beaver"
},
"hare": {
"keyword": "hare",
"generic": "Hare"
} }
} }
}, },

View File

@ -579,7 +579,7 @@
central: ("npc.mindflayer.male.torso_upper"), central: ("npc.mindflayer.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-4.5, -6.0, -7.5), offset: (-12.5, -10.0, -9.0),
central: ("npc.mindflayer.male.torso_lower"), central: ("npc.mindflayer.male.torso_lower"),
), ),
jaw: ( jaw: (

View File

@ -630,11 +630,11 @@
), ),
leg_l: ( leg_l: (
offset: (-6.5, -10.0, -16.0), offset: (-6.5, -10.0, -16.0),
lateral: ("npc.mindflayer.male.leg_l"), lateral: ("armor.empty"),
), ),
leg_r: ( leg_r: (
offset: (-6.5, -10.0, -16.0), offset: (-6.5, -10.0, -16.0),
lateral: ("npc.mindflayer.male.leg_r"), lateral: ("armor.empty"),
), ),
foot_l: ( foot_l: (
offset: (-2.0, -4.5, -4.0), offset: (-2.0, -4.5, -4.0),
@ -664,11 +664,11 @@
), ),
leg_l: ( leg_l: (
offset: (-6.5, -10.0, -16.0), offset: (-6.5, -10.0, -16.0),
lateral: ("npc.mindflayer.male.leg_l"), lateral: ("armor.empty"),
), ),
leg_r: ( leg_r: (
offset: (-6.5, -10.0, -16.0), offset: (-6.5, -10.0, -16.0),
lateral: ("npc.mindflayer.male.leg_r"), lateral: ("armor.empty"),
), ),
foot_l: ( foot_l: (
offset: (-2.0, -4.5, -4.0), offset: (-2.0, -4.5, -4.0),

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/chest.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/foot_bl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/foot_br.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/foot_fl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/foot_fr.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/head.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/female/tail.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/chest.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/foot_bl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/foot_br.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/foot_fl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/foot_fr.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/head.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/hare/male/tail.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/npc/mindflayer/torso_lower.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/mindflayer/torso_lower2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/chest.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/foot_bl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/foot_br.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/foot_fl.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/foot_fr.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/head_lower.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/head_upper.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/jaw.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/tail_front.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/salamander/female/tail_rear.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -121,7 +121,7 @@
central: ("npc.salamander.male.chest"), central: ("npc.salamander.male.chest"),
), ),
tail_rear: ( tail_rear: (
offset: (-3.0, -13.0, -3.0), offset: (-3.5, -13.0, -3.0),
central: ("npc.salamander.male.tail_rear"), central: ("npc.salamander.male.tail_rear"),
), ),
tail_front: ( tail_front: (
@ -131,28 +131,28 @@
), ),
(Salamander, Female): ( (Salamander, Female): (
upper: ( upper: (
offset: (-6.5, 0.0, -2.0), offset: (-9.5, 0.0, -2.0),
central: ("npc.salamander.male.head_upper"), central: ("npc.salamander.female.head_upper"),
), ),
lower: ( lower: (
offset: (-4.5, -1.5, -3.0), offset: (-4.5, -1.5, -3.0),
central: ("npc.salamander.male.head_lower"), central: ("npc.salamander.female.head_lower"),
), ),
jaw: ( jaw: (
offset: (-6.5, 0.0, -3.0), offset: (-6.5, 0.0, -2.0),
central: ("npc.salamander.male.jaw"), central: ("npc.salamander.female.jaw"),
), ),
chest: ( chest: (
offset: (-6.5, -8.5, -3.0), offset: (-8.5, -8.5, -3.0),
central: ("npc.salamander.male.chest"), central: ("npc.salamander.female.chest"),
), ),
tail_rear: ( tail_rear: (
offset: (-3.0, -13.0, -3.0), offset: (-6.5, -13.0, -2.5),
central: ("npc.salamander.male.tail_rear"), central: ("npc.salamander.female.tail_rear"),
), ),
tail_front: ( tail_front: (
offset: (-4.5, -9.0, -3.0), offset: (-5.5, -8.0, -3.0),
central: ("npc.salamander.male.tail_front"), central: ("npc.salamander.female.tail_front"),
), ),
), ),
(Monitor, Male): ( (Monitor, Male): (

View File

@ -92,19 +92,19 @@
(Salamander, Female): ( (Salamander, Female): (
front_left: ( front_left: (
offset: (-6.0, 0.0, -3.0), offset: (-6.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_fl"), lateral: ("npc.salamander.female.foot_fl"),
), ),
front_right: ( front_right: (
offset: (0.0, 0.0, -3.0), offset: (0.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_fr"), lateral: ("npc.salamander.female.foot_fr"),
), ),
back_left: ( back_left: (
offset: (-7.0, 0.0, -3.0), offset: (-8.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_bl"), lateral: ("npc.salamander.female.foot_bl"),
), ),
back_right: ( back_right: (
offset: (0.0, 0.0, -3.0), offset: (0.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_br"), lateral: ("npc.salamander.female.foot_br"),
), ),
), ),
(Monitor, Male): ( (Monitor, Male): (

View File

@ -686,4 +686,32 @@
central: ("npc.beaver.male.tail"), central: ("npc.beaver.male.tail"),
), ),
), ),
(Hare, Male):(
head: (
offset: (-3.5, 0.0, -3.0),
central: ("npc.hare.male.head"),
),
chest: (
offset: (-2.5, -5.0, -3.0),
central: ("npc.hare.male.chest"),
),
tail: (
offset: (-1.5, -11.0, -2.0),
central: ("npc.hare.male.tail"),
),
),
(Hare, Female):(
head: (
offset: (-3.5, 0.0, -3.0),
central: ("npc.hare.female.head"),
),
chest: (
offset: (-3.5, -6.5, -4.0),
central: ("npc.hare.female.chest"),
),
tail: (
offset: (-2.5, -5.0, -3.0),
central: ("npc.hare.female.tail"),
),
),
}) })

View File

@ -881,4 +881,40 @@
lateral: ("npc.beaver.male.foot_br"), lateral: ("npc.beaver.male.foot_br"),
), ),
), ),
(Hare, Male): (
left_front: (
offset: (-0.5, -0.0, -2.0),
lateral: ("npc.hare.male.foot_fl"),
),
right_front: (
offset: (-0.5, -0.0, -2.0),
lateral: ("npc.hare.male.foot_fr"),
),
left_back: (
offset: (-1.0, -4.0, -5.0),
lateral: ("npc.hare.male.foot_bl"),
),
right_back: (
offset: (-1.0, -4.0, -5.0),
lateral: ("npc.hare.male.foot_br"),
),
),
(Hare, Female): (
left_front: (
offset: (-1.0, -0.0, -2.0),
lateral: ("npc.hare.female.foot_fl"),
),
right_front: (
offset: (-1.0, -0.0, -2.0),
lateral: ("npc.hare.female.foot_fr"),
),
left_back: (
offset: (-1.0, -2.5, -4.0),
lateral: ("npc.hare.female.foot_bl"),
),
right_back: (
offset: (-1.0, -2.5, -4.0),
lateral: ("npc.hare.female.foot_br"),
),
),
}) })

View File

@ -97,6 +97,7 @@ impl<'a> From<&'a Body> for Psyche {
quadruped_small::Species::Rabbit => 0.1, quadruped_small::Species::Rabbit => 0.1,
quadruped_small::Species::Truffler => 0.8, quadruped_small::Species::Truffler => 0.8,
quadruped_small::Species::Frog => 0.6, quadruped_small::Species::Frog => 0.6,
quadruped_small::Species::Hare => 0.2,
_ => 1.0, _ => 1.0,
}, },
Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species {

View File

@ -56,6 +56,7 @@ pub enum Species {
Fungome = 21, Fungome = 21,
Porcupine = 22, Porcupine = 22,
Beaver = 23, Beaver = 23,
Hare = 24,
} }
/// Data representing per-species generic data. /// Data representing per-species generic data.
@ -87,6 +88,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub fungome: SpeciesMeta, pub fungome: SpeciesMeta,
pub porcupine: SpeciesMeta, pub porcupine: SpeciesMeta,
pub beaver: SpeciesMeta, pub beaver: SpeciesMeta,
pub hare: SpeciesMeta,
} }
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -119,11 +121,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Fungome => &self.fungome, Species::Fungome => &self.fungome,
Species::Porcupine => &self.porcupine, Species::Porcupine => &self.porcupine,
Species::Beaver => &self.beaver, Species::Beaver => &self.beaver,
Species::Hare => &self.hare,
} }
} }
} }
pub const ALL_SPECIES: [Species; 24] = [ pub const ALL_SPECIES: [Species; 25] = [
Species::Pig, Species::Pig,
Species::Fox, Species::Fox,
Species::Sheep, Species::Sheep,
@ -148,6 +151,7 @@ pub const ALL_SPECIES: [Species; 24] = [
Species::Fungome, Species::Fungome,
Species::Porcupine, Species::Porcupine,
Species::Beaver, Species::Beaver,
Species::Hare,
]; ];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -63,6 +63,7 @@ impl Animation for IdleAnimation {
next.shoulder_r.scale = Vec3::one() * 1.1; next.shoulder_r.scale = Vec3::one() * 1.1;
next.hand_l.scale = Vec3::one() * 1.04; next.hand_l.scale = Vec3::one() * 1.04;
next.hand_r.scale = Vec3::one() * 1.04; next.hand_r.scale = Vec3::one() * 1.04;
next.lower_torso.scale = Vec3::one() * 1.02;
next.hold.scale = Vec3::one() * 0.0; next.hold.scale = Vec3::one() * 0.0;
next.torso.scale = Vec3::one() / 8.0; next.torso.scale = Vec3::one() / 8.0;

View File

@ -216,7 +216,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Occultsaurok, _) => (3.0, 23.0), (Occultsaurok, _) => (3.0, 23.0),
(Mightysaurok, _) => (3.0, 23.0), (Mightysaurok, _) => (3.0, 23.0),
(Slysaurok, _) => (3.0, 23.0), (Slysaurok, _) => (3.0, 23.0),
(Mindflayer, _) => (0.0, 31.0), (Mindflayer, _) => (0.0, 30.5),
}, },
lower_torso: match (body.species, body.body_type) { lower_torso: match (body.species, body.body_type) {
(Ogre, Male) => (1.0, -7.0), (Ogre, Male) => (1.0, -7.0),
@ -229,7 +229,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Occultsaurok, _) => (0.0, -6.0), (Occultsaurok, _) => (0.0, -6.0),
(Mightysaurok, _) => (0.0, -6.0), (Mightysaurok, _) => (0.0, -6.0),
(Slysaurok, _) => (0.0, -6.0), (Slysaurok, _) => (0.0, -6.0),
(Mindflayer, _) => (5.5, -18.0), (Mindflayer, _) => (3.5, -19.5),
}, },
tail: match (body.species, body.body_type) { tail: match (body.species, body.body_type) {
(Werewolf, _) => (-5.5, -2.0), (Werewolf, _) => (-5.5, -2.0),
@ -288,7 +288,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Occultsaurok, _) => (3.5, 2.0, -12.0), (Occultsaurok, _) => (3.5, 2.0, -12.0),
(Mightysaurok, _) => (3.5, 2.0, -12.0), (Mightysaurok, _) => (3.5, 2.0, -12.0),
(Slysaurok, _) => (3.5, 2.0, -12.0), (Slysaurok, _) => (3.5, 2.0, -12.0),
(Mindflayer, _) => (4.5, -0.5, -12.5), (Mindflayer, _) => (4.5, 1.5, -7.0),
}, },
shl: match (body.species, body.body_type) { shl: match (body.species, body.body_type) {
(Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0), (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),

View File

@ -55,7 +55,7 @@ impl Animation for IdleAnimation {
* Quaternion::rotation_x(0.8 * dragon_look.y); * Quaternion::rotation_x(0.8 * dragon_look.y);
next.jaw.position = Vec3::new(0.0, s_a.jaw.0, s_a.jaw.1); next.jaw.position = Vec3::new(0.0, s_a.jaw.0, s_a.jaw.1);
next.jaw.orientation = Quaternion::rotation_x(slow * 0.04); next.jaw.orientation = Quaternion::rotation_x(slow * 0.05 - 0.05);
next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1) * s_a.scaler / 11.0; next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1) * s_a.scaler / 11.0;
next.chest.orientation = Quaternion::rotation_y(slow * 0.03); next.chest.orientation = Quaternion::rotation_y(slow * 0.03);

View File

@ -107,12 +107,13 @@ impl Default for SkeletonAttr {
impl<'a> From<&'a Body> for SkeletonAttr { impl<'a> From<&'a Body> for SkeletonAttr {
fn from(body: &'a Body) -> Self { fn from(body: &'a Body) -> Self {
use comp::quadruped_low::Species::*; use comp::quadruped_low::{BodyType::*, Species::*};
Self { Self {
head_upper: match (body.species, body.body_type) { head_upper: match (body.species, body.body_type) {
(Crocodile, _) => (1.5, 2.0), (Crocodile, _) => (1.5, 2.0),
(Alligator, _) => (0.5, 2.0), (Alligator, _) => (0.5, 2.0),
(Salamander, _) => (0.5, 2.5), (Salamander, Male) => (0.5, 2.5),
(Salamander, Female) => (0.5, 1.0),
(Monitor, _) => (4.5, 1.0), (Monitor, _) => (4.5, 1.0),
(Asp, _) => (6.0, 5.5), (Asp, _) => (6.0, 5.5),
(Tortoise, _) => (5.0, 1.0), (Tortoise, _) => (5.0, 1.0),
@ -125,7 +126,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
head_lower: match (body.species, body.body_type) { head_lower: match (body.species, body.body_type) {
(Crocodile, _) => (8.0, 0.0), (Crocodile, _) => (8.0, 0.0),
(Alligator, _) => (9.0, 0.25), (Alligator, _) => (9.0, 0.25),
(Salamander, _) => (9.0, 0.0), (Salamander, Male) => (9.0, 0.0),
(Salamander, Female) => (9.0, 0.0),
(Monitor, _) => (10.0, 2.0), (Monitor, _) => (10.0, 2.0),
(Asp, _) => (9.0, 2.5), (Asp, _) => (9.0, 2.5),
(Tortoise, _) => (12.0, -3.5), (Tortoise, _) => (12.0, -3.5),
@ -138,7 +140,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
jaw: match (body.species, body.body_type) { jaw: match (body.species, body.body_type) {
(Crocodile, _) => (2.5, -3.0), (Crocodile, _) => (2.5, -3.0),
(Alligator, _) => (2.5, -2.0), (Alligator, _) => (2.5, -2.0),
(Salamander, _) => (0.0, -2.0), (Salamander, Male) => (0.0, -2.0),
(Salamander, Female) => (0.5, -1.0),
(Monitor, _) => (-2.0, -1.0), (Monitor, _) => (-2.0, -1.0),
(Asp, _) => (-3.0, -2.0), (Asp, _) => (-3.0, -2.0),
(Tortoise, _) => (-3.5, -2.0), (Tortoise, _) => (-3.5, -2.0),
@ -151,7 +154,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
chest: match (body.species, body.body_type) { chest: match (body.species, body.body_type) {
(Crocodile, _) => (0.0, 5.0), (Crocodile, _) => (0.0, 5.0),
(Alligator, _) => (0.0, 5.0), (Alligator, _) => (0.0, 5.0),
(Salamander, _) => (0.0, 5.0), (Salamander, Male) => (0.0, 5.0),
(Salamander, Female) => (0.0, 5.0),
(Monitor, _) => (0.0, 5.0), (Monitor, _) => (0.0, 5.0),
(Asp, _) => (0.0, 8.0), (Asp, _) => (0.0, 8.0),
(Tortoise, _) => (0.0, 11.0), (Tortoise, _) => (0.0, 11.0),
@ -164,7 +168,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
tail_rear: match (body.species, body.body_type) { tail_rear: match (body.species, body.body_type) {
(Crocodile, _) => (-12.5, -1.0), (Crocodile, _) => (-12.5, -1.0),
(Alligator, _) => (-13.0, -1.0), (Alligator, _) => (-13.0, -1.0),
(Salamander, _) => (-8.0, 0.0), (Salamander, Male) => (-8.0, 0.0),
(Salamander, Female) => (-6.5, 0.0),
(Monitor, _) => (-12.0, 0.0), (Monitor, _) => (-12.0, 0.0),
(Asp, _) => (-14.0, -2.0), (Asp, _) => (-14.0, -2.0),
(Tortoise, _) => (-10.0, -1.5), (Tortoise, _) => (-10.0, -1.5),
@ -177,7 +182,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
tail_front: match (body.species, body.body_type) { tail_front: match (body.species, body.body_type) {
(Crocodile, _) => (-6.0, 0.0), (Crocodile, _) => (-6.0, 0.0),
(Alligator, _) => (-5.0, 0.0), (Alligator, _) => (-5.0, 0.0),
(Salamander, _) => (-7.5, 0.0), (Salamander, Male) => (-7.5, 0.0),
(Salamander, Female) => (-7.0, 0.0),
(Monitor, _) => (-6.5, 0.0), (Monitor, _) => (-6.5, 0.0),
(Asp, _) => (-6.0, -2.0), (Asp, _) => (-6.0, -2.0),
(Tortoise, _) => (-13.0, -3.5), (Tortoise, _) => (-13.0, -3.5),
@ -190,7 +196,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
feet_f: match (body.species, body.body_type) { feet_f: match (body.species, body.body_type) {
(Crocodile, _) => (3.5, 6.0, -1.0), (Crocodile, _) => (3.5, 6.0, -1.0),
(Alligator, _) => (4.5, 4.25, -1.0), (Alligator, _) => (4.5, 4.25, -1.0),
(Salamander, _) => (5.0, 5.0, -2.0), (Salamander, Male) => (5.0, 5.0, -2.0),
(Salamander, Female) => (5.0, 4.5, -2.0),
(Monitor, _) => (3.0, 5.0, 0.0), (Monitor, _) => (3.0, 5.0, 0.0),
(Asp, _) => (1.5, 4.0, -1.0), (Asp, _) => (1.5, 4.0, -1.0),
(Tortoise, _) => (5.5, 6.5, -3.0), (Tortoise, _) => (5.5, 6.5, -3.0),
@ -203,7 +210,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
feet_b: match (body.species, body.body_type) { feet_b: match (body.species, body.body_type) {
(Crocodile, _) => (3.5, -6.0, -1.0), (Crocodile, _) => (3.5, -6.0, -1.0),
(Alligator, _) => (4.5, -5.5, -1.0), (Alligator, _) => (4.5, -5.5, -1.0),
(Salamander, _) => (4.0, -6.0, -2.0), (Salamander, Male) => (4.0, -6.0, -2.0),
(Salamander, Female) => (3.0, -6.0, -2.0),
(Monitor, _) => (2.5, -6.5, 0.0), (Monitor, _) => (2.5, -6.5, 0.0),
(Asp, _) => (2.5, -5.5, -1.0), (Asp, _) => (2.5, -5.5, -1.0),
(Tortoise, _) => (5.5, -11.5, -3.0), (Tortoise, _) => (5.5, -11.5, -3.0),

View File

@ -95,7 +95,7 @@ impl Default for SkeletonAttr {
impl<'a> From<&'a Body> for SkeletonAttr { impl<'a> From<&'a Body> for SkeletonAttr {
fn from(body: &'a Body) -> Self { fn from(body: &'a Body) -> Self {
use comp::quadruped_small::Species::*; use comp::quadruped_small::{BodyType::*, Species::*};
Self { Self {
head: match (body.species, body.body_type) { head: match (body.species, body.body_type) {
(Pig, _) => (5.0, 2.0), (Pig, _) => (5.0, 2.0),
@ -122,6 +122,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (1.5, -1.5), (Fungome, _) => (1.5, -1.5),
(Porcupine, _) => (6.0, 1.0), (Porcupine, _) => (6.0, 1.0),
(Beaver, _) => (5.5, 0.0), (Beaver, _) => (5.5, 0.0),
(Hare, Male) => (3.0, 2.0),
(Hare, Female) => (2.5, 3.0),
}, },
chest: match (body.species, body.body_type) { chest: match (body.species, body.body_type) {
(Pig, _) => (0.0, 6.0), (Pig, _) => (0.0, 6.0),
@ -148,6 +150,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (4.0, 4.0), (Fungome, _) => (4.0, 4.0),
(Porcupine, _) => (2.0, 11.0), (Porcupine, _) => (2.0, 11.0),
(Beaver, _) => (2.0, 6.0), (Beaver, _) => (2.0, 6.0),
(Hare, Male) => (-2.0, 7.0),
(Hare, Female) => (-2.0, 6.0),
}, },
feet_f: match (body.species, body.body_type) { feet_f: match (body.species, body.body_type) {
(Pig, _) => (4.5, 3.5, -1.0), (Pig, _) => (4.5, 3.5, -1.0),
@ -174,6 +178,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (3.0, 2.0, -1.0), (Fungome, _) => (3.0, 2.0, -1.0),
(Porcupine, _) => (4.0, 6.5, -9.0), (Porcupine, _) => (4.0, 6.5, -9.0),
(Beaver, _) => (4.5, 4.5, -4.0), (Beaver, _) => (4.5, 4.5, -4.0),
(Hare, Male) => (3.0, 1.0, -3.0),
(Hare, Female) => (3.0, 0.5, -4.0),
}, },
feet_b: match (body.species, body.body_type) { feet_b: match (body.species, body.body_type) {
(Pig, _) => (3.5, -2.0, 0.0), (Pig, _) => (3.5, -2.0, 0.0),
@ -200,6 +206,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (3.0, -3.5, -1.0), (Fungome, _) => (3.0, -3.5, -1.0),
(Porcupine, _) => (4.5, -1.0, -8.0), (Porcupine, _) => (4.5, -1.0, -8.0),
(Beaver, _) => (4.0, -2.5, -3.0), (Beaver, _) => (4.0, -2.5, -3.0),
(Hare, Male) => (3.5, -1.0, -2.0),
(Hare, Female) => (3.5, -3.0, -2.0),
}, },
tail: match (body.species, body.body_type) { tail: match (body.species, body.body_type) {
(Pig, _) => (-4.5, 2.5), (Pig, _) => (-4.5, 2.5),
@ -226,6 +234,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (-4.0, -2.0), (Fungome, _) => (-4.0, -2.0),
(Porcupine, _) => (-6.0, 1.0), (Porcupine, _) => (-6.0, 1.0),
(Beaver, _) => (-6.5, -1.0), (Beaver, _) => (-6.5, -1.0),
(Hare, Male) => (-4.0, -1.0),
(Hare, Female) => (-4.0, 2.0),
}, },
scaler: match (body.species, body.body_type) { scaler: match (body.species, body.body_type) {
(Pig, _) => (0.9), (Pig, _) => (0.9),
@ -252,6 +262,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (0.9), (Fungome, _) => (0.9),
(Porcupine, _) => (0.8), (Porcupine, _) => (0.8),
(Beaver, _) => (1.0), (Beaver, _) => (1.0),
(Hare, _) => (0.8),
}, },
tempo: match (body.species, body.body_type) { tempo: match (body.species, body.body_type) {
(Pig, _) => (1.0), (Pig, _) => (1.0),
@ -278,6 +289,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (1.0), (Fungome, _) => (1.0),
(Porcupine, _) => (1.2), (Porcupine, _) => (1.2),
(Beaver, _) => (1.2), (Beaver, _) => (1.2),
(Hare, _) => (1.15),
}, },
maximize: match (body.species, body.body_type) { maximize: match (body.species, body.body_type) {
(Pig, _) => (1.0), (Pig, _) => (1.0),
@ -304,6 +316,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (0.7), (Fungome, _) => (0.7),
(Porcupine, _) => (1.0), (Porcupine, _) => (1.0),
(Beaver, _) => (1.0), (Beaver, _) => (1.0),
(Hare, _) => (1.3),
}, },
minimize: match (body.species, body.body_type) { minimize: match (body.species, body.body_type) {
(Pig, _) => (0.6), (Pig, _) => (0.6),
@ -330,6 +343,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (0.4), (Fungome, _) => (0.4),
(Porcupine, _) => (0.9), (Porcupine, _) => (0.9),
(Beaver, _) => (0.9), (Beaver, _) => (0.9),
(Hare, _) => (0.8),
}, },
spring: match (body.species, body.body_type) { spring: match (body.species, body.body_type) {
(Pig, _) => (1.0), (Pig, _) => (1.0),
@ -356,6 +370,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (0.8), (Fungome, _) => (0.8),
(Porcupine, _) => (1.3), (Porcupine, _) => (1.3),
(Beaver, _) => (1.3), (Beaver, _) => (1.3),
(Hare, Male) => (2.2),
(Hare, Female) => (2.5),
}, },
feed: match (body.species, body.body_type) { feed: match (body.species, body.body_type) {
(Pig, _) => (1.0), (Pig, _) => (1.0),
@ -382,6 +398,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => (0.7), (Fungome, _) => (0.7),
(Porcupine, _) => (1.0), (Porcupine, _) => (1.0),
(Beaver, _) => (1.0), (Beaver, _) => (1.0),
(Hare, _) => (1.2),
}, },
} }
} }