diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index fa20fde4a8..f96b41d228 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -577,6 +577,10 @@ "monitor": { "keyword": "monitor", "generic": "Monitor" + }, + "asp": { + "keyword": "asp", + "generic": "Asp" } } } diff --git a/assets/voxygen/voxel/npc/asp/female/chest.vox b/assets/voxygen/voxel/npc/asp/female/chest.vox new file mode 100644 index 0000000000..6ed1375ddc Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/foot_bl.vox b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox new file mode 100644 index 0000000000..53ed1cfe43 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/foot_br.vox b/assets/voxygen/voxel/npc/asp/female/foot_br.vox new file mode 100644 index 0000000000..82b0dac80a Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fl.vox b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox new file mode 100644 index 0000000000..2731fa2b6c Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fr.vox b/assets/voxygen/voxel/npc/asp/female/foot_fr.vox new file mode 100644 index 0000000000..33cf92df8e Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/head_lower.vox b/assets/voxygen/voxel/npc/asp/female/head_lower.vox new file mode 100644 index 0000000000..9d035e3c00 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/head_upper.vox b/assets/voxygen/voxel/npc/asp/female/head_upper.vox new file mode 100644 index 0000000000..7a5388844f Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/jaw.vox b/assets/voxygen/voxel/npc/asp/female/jaw.vox new file mode 100644 index 0000000000..74a71d6aa3 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/tail_front.vox b/assets/voxygen/voxel/npc/asp/female/tail_front.vox new file mode 100644 index 0000000000..ce1a0256da Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/asp/female/tail_rear.vox b/assets/voxygen/voxel/npc/asp/female/tail_rear.vox new file mode 100644 index 0000000000..ad2381b649 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/chest.vox b/assets/voxygen/voxel/npc/asp/male/chest.vox new file mode 100644 index 0000000000..6ed1375ddc Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_bl.vox b/assets/voxygen/voxel/npc/asp/male/foot_bl.vox new file mode 100644 index 0000000000..53ed1cfe43 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_bl.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_br.vox b/assets/voxygen/voxel/npc/asp/male/foot_br.vox new file mode 100644 index 0000000000..82b0dac80a Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fl.vox b/assets/voxygen/voxel/npc/asp/male/foot_fl.vox new file mode 100644 index 0000000000..2731fa2b6c Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_fl.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fr.vox b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox new file mode 100644 index 0000000000..33cf92df8e Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/head_lower.vox b/assets/voxygen/voxel/npc/asp/male/head_lower.vox new file mode 100644 index 0000000000..9d035e3c00 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/head_upper.vox b/assets/voxygen/voxel/npc/asp/male/head_upper.vox new file mode 100644 index 0000000000..7a5388844f Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/jaw.vox b/assets/voxygen/voxel/npc/asp/male/jaw.vox new file mode 100644 index 0000000000..74a71d6aa3 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/tail_front.vox b/assets/voxygen/voxel/npc/asp/male/tail_front.vox new file mode 100644 index 0000000000..ce1a0256da Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/tail_rear.vox b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox new file mode 100644 index 0000000000..ad2381b649 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index f87de2544b..dd473af981 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -208,4 +208,56 @@ central: ("npc.monitor.female.tail_front"), ), ), + (Asp, Male): ( + upper: ( + offset: (-5.0, -5.0, -5.0), + central: ("npc.asp.male.head_upper"), + ), + lower: ( + offset: (-6.0, -3.0, -7.5), + central: ("npc.asp.male.head_lower"), + ), + jaw: ( + offset: (-2.0, -4.0, -1.0), + central: ("npc.asp.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.male.tail_front"), + ), + ), + (Asp, Female): ( + upper: ( + offset: (-5.0, -5.0, -5.0), + central: ("npc.asp.female.head_upper"), + ), + lower: ( + offset: (-6.0, -3.0, -7.5), + central: ("npc.asp.female.head_lower"), + ), + jaw: ( + offset: (-2.0, -4.0, -1.0), + central: ("npc.asp.female.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.female.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.female.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.female.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index e4749253f8..9f866a691b 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -143,4 +143,40 @@ lateral: ("npc.monitor.female.foot_br"), ), ), + (Asp, Male): ( + front_left: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.male.foot_fl"), + ), + front_right: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.male.foot_fr"), + ), + back_left: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.male.foot_bl"), + ), + back_right: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.male.foot_br"), + ), + ), + (Asp, Female): ( + front_left: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.female.foot_fl"), + ), + front_right: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.female.foot_fr"), + ), + back_left: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.female.foot_bl"), + ), + back_right: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 0f25697dcd..e745cd5ebc 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -31,6 +31,7 @@ pub enum Species { Alligator = 1, Salamander = 2, Monitor = 3, + Asp = 4, } /// Data representing per-species generic data. @@ -42,6 +43,7 @@ pub struct AllSpecies<SpeciesMeta> { pub alligator: SpeciesMeta, pub salamander: SpeciesMeta, pub monitor: SpeciesMeta, + pub asp: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> { @@ -54,15 +56,17 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> Species::Alligator => &self.alligator, Species::Salamander => &self.salamander, Species::Monitor => &self.monitor, + Species::Asp => &self.asp, } } } -pub const ALL_SPECIES: [Species; 4] = [ +pub const ALL_SPECIES: [Species; 5] = [ Species::Crocodile, Species::Alligator, Species::Salamander, Species::Monitor, + Species::Asp, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> { diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index e4ef0ff17d..cf6b403b44 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -131,54 +131,63 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Alligator, _) => (0.5, 3.25), (Salamander, _) => (3.0, 1.0), (Monitor, _) => (3.5, 2.0), + (Asp, _) => (6.0, 5.5), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), (Alligator, _) => (9.0, 0.25), (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), + (Asp, _) => (9.0, 2.5), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), (Alligator, _) => (8.5, -2.0), (Salamander, _) => (2.0, -3.0), (Monitor, _) => (0.0, -1.0), + (Asp, _) => (1.0, -2.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), (Alligator, _) => (0.0, 5.0), (Salamander, _) => (0.0, 5.0), (Monitor, _) => (0.0, 5.0), + (Asp, _) => (0.0, 8.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), (Alligator, _) => (-13.0, -1.0), (Salamander, _) => (-9.0, 0.0), (Monitor, _) => (-12.0, 0.0), + (Asp, _) => (-14.0, -2.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), (Alligator, _) => (-5.0, 0.0), (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), + (Asp, _) => (-6.0, -2.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), (Alligator, _) => (6.75, 6.25, -1.0), (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), + (Asp, _) => (6.5, 6.0, -1.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), (Alligator, _) => (6.5, -4.5, -1.0), (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), + (Asp, _) => (6.5, -3.5, -1.0), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.0), (Alligator, _) => (1.0), (Salamander, _) => (1.0), (Monitor, _) => (1.0), + (Asp, _) => (1.0), }, } }