This commit is contained in:
flo666 2022-12-17 22:06:19 +01:00
parent f6f018d6dc
commit 271b80b832
11 changed files with 108 additions and 1 deletions

View File

@ -0,0 +1,11 @@
#![enable(implicit_some)]
(
name: Automatic,
body: RandomWith("seal"),
alignment: Alignment(Wild),
loot: LootTable("common.loot_tables.creature.quad_small.fur"),
inventory: (
loadout: FromBody,
),
meta: [],
)

View File

@ -781,6 +781,10 @@
goat: (
keyword: "goat",
generic: "Goat"
),
seal: (
keyword: "seal",
generic: "Seal"
)
)
),

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

View File

@ -727,4 +727,32 @@
central: ("npc.goat.male.tail"),
),
),
(Seal, Male):(
head: (
offset: (-3.0, 0.0, -3.5),
central: ("npc.seal.male.head"),
),
chest: (
offset: (-4.0, -8.0, -4.0),
central: ("npc.seal.male.chest"),
),
tail: (
offset: (-1.5, -7.5, -2.5),
central: ("armor.empty"),
),
),
(Seal, Female):(
head: (
offset: (-3.0, 0.0, -3.5),
central: ("npc.seal.male.head"),
),
chest: (
offset: (-4.0, -8.0, -4.0),
central: ("npc.seal.male.chest"),
),
tail: (
offset: (-1.5, -7.5, -2.5),
central: ("armor.empty"),
),
),
})

View File

@ -937,4 +937,40 @@
lateral: ("npc.goat.male.foot_br"),
),
),
(Seal, Male): (
left_front: (
offset: (-3.5, -2.0, -2.0),
lateral: ("npc.seal.male.foot_fr"),
),
right_front: (
offset: (-3.5, -2.0, -2.0),
lateral: ("npc.seal.male.foot_fr"),
),
left_back: (
offset: (-3.5, -2.0, -3.5),
lateral: ("npc.seal.male.foot_br"),
),
right_back: (
offset: (-3.5, -2.0, -3.5),
lateral: ("npc.seal.male.foot_br"),
),
),
(Seal, Female): (
left_front: (
offset: (-3.5, -2.0, -2.0),
lateral: ("npc.seal.male.foot_fr"),
),
right_front: (
offset: (-3.5, -2.0, -2.0),
lateral: ("npc.seal.male.foot_fr"),
),
left_back: (
offset: (-3.5, -2.0, -3.5),
lateral: ("npc.seal.male.foot_br"),
),
right_back: (
offset: (-3.5, -2.0, -3.5),
lateral: ("npc.seal.male.foot_br"),
),
),
})

View File

@ -370,6 +370,7 @@ impl Body {
quadruped_small::Species::Squirrel => 1.0,
quadruped_small::Species::Truffler => 70.0,
quadruped_small::Species::Turtle => 40.0,
quadruped_small::Species::Seal => 15.0,
},
Body::Theropod(body) => match body.species {
// for reference, elephants are in the range of 2.6-6.9 tons
@ -683,6 +684,7 @@ impl Body {
quadruped_small::Species::Beaver => 15,
quadruped_small::Species::Dog => 30,
quadruped_small::Species::Sheep => 30,
quadruped_small::Species::Seal => 15,
_ => 20,
},
Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species {

View File

@ -61,6 +61,7 @@ pub enum Species {
Beaver = 23,
Hare = 24,
Dog = 25,
Seal = 26,
}
/// Data representing per-species generic data.
@ -94,6 +95,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub hare: SpeciesMeta,
pub dog: SpeciesMeta,
pub goat: SpeciesMeta,
pub seal: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -128,11 +130,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Hare => &self.hare,
Species::Dog => &self.dog,
Species::Goat => &self.goat,
Species::Seal => &self.seal,
}
}
}
pub const ALL_SPECIES: [Species; 26] = [
pub const ALL_SPECIES: [Species; 27] = [
Species::Pig,
Species::Fox,
Species::Sheep,
@ -159,6 +162,7 @@ pub const ALL_SPECIES: [Species; 26] = [
Species::Hare,
Species::Dog,
Species::Goat,
Species::Seal,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -153,6 +153,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Female) => (2.5, 3.0),
(Dog, _) => (3.0, 4.5),
(Goat, _) => (3.5, 4.0),
(Seal, _) => (4.0, 2.5),
},
chest: match (body.species, body.body_type) {
(Pig, _) => (0.0, 6.0),
@ -182,6 +183,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Female) => (-2.0, 6.0),
(Dog, _) => (-2.0, 8.5),
(Goat, _) => (2.0, 7.5),
(Seal, _) => (-2.0, 4.0),
},
feet_f: match (body.species, body.body_type) {
(Pig, _) => (4.5, 3.5, -1.0),
@ -211,6 +213,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Female) => (3.0, 0.5, -4.0),
(Dog, _) => (3.5, 3.0, -2.5),
(Goat, _) => (3.0, 2.5, -3.5),
(Seal, _) => (6.5, 3.0, -2.0),
},
feet_b: match (body.species, body.body_type) {
(Pig, _) => (3.5, -2.0, 0.0),
@ -240,6 +243,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Female) => (3.5, -3.0, -2.0),
(Dog, _) => (3.0, -3.5, -2.5),
(Goat, _) => (3.0, -4.0, -2.0),
(Seal, _) => (4.5, -6.0, -0.5),
},
tail: match (body.species, body.body_type) {
(Pig, _) => (-4.5, 2.5),
@ -269,6 +273,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Female) => (-4.0, 2.0),
(Dog, _) => (-5.0, 0.5),
(Goat, _) => (-7.0, 0.0),
(Seal, _) => (-1.0, 4.0),
},
scaler: match (body.species, body.body_type) {
(Pig, _) => 0.72,
@ -289,6 +294,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Fungome, _) => 0.72,
(Porcupine, _) => 0.65,
(Hare, _) => 0.65,
(Seal, _) => 0.9,
_ => 0.8,
},
tempo: match (body.species, body.body_type) {
@ -306,6 +312,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Porcupine, _) => 1.2,
(Beaver, _) => 1.2,
(Hare, _) => 1.15,
(Seal, _) => 2.5,
_ => 1.0,
},
maximize: match (body.species, body.body_type) {
@ -340,6 +347,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Beaver, _) => 0.9,
(Hare, _) => 0.8,
(Goat, _) => 0.8,
(Seal, _) => 0.7,
_ => 1.0,
},
spring: match (body.species, body.body_type) {
@ -364,6 +372,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, Male) => 2.2,
(Hare, Female) => 2.5,
(Goat, _) => 1.2,
(Seal, _) => 0.7,
_ => 1.0,
},
feed: match (body.species, body.body_type) {
@ -421,6 +430,7 @@ fn mount_point(body: &Body) -> Vec3<f32> {
(Hare, Female) => (0.0, -4.0, -4.5),
(Dog, _) => (0.0, -4.0, -2.5),
(Goat, _) => (0.0, -4.0, -3.5),
(Seal, _) => (0.0, -2.0, -2.5),
}
.into()
}