- change bristlemane to bristleback

- axebeak tweaks
This commit is contained in:
flo666 2023-01-29 15:14:17 +01:00
parent e109f5c377
commit 9c09000256
21 changed files with 76 additions and 65 deletions

View File

@ -1,7 +1,7 @@
#![enable(implicit_some)]
(
name: Automatic,
body: RandomWith("bristlemane"),
body: RandomWith("bristleback"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.quad_medium.generic"),
inventory: (

View File

@ -567,9 +567,9 @@
keyword: "akhlut",
generic: "Akhlut"
),
bristlemane: (
keyword: "bristlemane",
generic: "Bristlemane"
bristleback: (
keyword: "bristleback",
generic: "Bristleback"
),
)
),

View File

@ -2099,26 +2099,26 @@
central: ("npc.akhlut.male.tail"),
),
),
(Bristlemane, Male): (
(Bristleback, Male): (
head: (
offset: (-7.5, 0.0, -8.5),
central: ("npc.bristlemane.male.head"),
central: ("npc.bristleback.male.head"),
),
neck: (
offset: (-3.5, -2.0, -6.5),
central: ("npc.bristlemane.male.neck"),
central: ("npc.bristleback.male.neck"),
),
jaw: (
offset: (-3.5, -3.5, -0.5),
central: ("npc.bristlemane.male.jaw"),
central: ("npc.bristleback.male.jaw"),
),
torso_front: (
offset: (-6.5, -5.0, -6.0),
central: ("npc.bristlemane.male.torso_front"),
central: ("npc.bristleback.male.torso_front"),
),
torso_back: (
offset: (-3.5, -8.0, -6.0),
central: ("npc.bristlemane.male.torso_back"),
central: ("npc.bristleback.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
@ -2126,29 +2126,29 @@
),
tail: (
offset: (-1.5, -6.0, -4.5),
central: ("npc.bristlemane.male.tail"),
central: ("npc.bristleback.male.tail"),
),
),
(Bristlemane, Female): (
(Bristleback, Female): (
head: (
offset: (-7.5, 0.0, -8.5),
central: ("npc.bristlemane.male.head"),
central: ("npc.bristleback.male.head"),
),
neck: (
offset: (-3.5, -2.0, -6.5),
central: ("npc.bristlemane.male.neck"),
central: ("npc.bristleback.male.neck"),
),
jaw: (
offset: (-3.5, -3.5, -0.5),
central: ("npc.bristlemane.male.jaw"),
central: ("npc.bristleback.male.jaw"),
),
torso_front: (
offset: (-6.5, -5.0, -6.0),
central: ("npc.bristlemane.male.torso_front"),
central: ("npc.bristleback.male.torso_front"),
),
torso_back: (
offset: (-3.5, -8.0, -6.0),
central: ("npc.bristlemane.male.torso_back"),
central: ("npc.bristleback.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
@ -2156,7 +2156,7 @@
),
tail: (
offset: (-1.5, -6.0, -4.5),
central: ("npc.bristlemane.male.tail"),
central: ("npc.bristleback.male.tail"),
),
),
})

View File

@ -2379,72 +2379,72 @@
lateral: ("npc.akhlut.male.foot_br"),
),
),
(Bristlemane, Male): (
(Bristleback, Male): (
leg_fl: (
offset: (-1.5, -2.0, -2.0),
lateral: ("npc.bristlemane.male.leg_fr"),
lateral: ("npc.bristleback.male.leg_fr"),
),
leg_fr: (
offset: (-1.5, -2.0, -2.0),
lateral: ("npc.bristlemane.male.leg_fr"),
lateral: ("npc.bristleback.male.leg_fr"),
),
leg_bl: (
offset: (-1.5, -2.0, -4.0),
lateral: ("npc.bristlemane.male.leg_br"),
lateral: ("npc.bristleback.male.leg_br"),
),
leg_br: (
offset: (-1.5, -2.0, -4.0),
lateral: ("npc.bristlemane.male.leg_br"),
lateral: ("npc.bristleback.male.leg_br"),
),
foot_fl: (
offset: (-1.5, -1.5, -5.0),
lateral: ("npc.bristlemane.male.foot_fr"),
lateral: ("npc.bristleback.male.foot_fr"),
),
foot_fr: (
offset: (-1.5, -1.5, -5.0),
lateral: ("npc.bristlemane.male.foot_fr"),
lateral: ("npc.bristleback.male.foot_fr"),
),
foot_bl: (
offset: (-1.0, -2.0, -5.0),
lateral: ("npc.bristlemane.male.foot_br"),
lateral: ("npc.bristleback.male.foot_br"),
),
foot_br: (
offset: (-1.0, -2.0, -5.0),
lateral: ("npc.bristlemane.male.foot_br"),
lateral: ("npc.bristleback.male.foot_br"),
),
),
(Bristlemane, Female): (
(Bristleback, Female): (
leg_fl: (
offset: (-1.5, -2.0, -2.0),
lateral: ("npc.bristlemane.male.leg_fr"),
lateral: ("npc.bristleback.male.leg_fr"),
),
leg_fr: (
offset: (-1.5, -2.0, -2.0),
lateral: ("npc.bristlemane.male.leg_fr"),
lateral: ("npc.bristleback.male.leg_fr"),
),
leg_bl: (
offset: (-1.5, -2.0, -4.0),
lateral: ("npc.bristlemane.male.leg_br"),
lateral: ("npc.bristleback.male.leg_br"),
),
leg_br: (
offset: (-1.5, -2.0, -4.0),
lateral: ("npc.bristlemane.male.leg_br"),
lateral: ("npc.bristleback.male.leg_br"),
),
foot_fl: (
offset: (-1.5, -1.5, -5.0),
lateral: ("npc.bristlemane.male.foot_fr"),
lateral: ("npc.bristleback.male.foot_fr"),
),
foot_fr: (
offset: (-1.5, -1.5, -5.0),
lateral: ("npc.bristlemane.male.foot_fr"),
lateral: ("npc.bristleback.male.foot_fr"),
),
foot_bl: (
offset: (-1.0, -2.0, -5.0),
lateral: ("npc.bristlemane.male.foot_br"),
lateral: ("npc.bristleback.male.foot_br"),
),
foot_br: (
offset: (-1.0, -2.0, -5.0),
lateral: ("npc.bristlemane.male.foot_br"),
lateral: ("npc.bristleback.male.foot_br"),
),
),
})

