diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index f96b41d228..1cddc0f846 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -581,6 +581,10 @@ "asp": { "keyword": "asp", "generic": "Asp" + }, + "tortoise": { + "keyword": "tortoise", + "generic": "Tortoise" } } } diff --git a/assets/voxygen/voxel/npc/tortoise/female/chest.vox b/assets/voxygen/voxel/npc/tortoise/female/chest.vox new file mode 100644 index 0000000000..2d5f3d03bc --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d2f02cf3a3ca443ba5503b77cf2c7d5c9b97d83050e947ac251f0340d6e7b7 +size 68715 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox new file mode 100644 index 0000000000..73cad48f51 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c308128f3ba79f4cc9caa3439b3077f688e45a095289182559e55f48bc0b0047 +size 1580 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_br.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_br.vox new file mode 100644 index 0000000000..fda74f8a68 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afbe7b898e1ef84576fc92acbcde378b1d445feb5f4478eb86915f40a8fd6dd0 +size 56063 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox new file mode 100644 index 0000000000..c83624934c --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f338128840ca7e40d209bfea664f2a3599079ab73a7e28a307637e077be3a4cb +size 1624 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox new file mode 100644 index 0000000000..87e2b2a79d --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ead09c8d21896baaf6c6597681a2fd0191d58eedbd7a5f62c88803586f3a697 +size 56107 diff --git a/assets/voxygen/voxel/npc/tortoise/female/head_lower.vox b/assets/voxygen/voxel/npc/tortoise/female/head_lower.vox new file mode 100644 index 0000000000..566272f2ab --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dffe9c537b1e94981ee57eafc540ed3e3011a636246aa65a4479d0a8c0a96c44 +size 1428 diff --git a/assets/voxygen/voxel/npc/tortoise/female/head_upper.vox b/assets/voxygen/voxel/npc/tortoise/female/head_upper.vox new file mode 100644 index 0000000000..fa70229ffd --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:923ec97963683b00dd3d7e7d10bfcb7f8010643ef9666e37f8eeab2445be6857 +size 1792 diff --git a/assets/voxygen/voxel/npc/tortoise/female/jaw.vox b/assets/voxygen/voxel/npc/tortoise/female/jaw.vox new file mode 100644 index 0000000000..d93b5313e2 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d41f3178afd0cbc5f598146654ef2abc9c03d524a0925f8bfaa2959cc328dc82 +size 1220 diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox new file mode 100644 index 0000000000..c671bf1f13 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f07cd129987a476a5fcc8197d2fae96686cf7b30357950fc6090b42686d4d872 +size 55719 diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox new file mode 100644 index 0000000000..5b941ddb0c --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbd61c1a6b0d6ba1840b3b0bbc32a81a753e0045886e7b7c1acc32a4c4db18b6 +size 1100 diff --git a/assets/voxygen/voxel/npc/tortoise/male/chest.vox b/assets/voxygen/voxel/npc/tortoise/male/chest.vox new file mode 100644 index 0000000000..2d5f3d03bc --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d2f02cf3a3ca443ba5503b77cf2c7d5c9b97d83050e947ac251f0340d6e7b7 +size 68715 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox new file mode 100644 index 0000000000..73cad48f51 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c308128f3ba79f4cc9caa3439b3077f688e45a095289182559e55f48bc0b0047 +size 1580 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox new file mode 100644 index 0000000000..fda74f8a68 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afbe7b898e1ef84576fc92acbcde378b1d445feb5f4478eb86915f40a8fd6dd0 +size 56063 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox new file mode 100644 index 0000000000..c83624934c --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f338128840ca7e40d209bfea664f2a3599079ab73a7e28a307637e077be3a4cb +size 1624 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox new file mode 100644 index 0000000000..87e2b2a79d --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ead09c8d21896baaf6c6597681a2fd0191d58eedbd7a5f62c88803586f3a697 +size 56107 diff --git a/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox b/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox new file mode 100644 index 0000000000..566272f2ab --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dffe9c537b1e94981ee57eafc540ed3e3011a636246aa65a4479d0a8c0a96c44 +size 1428 diff --git a/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox b/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox new file mode 100644 index 0000000000..fa70229ffd --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:923ec97963683b00dd3d7e7d10bfcb7f8010643ef9666e37f8eeab2445be6857 +size 1792 diff --git a/assets/voxygen/voxel/npc/tortoise/male/jaw.vox b/assets/voxygen/voxel/npc/tortoise/male/jaw.vox new file mode 100644 index 0000000000..d93b5313e2 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d41f3178afd0cbc5f598146654ef2abc9c03d524a0925f8bfaa2959cc328dc82 +size 1220 diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox new file mode 100644 index 0000000000..c671bf1f13 --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f07cd129987a476a5fcc8197d2fae96686cf7b30357950fc6090b42686d4d872 +size 55719 diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox new file mode 100644 index 0000000000..5b941ddb0c --- /dev/null +++ b/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbd61c1a6b0d6ba1840b3b0bbc32a81a753e0045886e7b7c1acc32a4c4db18b6 +size 1100 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index dd473af981..d615fe1487 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -260,4 +260,56 @@ central: ("npc.asp.female.tail_front"), ), ), + (Tortoise, Male): ( + upper: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.tortoise.male.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.tortoise.male.head_lower"), + ), + jaw: ( + offset: (-1.5, -3.5, -1.0), + central: ("npc.tortoise.male.jaw"), + ), + chest: ( + offset: (-10.5, -12.5, -7.0), + central: ("npc.tortoise.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -0.5, -0.5), + central: ("npc.tortoise.male.tail_rear"), + ), + tail_front: ( + offset: (-1.5, -3.5, -1.5), + central: ("npc.tortoise.male.tail_front"), + ), + ), + (Tortoise, Female): ( + upper: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.tortoise.female.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.tortoise.female.head_lower"), + ), + jaw: ( + offset: (-1.5, -3.5, -1.0), + central: ("npc.tortoise.female.jaw"), + ), + chest: ( + offset: (-10.5, -12.5, -7.0), + central: ("npc.tortoise.female.chest"), + ), + tail_rear: ( + offset: (-0.5, -0.5, -0.5), + central: ("npc.tortoise.female.tail_rear"), + ), + tail_front: ( + offset: (-1.5, -7.0, -1.5), + central: ("npc.tortoise.female.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 9f866a691b..69b7736283 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -179,4 +179,40 @@ lateral: ("npc.asp.female.foot_br"), ), ), + (Tortoise, Male): ( + front_left: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.tortoise.male.foot_fl"), + ), + front_right: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.tortoise.male.foot_fr"), + ), + back_left: ( + offset: (-3.5, -3.0, -8.0), + lateral: ("npc.tortoise.male.foot_bl"), + ), + back_right: ( + offset: (-3.5, -3.0, -8.0), + lateral: ("npc.tortoise.male.foot_br"), + ), + ), + (Tortoise, Female): ( + front_left: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.tortoise.female.foot_fl"), + ), + front_right: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.tortoise.female.foot_fr"), + ), + back_left: ( + offset: (-3.5, -3.0, -8.0), + lateral: ("npc.tortoise.female.foot_bl"), + ), + back_right: ( + offset: (-3.5, -3.0, -8.0), + lateral: ("npc.tortoise.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index e745cd5ebc..48e8d62d13 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -32,6 +32,7 @@ pub enum Species { Salamander = 2, Monitor = 3, Asp = 4, + Tortoise = 5, } /// Data representing per-species generic data. @@ -44,6 +45,7 @@ pub struct AllSpecies { pub salamander: SpeciesMeta, pub monitor: SpeciesMeta, pub asp: SpeciesMeta, + pub tortoise: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -57,16 +59,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Salamander => &self.salamander, Species::Monitor => &self.monitor, Species::Asp => &self.asp, + Species::Tortoise => &self.tortoise, } } } -pub const ALL_SPECIES: [Species; 5] = [ +pub const ALL_SPECIES: [Species; 6] = [ Species::Crocodile, Species::Alligator, Species::Salamander, Species::Monitor, Species::Asp, + Species::Tortoise, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index cf6b403b44..b66d1cea62 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -132,6 +132,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (3.0, 1.0), (Monitor, _) => (3.5, 2.0), (Asp, _) => (6.0, 5.5), + (Tortoise, _) => (5.0, 1.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -139,6 +140,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), (Asp, _) => (9.0, 2.5), + (Tortoise, _) => (12.0, -3.5), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), @@ -146,6 +148,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (2.0, -3.0), (Monitor, _) => (0.0, -1.0), (Asp, _) => (1.0, -2.0), + (Tortoise, _) => (0.5, -2.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -153,6 +156,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (0.0, 5.0), (Monitor, _) => (0.0, 5.0), (Asp, _) => (0.0, 8.0), + (Tortoise, _) => (0.0, 11.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -160,6 +164,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-9.0, 0.0), (Monitor, _) => (-12.0, 0.0), (Asp, _) => (-14.0, -2.0), + (Tortoise, _) => (-7.0, -1.5), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -167,6 +172,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), (Asp, _) => (-6.0, -2.0), + (Tortoise, _) => (-13.5, -3.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), @@ -174,6 +180,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), (Asp, _) => (6.5, 6.0, -1.0), + (Tortoise, _) => (8.5, 9.5, -3.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), @@ -181,6 +188,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), (Asp, _) => (6.5, -3.5, -1.0), + (Tortoise, _) => (8.0, -8.5, -3.0), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.0), @@ -188,6 +196,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (1.0), (Monitor, _) => (1.0), (Asp, _) => (1.0), + (Tortoise, _) => (1.0), }, } }