diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index 85291056b7..a68091e6b1 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -563,6 +563,10 @@ keyword: "alpaca", generic: "Alpaca" ), + akhlut: ( + keyword: "akhlut", + generic: "Akhlut" + ), ) ), quadruped_small: ( diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox new file mode 100644 index 0000000000..a5280b72d3 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e81fd2cad7b79b4d7ce894225e2fe9790f3d31a367553ac399ccceb1be4c43 +size 2184 diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox new file mode 100644 index 0000000000..6cfbebad82 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee2b827a15adf2363c84e27d917a3572b82e93d516269dc58486c2218890d958 +size 3040 diff --git a/assets/voxygen/voxel/npc/akhlut/male/head.vox b/assets/voxygen/voxel/npc/akhlut/male/head.vox new file mode 100644 index 0000000000..608c674948 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80d0c29e47eaab3b6710bd277d2c4a14b8632d7d854b22a2c68a2e2b8dda4601 +size 3200 diff --git a/assets/voxygen/voxel/npc/akhlut/male/jaw.vox b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox new file mode 100644 index 0000000000..200acdb990 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72169a6599da4d52e2cf6861ab94a13f940488115b1a13f3093ef0a24cf1de5b +size 4536 diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox new file mode 100644 index 0000000000..9f4aae1fe4 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:256374766aabb2788384ec8a15d8b750c08529b0b83d09d5bb526899577db8f4 +size 2768 diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox new file mode 100644 index 0000000000..acf6681e32 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfe65787c08a75890d5fd9a67542396b45ef399dbe6bb697d5b51a579fd06440 +size 3468 diff --git a/assets/voxygen/voxel/npc/akhlut/male/neck.vox b/assets/voxygen/voxel/npc/akhlut/male/neck.vox new file mode 100644 index 0000000000..d1067354e0 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/neck.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e13d5a0507481b7d7972e69939457392840aca6f59da3f4e7a417bd16076e294 +size 4808 diff --git a/assets/voxygen/voxel/npc/akhlut/male/tail.vox b/assets/voxygen/voxel/npc/akhlut/male/tail.vox new file mode 100644 index 0000000000..80b6002f53 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4814035a9d535d0a04d617d73a6315aa82d55aa5eb2913420104e113d7cfa5a5 +size 4936 diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox new file mode 100644 index 0000000000..332db07dee --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:093f96a4a15aff1619ddceeb1886585f3d1d2fe6bf769a7b408b10c93598e139 +size 7928 diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox new file mode 100644 index 0000000000..da120e97f1 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00804e546266903fb1e748a1a29a44d1eff5f2fda3cdf091a0ac02abd998db44 +size 13528 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 8eb2192a7b..57fa352d84 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -2039,4 +2039,64 @@ central: ("npc.alpaca.male.tail"), ), ), + (Akhlut, Male): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), + (Akhlut, Female): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 8e0ff588b2..54da32823b 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -2311,4 +2311,72 @@ lateral: ("npc.alpaca.male.foot_br"), ), ), + (Akhlut, Male): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), + (Akhlut, Female): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), }) diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 8e316eee9d..70c96068ff 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -876,6 +876,7 @@ impl Body { (quadruped_medium::Species::Ngoubou, _) => [0.0, 0.3, 2.0], (quadruped_medium::Species::Llama, _) => [0.0, 0.1, 1.5], (quadruped_medium::Species::Alpaca, _) => [0.0, -0.1, 1.0], + (quadruped_medium::Species::Akhlut, _) => [0.6, 0.6, 2.0], } }, Body::Ship(ship) => match ship { diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index 708c55db9e..e956f50089 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -69,6 +69,7 @@ pub enum Species { Ngoubou = 33, Llama = 34, Alpaca = 35, + Akhlut = 36, } /// Data representing per-species generic data. @@ -110,6 +111,7 @@ pub struct AllSpecies { pub ngoubou: SpeciesMeta, pub llama: SpeciesMeta, pub alpaca: SpeciesMeta, + pub akhlut: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -152,11 +154,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Ngoubou => &self.ngoubou, Species::Llama => &self.llama, Species::Alpaca => &self.alpaca, + Species::Akhlut => &self.akhlut, } } } -pub const ALL_SPECIES: [Species; 34] = [ +pub const ALL_SPECIES: [Species; 35] = [ Species::Grolgar, Species::Saber, Species::Tiger, @@ -191,6 +194,7 @@ pub const ALL_SPECIES: [Species; 34] = [ Species::Ngoubou, Species::Llama, Species::Alpaca, + Species::Akhlut, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 1cd9fec9f6..a620bf20b4 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -86,6 +86,7 @@ impl Body { quadruped_medium::Species::Ngoubou => 170.0, quadruped_medium::Species::Llama => 120.0, quadruped_medium::Species::Alpaca => 110.0, + quadruped_medium::Species::Akhlut => 90.0, }, Body::BipedLarge(body) => match body.species { biped_large::Species::Slysaurok => 100.0, diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 4726b65ae9..aeafe12ccb 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -208,6 +208,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (0.5, -2.5), (Llama, _) => (0.5, 10.0), (Alpaca, _) => (0.5, 7.5), + (Akhlut, _) => (1.0, 3.5), }, neck: match (body.species, body.body_type) { (Grolgar, _) => (1.0, -1.0), @@ -245,6 +246,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (2.0, 1.0), (Llama, _) => (2.5, 4.5), (Alpaca, _) => (-1.5, 3.0), + (Akhlut, _) => (8.5, -1.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 2.0), @@ -283,6 +285,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (8.5, -4.0), (Llama, _) => (4.0, -1.0), (Alpaca, _) => (3.0, -2.5), + (Akhlut, _) => (0.0, -4.5), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), @@ -320,6 +323,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-12.0, 5.5), (Llama, _) => (-9.0, 6.0), (Alpaca, _) => (-8.5, 3.5), + (Akhlut, _) => (-14.0, -2.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), @@ -357,6 +361,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (9.5, 16.5), (Llama, _) => (7.0, 15.0), (Alpaca, _) => (7.0, 11.5), + (Akhlut, _) => (5.5, 14.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), @@ -394,6 +399,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-8.0, -2.0), (Llama, _) => (-8.0, 0.0), (Alpaca, _) => (-6.0, 0.0), + (Akhlut, _) => (-7.0, 1.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), @@ -432,6 +438,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (12.0, -3.0), (Llama, _) => (1.0, 3.5), (Alpaca, _) => (1.0, 2.0), + (Akhlut, _) => (12.0, -3.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), @@ -469,6 +476,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (7.5, -4.0, -1.5), (Llama, _) => (5.0, -1.5, -1.0), (Alpaca, _) => (3.5, -2.5, -0.5), + (Akhlut, _) => (8.0, -2.0, 0.5), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -4.0), @@ -506,6 +514,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (4.5, -9.5, 0.0), (Llama, _) => (5.0, -7.0, -2.0), (Alpaca, _) => (3.5, -7.0, 0.0), + (Akhlut, _) => (6.0, -7.5, -2.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -4.0), @@ -543,6 +552,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-1.0, 0.5, -6.0), (Llama, _) => (-0.5, 0.5, -6.0), (Alpaca, _) => (0.0, -0.5, -5.0), + (Akhlut, _) => (0.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.5, -1.5, -3.0), @@ -580,6 +590,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (0.5, 1.0, -5.5), (Llama, _) => (0.5, -1.5, -3.5), (Alpaca, _) => (-0.5, -0.5, -5.5), + (Akhlut, _) => (1.5, -1.0, -4.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.05), @@ -606,6 +617,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowleopard, _) => (0.95), (Mammoth, _) => (3.0), (Ngoubou, _) => (1.0), + (Akhlut, _) => (1.4), _ => (0.9), }, startangle: match (body.species, body.body_type) { @@ -644,6 +656,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Bear, _) => (0.8), (Yak, _) => (0.8), (Camel, _) => (1.8), + (Akhlut, _) => (0.95), _ => (1.0), }, spring: match (body.species, body.body_type) { @@ -723,6 +736,7 @@ fn mount_point(body: &Body) -> Vec3 { (Ngoubou, _) => (0.0, -7.0, 6.0), (Llama, _) => (0.0, -6.0, 5.0), (Alpaca, _) => (0.0, -9.0, 3.0), + (Akhlut, _) => (0.0, -6.0, 4.0), } .into() }