View File

@ -545,7 +545,7 @@
central: ("npc.axebeak.male.head"),
),
jaw: (
offset: (-1.5, -3.0, 4.5),
offset: (-1.5, 0.0, -1.5),
central: ("npc.axebeak.male.jaw"),
),
neck: (
@ -575,7 +575,7 @@
central: ("npc.axebeak.male.head"),
),
jaw: (
offset: (-1.5, -3.0, 4.5),
offset: (-1.5, 0.0, -1.5),
central: ("npc.axebeak.male.jaw"),
),
neck: (

View File

@ -465,7 +465,7 @@ impl Body {
quadruped_medium::Species::Horse => Vec3::new(2.0, 3.0, 2.4),
quadruped_medium::Species::Lion => Vec3::new(2.0, 3.3, 2.0),
quadruped_medium::Species::Moose => Vec3::new(2.0, 4.0, 2.5),
quadruped_medium::Species::Bristlemane => Vec3::new(2.0, 4.0, 2.5),
quadruped_medium::Species::Bristleback => Vec3::new(2.0, 4.0, 2.5),
quadruped_medium::Species::Roshwalr => Vec3::new(2.0, 3.5, 2.2),
quadruped_medium::Species::Saber => Vec3::new(2.0, 3.0, 2.0),
quadruped_medium::Species::Tarasque => Vec3::new(2.0, 4.0, 2.6),
@ -717,7 +717,7 @@ impl Body {
quadruped_medium::Species::Panda => 90,
quadruped_medium::Species::Bear => 90,
quadruped_medium::Species::Moose => 80,
quadruped_medium::Species::Bristlemane => 90,
quadruped_medium::Species::Bristleback => 90,
quadruped_medium::Species::Dreadhorn => 370,
quadruped_medium::Species::Mammoth => 250,
quadruped_medium::Species::Ngoubou => 290,
@ -984,7 +984,7 @@ impl Body {
(quadruped_medium::Species::Bear, _) => [0.0, -0.4, 2.5],
(quadruped_medium::Species::Dreadhorn, _) => [0.0, 0.2, 3.5],
(quadruped_medium::Species::Moose, _) => [0.0, -0.6, 2.1],
(quadruped_medium::Species::Bristlemane, _) => [0.0, -0.6, 2.1],
(quadruped_medium::Species::Bristleback, _) => [0.0, -0.6, 2.1],
(quadruped_medium::Species::Snowleopard, _) => [-0.5, -0.5, 1.4],
(quadruped_medium::Species::Mammoth, _) => [0.0, 4.9, 7.2],
(quadruped_medium::Species::Ngoubou, _) => [0.0, 0.3, 2.0],

View File

@ -70,7 +70,7 @@ pub enum Species {
Llama = 34,
Alpaca = 35,
Akhlut = 36,
Bristlemane = 37,
Bristleback = 37,
}
/// Data representing per-species generic data.
@ -113,7 +113,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub llama: SpeciesMeta,
pub alpaca: SpeciesMeta,
pub akhlut: SpeciesMeta,
pub bristlemane: SpeciesMeta,
pub bristleback: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -157,7 +157,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Llama => &self.llama,
Species::Alpaca => &self.alpaca,
Species::Akhlut => &self.akhlut,
Species::Bristlemane => &self.bristlemane,
Species::Bristleback => &self.bristleback,
}
}
}
@ -198,7 +198,7 @@ pub const ALL_SPECIES: [Species; 36] = [
Species::Llama,
Species::Alpaca,
Species::Akhlut,
Species::Bristlemane,
Species::Bristleback,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -89,7 +89,7 @@ impl Body {
quadruped_medium::Species::Llama => 120.0,
quadruped_medium::Species::Alpaca => 110.0,
quadruped_medium::Species::Akhlut => 90.0,
quadruped_medium::Species::Bristlemane => 135.0,
quadruped_medium::Species::Bristleback => 135.0,
},
Body::BipedLarge(body) => match body.species {
biped_large::Species::Slysaurok => 100.0,

View File

@ -237,7 +237,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (0.5, 10.0),
(Alpaca, _) => (0.5, 7.5),
(Akhlut, _) => (1.0, 3.5),
(Bristlemane, _) => (-3.0, -2.0),
(Bristleback, _) => (-3.0, -2.0),
},
neck: match (body.species, body.body_type) {
(Grolgar, _) => (1.0, -1.0),
@ -277,7 +277,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (2.5, 4.5),
(Alpaca, _) => (-1.5, 3.0),
(Akhlut, _) => (8.5, -1.0),
(Bristlemane, _) => (6.0, 2.5),
(Bristleback, _) => (6.0, 2.5),
},
jaw: match (body.species, body.body_type) {
(Grolgar, _) => (7.0, 2.0),
@ -318,7 +318,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (4.0, -1.0),
(Alpaca, _) => (3.0, -2.5),
(Akhlut, _) => (0.0, -4.5),
(Bristlemane, _) => (8.0, -6.0),
(Bristleback, _) => (8.0, -6.0),
},
tail: match (body.species, body.body_type) {
(Grolgar, _) => (-11.5, -0.5),
@ -358,7 +358,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (-9.0, 6.0),
(Alpaca, _) => (-8.5, 3.5),
(Akhlut, _) => (-14.0, -2.0),
(Bristlemane, _) => (-7.0, -5.5),
(Bristleback, _) => (-7.0, -5.5),
},
torso_front: match (body.species, body.body_type) {
(Grolgar, _) => (10.0, 13.0),
@ -398,7 +398,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (7.0, 15.0),
(Alpaca, _) => (7.0, 11.5),
(Akhlut, _) => (5.5, 14.5),
(Bristlemane, _) => (1.5, 9.0),
(Bristleback, _) => (1.5, 9.0),
},
torso_back: match (body.species, body.body_type) {
(Grolgar, _) => (-10.0, 1.5),
@ -438,7 +438,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (-8.0, 0.0),
(Alpaca, _) => (-6.0, 0.0),
(Akhlut, _) => (-7.0, 1.0),
(Bristlemane, _) => (-4.0, 2.0),
(Bristleback, _) => (-4.0, 2.0),
},
ears: match (body.species, body.body_type) {
(Grolgar, _) => (5.0, 8.0),
@ -479,7 +479,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (1.0, 3.5),
(Alpaca, _) => (1.0, 2.0),
(Akhlut, _) => (12.0, -3.0),
(Bristlemane, _) => (6.0, 1.0),
(Bristleback, _) => (6.0, 1.0),
},
leg_f: match (body.species, body.body_type) {
(Grolgar, _) => (7.5, -5.5, -1.0),
@ -519,7 +519,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (5.0, -1.5, -1.0),
(Alpaca, _) => (3.5, -2.5, -0.5),
(Akhlut, _) => (8.0, -2.0, 0.5),
(Bristlemane, _) => (6.0, 1.0, -2.0),
(Bristleback, _) => (6.0, 1.0, -2.0),
},
leg_b: match (body.species, body.body_type) {
(Grolgar, _) => (6.0, -6.5, -4.0),
@ -559,7 +559,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (5.0, -7.0, -2.0),
(Alpaca, _) => (3.5, -7.0, 0.0),
(Akhlut, _) => (6.0, -7.5, -2.0),
(Bristlemane, _) => (4.5, -3.0, -2.0),
(Bristleback, _) => (4.5, -3.0, -2.0),
},
feet_f: match (body.species, body.body_type) {
(Grolgar, _) => (0.0, 0.0, -4.0),
@ -599,7 +599,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (-0.5, 0.5, -6.0),
(Alpaca, _) => (0.0, -0.5, -5.0),
(Akhlut, _) => (0.0, 0.0, -5.0),
(Bristlemane, _) => (0.0, -0.5, -2.0),
(Bristleback, _) => (0.0, -0.5, -2.0),
},
feet_b: match (body.species, body.body_type) {
(Grolgar, _) => (0.5, -1.5, -3.0),
@ -639,7 +639,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Llama, _) => (0.5, -1.5, -3.5),
(Alpaca, _) => (-0.5, -0.5, -5.5),
(Akhlut, _) => (1.5, -1.0, -4.5),
(Bristlemane, _) => (-0.5, 0.0, -4.0),
(Bristleback, _) => (-0.5, 0.0, -4.0),
},
scaler: match (body.species, body.body_type) {
(Grolgar, _) => 1.05,
@ -668,7 +668,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mammoth, _) => 3.0,
(Ngoubou, _) => 1.0,
(Akhlut, _) => 1.4,
(Bristlemane, _) => 1.1,
(Bristleback, _) => 1.1,
_ => 0.9,
},
startangle: match (body.species, body.body_type) {
@ -791,7 +791,7 @@ fn mount_point(body: &Body) -> Vec3<f32> {
(Llama, _) => (0.0, -6.0, 2.0),
(Alpaca, _) => (0.0, -9.0, 0.0),
(Akhlut, _) => (0.0, -6.0, 1.0),
(Bristlemane, _) => (0.0, -9.0, 3.0),
(Bristleback, _) => (0.0, -9.0, 3.0),
}
.into()
}

View File

@ -103,6 +103,7 @@ pub struct SkeletonAttr {
leg: (f32, f32, f32),
foot: (f32, f32, f32),
scaler: f32,
steady_wings: bool,
}
impl<'a> TryFrom<&'a comp::Body> for SkeletonAttr {
@ -130,6 +131,7 @@ impl Default for SkeletonAttr {
leg: (0.0, 0.0, 0.0),
foot: (0.0, 0.0, 0.0),
scaler: 0.0,
steady_wings: false,
}
}
}
@ -160,7 +162,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Yale, _) => (2.0, -9.5),
(Dodarock, _) => (0.0, -5.0),
(Ntouka, _) => (0.0, -4.0),
(Axebeak, _) => (5.0, -9.5),
(Axebeak, _) => (2.5, -4.0),
},
neck: match (body.species, body.body_type) {
(Archaeos, _) => (4.5, -2.0),
@ -270,6 +272,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Ntouka, _) => 2.93,
(Axebeak, _) => 1.1,
},
steady_wings: matches!((body.species, body.body_type), (Axebeak, _)),
}
}
}

View File

@ -103,13 +103,21 @@ impl Animation for RunAnimation {
next.tail_back.position = Vec3::new(0.0, s_a.tail_back.0, s_a.tail_back.1);
next.tail_back.orientation = Quaternion::rotation_x(0.2 + short * -0.1)
* Quaternion::rotation_z(shortalt * -0.2 + tilt * 1.4);
if s_a.steady_wings {
next.hand_l.position = Vec3::new(-s_a.hand.0 - 8.0, s_a.hand.1, s_a.hand.2);
next.hand_l.orientation =
Quaternion::rotation_x(-0.2 * speednorm) * Quaternion::rotation_z(-0.6);
next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2);
next.hand_l.orientation = Quaternion::rotation_x(-0.2 * speednorm + foot2a * 0.3);
next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2);
next.hand_r.orientation = Quaternion::rotation_x(-0.2 * speednorm + foot1a * 0.3);
next.hand_r.position = Vec3::new(s_a.hand.0 + 8.0, s_a.hand.1, s_a.hand.2);
next.hand_r.orientation =
Quaternion::rotation_x(-0.2 * speednorm) * Quaternion::rotation_z(0.6);
} else {
next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2);
next.hand_l.orientation = Quaternion::rotation_x(-0.2 * speednorm + foot2a * 0.3);
next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2);
next.hand_r.orientation = Quaternion::rotation_x(-0.2 * speednorm + foot1a * 0.3);
};
next.leg_l.position = Vec3::new(
-s_a.leg.0 + speednorm * 1.5,
s_a.leg.1 + foot1b * -1.3,