streamlined body part naming scheme, swapped quadruped to quadruped_small, rewrote mesh names to reflect body type instead of npckind. finally.

This commit is contained in:
jshipsey 2019-10-24 21:26:32 -04:00
parent 345095a183
commit c503f6e063
103 changed files with 364 additions and 523 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +1,13 @@
pub mod biped_large;
pub mod bird_medium;
pub mod bird_small;
pub mod dragon;
pub mod fish_medium;
pub mod fish_small;
pub mod humanoid; pub mod humanoid;
pub mod object; pub mod object;
pub mod quadruped;
pub mod quadruped_medium; pub mod quadruped_medium;
pub mod bird_medium; pub mod quadruped_small;
pub mod fish_medium;
pub mod dragon;
pub mod bird_small;
pub mod fish_small;
pub mod biped_large;
use specs::{Component, FlaggedStorage}; use specs::{Component, FlaggedStorage};
use specs_idvs::IDVStorage; use specs_idvs::IDVStorage;
@ -15,7 +15,7 @@ use specs_idvs::IDVStorage;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Body { pub enum Body {
Humanoid(humanoid::Body), Humanoid(humanoid::Body),
Quadruped(quadruped::Body), QuadrupedSmall(quadruped_small::Body),
QuadrupedMedium(quadruped_medium::Body), QuadrupedMedium(quadruped_medium::Body),
BirdMedium(bird_medium::Body), BirdMedium(bird_medium::Body),
FishMedium(fish_medium::Body), FishMedium(fish_medium::Body),

View File

@ -31,7 +31,6 @@ pub enum Torso {
} }
const ALL_TORSOS: [Torso; 1] = [Torso::Default]; const ALL_TORSOS: [Torso; 1] = [Torso::Default];
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum WingL { pub enum WingL {
Default, Default,

View File

@ -15,9 +15,6 @@ pub struct Body {
pub foot_fr: FootFR, pub foot_fr: FootFR,
pub foot_bl: FootBL, pub foot_bl: FootBL,
pub foot_br: FootBR, pub foot_br: FootBR,
} }
impl Body { impl Body {
pub fn random() -> Self { pub fn random() -> Self {
@ -36,8 +33,6 @@ impl Body {
foot_fr: *(&ALL_FOOT_FRS).choose(&mut rng).unwrap(), foot_fr: *(&ALL_FOOT_FRS).choose(&mut rng).unwrap(),
foot_bl: *(&ALL_FOOT_BLS).choose(&mut rng).unwrap(), foot_bl: *(&ALL_FOOT_BLS).choose(&mut rng).unwrap(),
foot_br: *(&ALL_FOOT_BRS).choose(&mut rng).unwrap(), foot_br: *(&ALL_FOOT_BRS).choose(&mut rng).unwrap(),
} }
} }
} }

View File

@ -19,7 +19,6 @@ impl Body {
tail: *(&ALL_TAILS).choose(&mut rng).unwrap(), tail: *(&ALL_TAILS).choose(&mut rng).unwrap(),
fin_l: *(&ALL_FIN_LS).choose(&mut rng).unwrap(), fin_l: *(&ALL_FIN_LS).choose(&mut rng).unwrap(),
fin_r: *(&ALL_FIN_RS).choose(&mut rng).unwrap(), fin_r: *(&ALL_FIN_RS).choose(&mut rng).unwrap(),
} }
} }
} }

View File

@ -15,7 +15,6 @@ impl Body {
} }
} }
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Torso { pub enum Torso {
Default, Default,

View File

@ -16,7 +16,10 @@ mod visual;
// Reexports // Reexports
pub use admin::Admin; pub use admin::Admin;
pub use agent::Agent; pub use agent::Agent;
pub use body::{humanoid, object, quadruped, quadruped_medium, bird_medium, fish_medium, dragon, bird_small, fish_small, biped_large, Body}; pub use body::{
biped_large, bird_medium, bird_small, dragon, fish_medium, fish_small, humanoid, object,
quadruped_medium, quadruped_small, Body,
};
pub use character_state::{ActionState, CharacterState, MovementState}; pub use character_state::{ActionState, CharacterState, MovementState};
pub use controller::{ pub use controller::{
ControlEvent, Controller, ControllerInputs, InventoryManip, MountState, Mounting, ControlEvent, Controller, ControllerInputs, InventoryManip, MountState, Mounting,

View File

@ -553,7 +553,7 @@ fn alignment_to_agent(alignment: &str, target: EcsEntity) -> Option<comp::Agent>
fn kind_to_body(kind: NpcKind) -> comp::Body { fn kind_to_body(kind: NpcKind) -> comp::Body {
match kind { match kind {
NpcKind::Humanoid => comp::Body::Humanoid(comp::humanoid::Body::random()), NpcKind::Humanoid => comp::Body::Humanoid(comp::humanoid::Body::random()),
NpcKind::Pig => comp::Body::Quadruped(comp::quadruped::Body::random()), NpcKind::Pig => comp::Body::QuadrupedSmall(comp::quadruped_small::Body::random()),
NpcKind::Wolf => comp::Body::QuadrupedMedium(comp::quadruped_medium::Body::random()), NpcKind::Wolf => comp::Body::QuadrupedMedium(comp::quadruped_medium::Body::random()),
} }
} }

View File

@ -38,60 +38,48 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_head.ori = next.knight_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_head.scale = Vec3::one() / 10.88; next.knight_head.scale = Vec3::one() / 10.88;
next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_upper_torso.ori = next.knight_upper_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_upper_torso.scale = Vec3::one() / 10.88; next.knight_upper_torso.scale = Vec3::one() / 10.88;
next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_lower_torso.ori = next.knight_lower_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_lower_torso.scale = Vec3::one() / 10.88; next.knight_lower_torso.scale = Vec3::one() / 10.88;
next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_l.ori = next.knight_shoulder_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_l.scale = Vec3::one() / 10.88; next.knight_shoulder_l.scale = Vec3::one() / 10.88;
next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_r.ori = next.knight_shoulder_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_r.scale = Vec3::one() / 10.88; next.knight_shoulder_r.scale = Vec3::one() / 10.88;
next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_l.ori = next.knight_hand_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_l.scale = Vec3::one() / 10.88; next.knight_hand_l.scale = Vec3::one() / 10.88;
next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_r.ori = next.knight_hand_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_r.scale = Vec3::one() / 10.88; next.knight_hand_r.scale = Vec3::one() / 10.88;
next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_l.ori = next.knight_leg_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_l.scale = Vec3::one() / 10.88; next.knight_leg_l.scale = Vec3::one() / 10.88;
next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_r.ori = next.knight_leg_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_r.scale = Vec3::one() / 10.88; next.knight_leg_r.scale = Vec3::one() / 10.88;
next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_l.ori = next.knight_foot_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_l.scale = Vec3::one() / 10.88; next.knight_foot_l.scale = Vec3::one() / 10.88;
next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_r.ori = next.knight_foot_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_r.scale = Vec3::one() / 10.88; next.knight_foot_r.scale = Vec3::one() / 10.88;
next next
} }

View File

@ -25,61 +25,48 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_head.ori = next.knight_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_head.scale = Vec3::one() / 10.88; next.knight_head.scale = Vec3::one() / 10.88;
next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_upper_torso.ori = next.knight_upper_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_upper_torso.scale = Vec3::one() / 10.88; next.knight_upper_torso.scale = Vec3::one() / 10.88;
next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_lower_torso.ori = next.knight_lower_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_lower_torso.scale = Vec3::one() / 10.88; next.knight_lower_torso.scale = Vec3::one() / 10.88;
next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_l.ori = next.knight_shoulder_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_l.scale = Vec3::one() / 10.88; next.knight_shoulder_l.scale = Vec3::one() / 10.88;
next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_r.ori = next.knight_shoulder_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_r.scale = Vec3::one() / 10.88; next.knight_shoulder_r.scale = Vec3::one() / 10.88;
next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_l.ori = next.knight_hand_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_l.scale = Vec3::one() / 10.88; next.knight_hand_l.scale = Vec3::one() / 10.88;
next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_r.ori = next.knight_hand_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_r.scale = Vec3::one() / 10.88; next.knight_hand_r.scale = Vec3::one() / 10.88;
next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_l.ori = next.knight_leg_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_l.scale = Vec3::one() / 10.88; next.knight_leg_l.scale = Vec3::one() / 10.88;
next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_r.ori = next.knight_leg_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_r.scale = Vec3::one() / 10.88; next.knight_leg_r.scale = Vec3::one() / 10.88;
next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_l.ori = next.knight_foot_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_l.scale = Vec3::one() / 10.88; next.knight_foot_l.scale = Vec3::one() / 10.88;
next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_r.ori = next.knight_foot_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_r.scale = Vec3::one() / 10.88; next.knight_foot_r.scale = Vec3::one() / 10.88;
next next
} }

View File

@ -23,9 +23,6 @@ pub struct BipedLargeSkeleton {
knight_leg_r: Bone, knight_leg_r: Bone,
knight_foot_l: Bone, knight_foot_l: Bone,
knight_foot_r: Bone, knight_foot_r: Bone,
} }
impl BipedLargeSkeleton { impl BipedLargeSkeleton {
@ -42,7 +39,6 @@ impl BipedLargeSkeleton {
knight_leg_r: Bone::default(), knight_leg_r: Bone::default(),
knight_foot_l: Bone::default(), knight_foot_l: Bone::default(),
knight_foot_r: Bone::default(), knight_foot_r: Bone::default(),
} }
} }
} }
@ -55,17 +51,18 @@ impl Skeleton for BipedLargeSkeleton {
let leg_l_mat = self.knight_leg_l.compute_base_matrix(); let leg_l_mat = self.knight_leg_l.compute_base_matrix();
let leg_r_mat = self.knight_leg_r.compute_base_matrix(); let leg_r_mat = self.knight_leg_r.compute_base_matrix();
[ [
FigureBoneData::new(self.knight_head.compute_base_matrix()), FigureBoneData::new(self.knight_head.compute_base_matrix()),
FigureBoneData::new( FigureBoneData::new(upper_torso_mat),
upper_torso_mat,
),
FigureBoneData::new(self.knight_lower_torso.compute_base_matrix() * upper_torso_mat), FigureBoneData::new(self.knight_lower_torso.compute_base_matrix() * upper_torso_mat),
FigureBoneData::new(shoulder_l_mat * upper_torso_mat), FigureBoneData::new(shoulder_l_mat * upper_torso_mat),
FigureBoneData::new(shoulder_r_mat * upper_torso_mat), FigureBoneData::new(shoulder_r_mat * upper_torso_mat),
FigureBoneData::new(self.knight_hand_l.compute_base_matrix() * shoulder_l_mat * upper_torso_mat), FigureBoneData::new(
FigureBoneData::new(self.knight_hand_r.compute_base_matrix() * shoulder_r_mat * upper_torso_mat), self.knight_hand_l.compute_base_matrix() * shoulder_l_mat * upper_torso_mat,
),
FigureBoneData::new(
self.knight_hand_r.compute_base_matrix() * shoulder_r_mat * upper_torso_mat,
),
FigureBoneData::new(leg_l_mat), FigureBoneData::new(leg_l_mat),
FigureBoneData::new(leg_r_mat), FigureBoneData::new(leg_r_mat),
FigureBoneData::new(self.knight_foot_l.compute_base_matrix() * leg_l_mat), FigureBoneData::new(self.knight_foot_l.compute_base_matrix() * leg_l_mat),
@ -79,12 +76,13 @@ impl Skeleton for BipedLargeSkeleton {
} }
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.knight_head self.knight_head.interpolate(&target.knight_head, dt);
.interpolate(&target.knight_head, dt); self.knight_upper_torso
self.knight_upper_torso.interpolate(&target.knight_upper_torso, dt); .interpolate(&target.knight_upper_torso, dt);
self.knight_lower_torso self.knight_lower_torso
.interpolate(&target.knight_lower_torso, dt); .interpolate(&target.knight_lower_torso, dt);
self.knight_shoulder_l.interpolate(&target.knight_shoulder_l, dt); self.knight_shoulder_l
.interpolate(&target.knight_shoulder_l, dt);
self.knight_shoulder_r self.knight_shoulder_r
.interpolate(&target.knight_shoulder_r, dt); .interpolate(&target.knight_shoulder_r, dt);
self.knight_hand_l.interpolate(&target.knight_hand_l, dt); self.knight_hand_l.interpolate(&target.knight_hand_l, dt);
@ -93,7 +91,5 @@ impl Skeleton for BipedLargeSkeleton {
self.knight_leg_r.interpolate(&target.knight_leg_r, dt); self.knight_leg_r.interpolate(&target.knight_leg_r, dt);
self.knight_foot_l.interpolate(&target.knight_foot_l, dt); self.knight_foot_l.interpolate(&target.knight_foot_l, dt);
self.knight_foot_r.interpolate(&target.knight_foot_r, dt); self.knight_foot_r.interpolate(&target.knight_foot_r, dt);
} }
} }

View File

@ -38,60 +38,48 @@ impl Animation for RunAnimation {
* 0.25, * 0.25,
); );
next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_head.ori = next.knight_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_head.scale = Vec3::one() / 10.88; next.knight_head.scale = Vec3::one() / 10.88;
next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_upper_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_upper_torso.ori = next.knight_upper_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_upper_torso.scale = Vec3::one() / 10.88; next.knight_upper_torso.scale = Vec3::one() / 10.88;
next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_lower_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_lower_torso.ori = next.knight_lower_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_lower_torso.scale = Vec3::one() / 10.88; next.knight_lower_torso.scale = Vec3::one() / 10.88;
next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_l.ori = next.knight_shoulder_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_l.scale = Vec3::one() / 10.88; next.knight_shoulder_l.scale = Vec3::one() / 10.88;
next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_shoulder_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_shoulder_r.ori = next.knight_shoulder_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_shoulder_r.scale = Vec3::one() / 10.88; next.knight_shoulder_r.scale = Vec3::one() / 10.88;
next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_l.ori = next.knight_hand_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_l.scale = Vec3::one() / 10.88; next.knight_hand_l.scale = Vec3::one() / 10.88;
next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_hand_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_hand_r.ori = next.knight_hand_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_hand_r.scale = Vec3::one() / 10.88; next.knight_hand_r.scale = Vec3::one() / 10.88;
next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_l.ori = next.knight_leg_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_l.scale = Vec3::one() / 10.88; next.knight_leg_l.scale = Vec3::one() / 10.88;
next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_leg_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_leg_r.ori = next.knight_leg_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_leg_r.scale = Vec3::one() / 10.88; next.knight_leg_r.scale = Vec3::one() / 10.88;
next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_l.ori = next.knight_foot_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_l.scale = Vec3::one() / 10.88; next.knight_foot_l.scale = Vec3::one() / 10.88;
next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.knight_foot_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.knight_foot_r.ori = next.knight_foot_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.knight_foot_r.scale = Vec3::one() / 10.88; next.knight_foot_r.scale = Vec3::one() / 10.88;
next next
} }

View File

@ -38,14 +38,12 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.duck_m_head.ori = next.duck_m_head.ori =
Quaternion::rotation_z(duck_m_look.x) * Quaternion::rotation_x(duck_m_look.y); Quaternion::rotation_z(duck_m_look.x) * Quaternion::rotation_x(duck_m_look.y);
next.duck_m_head.scale = Vec3::one() / 10.88; next.duck_m_head.scale = Vec3::one() / 10.88;
next.duck_m_torso.offset = next.duck_m_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.duck_m_torso.ori = Quaternion::rotation_x(0.0); next.duck_m_torso.ori = Quaternion::rotation_x(0.0);
next.duck_m_torso.scale = Vec3::one() * 1.01; next.duck_m_torso.scale = Vec3::one() * 1.01;
@ -54,8 +52,7 @@ impl Animation for IdleAnimation {
next.duck_m_tail.scale = Vec3::one() * 0.98; next.duck_m_tail.scale = Vec3::one() * 0.98;
next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.duck_m_wing_l.scale = Vec3::one() / 11.0; next.duck_m_wing_l.scale = Vec3::one() / 11.0;
next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -25,15 +25,11 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.duck_m_head.ori = next.duck_m_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.duck_m_head.scale = Vec3::one() / 10.88; next.duck_m_head.scale = Vec3::one() / 10.88;
next.duck_m_torso.offset = next.duck_m_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.duck_m_torso.ori = Quaternion::rotation_x(0.0); next.duck_m_torso.ori = Quaternion::rotation_x(0.0);
next.duck_m_torso.scale = Vec3::one() * 1.01; next.duck_m_torso.scale = Vec3::one() * 1.01;
@ -42,8 +38,7 @@ impl Animation for JumpAnimation {
next.duck_m_tail.scale = Vec3::one() * 0.98; next.duck_m_tail.scale = Vec3::one() * 0.98;
next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.duck_m_wing_l.scale = Vec3::one() / 11.0; next.duck_m_wing_l.scale = Vec3::one() / 11.0;
next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -19,7 +19,6 @@ pub struct BirdMediumSkeleton {
duck_m_wing_r: Bone, duck_m_wing_r: Bone,
duck_m_leg_l: Bone, duck_m_leg_l: Bone,
duck_m_leg_r: Bone, duck_m_leg_r: Bone,
} }
impl BirdMediumSkeleton { impl BirdMediumSkeleton {
@ -32,8 +31,6 @@ impl BirdMediumSkeleton {
duck_m_wing_r: Bone::default(), duck_m_wing_r: Bone::default(),
duck_m_leg_l: Bone::default(), duck_m_leg_l: Bone::default(),
duck_m_leg_r: Bone::default(), duck_m_leg_r: Bone::default(),
} }
} }
} }
@ -42,12 +39,9 @@ impl Skeleton for BirdMediumSkeleton {
fn compute_matrices(&self) -> [FigureBoneData; 16] { fn compute_matrices(&self) -> [FigureBoneData; 16] {
let torso_mat = self.duck_m_torso.compute_base_matrix(); let torso_mat = self.duck_m_torso.compute_base_matrix();
[ [
FigureBoneData::new(self.duck_m_head.compute_base_matrix() * torso_mat), FigureBoneData::new(self.duck_m_head.compute_base_matrix() * torso_mat),
FigureBoneData::new( FigureBoneData::new(torso_mat),
torso_mat,
),
FigureBoneData::new(self.duck_m_tail.compute_base_matrix() * torso_mat), FigureBoneData::new(self.duck_m_tail.compute_base_matrix() * torso_mat),
FigureBoneData::new(self.duck_m_wing_l.compute_base_matrix() * torso_mat), FigureBoneData::new(self.duck_m_wing_l.compute_base_matrix() * torso_mat),
FigureBoneData::new(self.duck_m_wing_r.compute_base_matrix() * torso_mat), FigureBoneData::new(self.duck_m_wing_r.compute_base_matrix() * torso_mat),
@ -66,14 +60,11 @@ impl Skeleton for BirdMediumSkeleton {
} }
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.duck_m_head self.duck_m_head.interpolate(&target.duck_m_head, dt);
.interpolate(&target.duck_m_head, dt);
self.duck_m_torso.interpolate(&target.duck_m_torso, dt); self.duck_m_torso.interpolate(&target.duck_m_torso, dt);
self.duck_m_tail self.duck_m_tail.interpolate(&target.duck_m_tail, dt);
.interpolate(&target.duck_m_tail, dt);
self.duck_m_wing_l.interpolate(&target.duck_m_wing_l, dt); self.duck_m_wing_l.interpolate(&target.duck_m_wing_l, dt);
self.duck_m_wing_r self.duck_m_wing_r.interpolate(&target.duck_m_wing_r, dt);
.interpolate(&target.duck_m_wing_r, dt);
self.duck_m_leg_l.interpolate(&target.duck_m_leg_l, dt); self.duck_m_leg_l.interpolate(&target.duck_m_leg_l, dt);
self.duck_m_leg_r.interpolate(&target.duck_m_leg_r, dt); self.duck_m_leg_r.interpolate(&target.duck_m_leg_r, dt);
} }

View File

@ -38,14 +38,11 @@ impl Animation for RunAnimation {
* 0.25, * 0.25,
); );
next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.duck_m_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.duck_m_head.ori = next.duck_m_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.duck_m_head.scale = Vec3::one() / 10.88; next.duck_m_head.scale = Vec3::one() / 10.88;
next.duck_m_torso.offset = next.duck_m_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.duck_m_torso.ori = Quaternion::rotation_x(0.0); next.duck_m_torso.ori = Quaternion::rotation_x(0.0);
next.duck_m_torso.scale = Vec3::one() * 1.01; next.duck_m_torso.scale = Vec3::one() * 1.01;
@ -54,8 +51,7 @@ impl Animation for RunAnimation {
next.duck_m_tail.scale = Vec3::one() * 0.98; next.duck_m_tail.scale = Vec3::one() * 0.98;
next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.duck_m_wing_l.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) next.duck_m_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.duck_m_wing_l.scale = Vec3::one() / 11.0; next.duck_m_wing_l.scale = Vec3::one() / 11.0;
next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.duck_m_wing_r.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -38,25 +38,20 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_head.ori = next.crow_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_head.scale = Vec3::one() / 10.88; next.crow_head.scale = Vec3::one() / 10.88;
next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_torso.ori = next.crow_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_torso.scale = Vec3::one() / 10.88; next.crow_torso.scale = Vec3::one() / 10.88;
next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_l.ori = next.crow_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_l.scale = Vec3::one() / 10.88; next.crow_wing_l.scale = Vec3::one() / 10.88;
next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_r.ori = next.crow_wing_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_r.scale = Vec3::one() / 10.88; next.crow_wing_r.scale = Vec3::one() / 10.88;
next next

View File

@ -25,26 +25,20 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_head.ori = next.crow_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_head.scale = Vec3::one() / 10.88; next.crow_head.scale = Vec3::one() / 10.88;
next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_torso.ori = next.crow_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_torso.scale = Vec3::one() / 10.88; next.crow_torso.scale = Vec3::one() / 10.88;
next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_l.ori = next.crow_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_l.scale = Vec3::one() / 10.88; next.crow_wing_l.scale = Vec3::one() / 10.88;
next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_r.ori = next.crow_wing_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_r.scale = Vec3::one() / 10.88; next.crow_wing_r.scale = Vec3::one() / 10.88;
next next

View File

@ -25,7 +25,6 @@ impl BirdSmallSkeleton {
crow_torso: Bone::default(), crow_torso: Bone::default(),
crow_wing_l: Bone::default(), crow_wing_l: Bone::default(),
crow_wing_r: Bone::default(), crow_wing_r: Bone::default(),
} }
} }
} }
@ -34,12 +33,9 @@ impl Skeleton for BirdSmallSkeleton {
fn compute_matrices(&self) -> [FigureBoneData; 16] { fn compute_matrices(&self) -> [FigureBoneData; 16] {
let torso_mat = self.crow_torso.compute_base_matrix(); let torso_mat = self.crow_torso.compute_base_matrix();
[ [
FigureBoneData::new(self.crow_head.compute_base_matrix() * torso_mat), FigureBoneData::new(self.crow_head.compute_base_matrix() * torso_mat),
FigureBoneData::new( FigureBoneData::new(torso_mat),
torso_mat,
),
FigureBoneData::new(self.crow_wing_l.compute_base_matrix() * torso_mat), FigureBoneData::new(self.crow_wing_l.compute_base_matrix() * torso_mat),
FigureBoneData::new(self.crow_wing_r.compute_base_matrix() * torso_mat), FigureBoneData::new(self.crow_wing_r.compute_base_matrix() * torso_mat),
FigureBoneData::default(), FigureBoneData::default(),
@ -58,11 +54,9 @@ impl Skeleton for BirdSmallSkeleton {
} }
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.crow_head self.crow_head.interpolate(&target.crow_head, dt);
.interpolate(&target.crow_head, dt);
self.crow_torso.interpolate(&target.crow_torso, dt); self.crow_torso.interpolate(&target.crow_torso, dt);
self.crow_wing_l.interpolate(&target.crow_wing_l, dt); self.crow_wing_l.interpolate(&target.crow_wing_l, dt);
self.crow_wing_r self.crow_wing_r.interpolate(&target.crow_wing_r, dt);
.interpolate(&target.crow_wing_r, dt);
} }
} }

View File

@ -38,25 +38,20 @@ impl Animation for RunAnimation {
* 0.25, * 0.25,
); );
next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_head.ori = next.crow_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_head.scale = Vec3::one() / 10.88; next.crow_head.scale = Vec3::one() / 10.88;
next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_torso.ori = next.crow_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_torso.scale = Vec3::one() / 10.88; next.crow_torso.scale = Vec3::one() / 10.88;
next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_l.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_l.ori = next.crow_wing_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_l.scale = Vec3::one() / 10.88; next.crow_wing_l.scale = Vec3::one() / 10.88;
next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.crow_wing_r.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.crow_wing_r.ori = next.crow_wing_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.crow_wing_r.scale = Vec3::one() / 10.88; next.crow_wing_r.scale = Vec3::one() / 10.88;
next next

View File

@ -38,69 +38,55 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.dragon_head.ori = next.dragon_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.dragon_head.scale = Vec3::one() / 10.88; next.dragon_head.scale = Vec3::one() / 10.88;
next.dragon_chest_front.offset = next.dragon_chest_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_front.ori = Quaternion::rotation_x(0.0); next.dragon_chest_front.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_front.scale = Vec3::one() * 1.01; next.dragon_chest_front.scale = Vec3::one() * 1.01;
next.dragon_chest_rear.offset = next.dragon_chest_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0); next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_rear.scale = Vec3::one() * 1.01; next.dragon_chest_rear.scale = Vec3::one() * 1.01;
next.dragon_tail_front.offset = next.dragon_tail_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_front.ori = Quaternion::rotation_x(0.0); next.dragon_tail_front.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_front.scale = Vec3::one() * 1.01; next.dragon_tail_front.scale = Vec3::one() * 1.01;
next.dragon_tail_rear.offset = next.dragon_tail_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0); next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_rear.scale = Vec3::one() * 1.01; next.dragon_tail_rear.scale = Vec3::one() * 1.01;
next.dragon_wing_in_l.offset = next.dragon_wing_in_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_l.scale = Vec3::one() * 1.01; next.dragon_wing_in_l.scale = Vec3::one() * 1.01;
next.dragon_wing_in_r.offset = next.dragon_wing_in_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_r.scale = Vec3::one() * 1.01; next.dragon_wing_in_r.scale = Vec3::one() * 1.01;
next.dragon_wing_out_l.offset = next.dragon_wing_out_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_l.scale = Vec3::one() * 1.01; next.dragon_wing_out_l.scale = Vec3::one() * 1.01;
next.dragon_wing_out_r.offset = next.dragon_wing_out_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_r.scale = Vec3::one() * 1.01; next.dragon_wing_out_r.scale = Vec3::one() * 1.01;
next.dragon_foot_fl.offset = next.dragon_foot_fl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fl.scale = Vec3::one() * 1.01; next.dragon_foot_fl.scale = Vec3::one() * 1.01;
next.dragon_foot_fr.offset = next.dragon_foot_fr.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fr.scale = Vec3::one() * 1.01; next.dragon_foot_fr.scale = Vec3::one() * 1.01;
next.dragon_foot_bl.offset = next.dragon_foot_bl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_bl.scale = Vec3::one() * 1.01; next.dragon_foot_bl.scale = Vec3::one() * 1.01;
next.dragon_foot_br.offset = next.dragon_foot_br.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_br.ori = Quaternion::rotation_x(0.0); next.dragon_foot_br.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_br.scale = Vec3::one() * 1.01; next.dragon_foot_br.scale = Vec3::one() * 1.01;
next next

View File

@ -25,70 +25,55 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.dragon_head.ori = next.dragon_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.dragon_head.scale = Vec3::one() / 10.88; next.dragon_head.scale = Vec3::one() / 10.88;
next.dragon_chest_front.offset = next.dragon_chest_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_front.ori = Quaternion::rotation_x(0.0); next.dragon_chest_front.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_front.scale = Vec3::one() * 1.01; next.dragon_chest_front.scale = Vec3::one() * 1.01;
next.dragon_chest_rear.offset = next.dragon_chest_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0); next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_rear.scale = Vec3::one() * 1.01; next.dragon_chest_rear.scale = Vec3::one() * 1.01;
next.dragon_tail_front.offset = next.dragon_tail_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_front.ori = Quaternion::rotation_x(0.0); next.dragon_tail_front.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_front.scale = Vec3::one() * 1.01; next.dragon_tail_front.scale = Vec3::one() * 1.01;
next.dragon_tail_rear.offset = next.dragon_tail_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0); next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_rear.scale = Vec3::one() * 1.01; next.dragon_tail_rear.scale = Vec3::one() * 1.01;
next.dragon_wing_in_l.offset = next.dragon_wing_in_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_l.scale = Vec3::one() * 1.01; next.dragon_wing_in_l.scale = Vec3::one() * 1.01;
next.dragon_wing_in_r.offset = next.dragon_wing_in_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_r.scale = Vec3::one() * 1.01; next.dragon_wing_in_r.scale = Vec3::one() * 1.01;
next.dragon_wing_out_l.offset = next.dragon_wing_out_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_l.scale = Vec3::one() * 1.01; next.dragon_wing_out_l.scale = Vec3::one() * 1.01;
next.dragon_wing_out_r.offset = next.dragon_wing_out_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_r.scale = Vec3::one() * 1.01; next.dragon_wing_out_r.scale = Vec3::one() * 1.01;
next.dragon_foot_fl.offset = next.dragon_foot_fl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fl.scale = Vec3::one() * 1.01; next.dragon_foot_fl.scale = Vec3::one() * 1.01;
next.dragon_foot_fr.offset = next.dragon_foot_fr.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fr.scale = Vec3::one() * 1.01; next.dragon_foot_fr.scale = Vec3::one() * 1.01;
next.dragon_foot_bl.offset = next.dragon_foot_bl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_bl.scale = Vec3::one() * 1.01; next.dragon_foot_bl.scale = Vec3::one() * 1.01;
next.dragon_foot_br.offset = next.dragon_foot_br.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_br.ori = Quaternion::rotation_x(0.0); next.dragon_foot_br.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_br.scale = Vec3::one() * 1.01; next.dragon_foot_br.scale = Vec3::one() * 1.01;
next next

View File

@ -25,7 +25,6 @@ pub struct DragonSkeleton {
dragon_foot_fr: Bone, dragon_foot_fr: Bone,
dragon_foot_bl: Bone, dragon_foot_bl: Bone,
dragon_foot_br: Bone, dragon_foot_br: Bone,
} }
impl DragonSkeleton { impl DragonSkeleton {
@ -44,8 +43,6 @@ impl DragonSkeleton {
dragon_foot_fr: Bone::default(), dragon_foot_fr: Bone::default(),
dragon_foot_bl: Bone::default(), dragon_foot_bl: Bone::default(),
dragon_foot_br: Bone::default(), dragon_foot_br: Bone::default(),
} }
} }
} }
@ -57,12 +54,9 @@ impl Skeleton for DragonSkeleton {
let wing_in_r_mat = self.dragon_wing_in_r.compute_base_matrix(); let wing_in_r_mat = self.dragon_wing_in_r.compute_base_matrix();
let tail_front_mat = self.dragon_tail_front.compute_base_matrix(); let tail_front_mat = self.dragon_tail_front.compute_base_matrix();
[ [
FigureBoneData::new(self.dragon_head.compute_base_matrix() * chest_front_mat), FigureBoneData::new(self.dragon_head.compute_base_matrix() * chest_front_mat),
FigureBoneData::new( FigureBoneData::new(chest_front_mat),
chest_front_mat,
),
FigureBoneData::new(self.dragon_chest_rear.compute_base_matrix() * chest_front_mat), FigureBoneData::new(self.dragon_chest_rear.compute_base_matrix() * chest_front_mat),
FigureBoneData::new(tail_front_mat), FigureBoneData::new(tail_front_mat),
FigureBoneData::new(self.dragon_tail_rear.compute_base_matrix() * tail_front_mat), FigureBoneData::new(self.dragon_tail_rear.compute_base_matrix() * tail_front_mat),
@ -82,19 +76,25 @@ impl Skeleton for DragonSkeleton {
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.dragon_head.interpolate(&target.dragon_head, dt); self.dragon_head.interpolate(&target.dragon_head, dt);
self.dragon_chest_front.interpolate(&target.dragon_chest_front, dt); self.dragon_chest_front
self.dragon_chest_rear.interpolate(&target.dragon_chest_rear, dt); .interpolate(&target.dragon_chest_front, dt);
self.dragon_tail_front.interpolate(&target.dragon_tail_front, dt); self.dragon_chest_rear
self.dragon_tail_rear.interpolate(&target.dragon_tail_rear, dt); .interpolate(&target.dragon_chest_rear, dt);
self.dragon_wing_in_l.interpolate(&target.dragon_wing_in_l, dt); self.dragon_tail_front
self.dragon_wing_in_r.interpolate(&target.dragon_wing_in_r, dt); .interpolate(&target.dragon_tail_front, dt);
self.dragon_wing_out_l.interpolate(&target.dragon_wing_out_l, dt); self.dragon_tail_rear
self.dragon_wing_out_r.interpolate(&target.dragon_wing_out_r, dt); .interpolate(&target.dragon_tail_rear, dt);
self.dragon_wing_in_l
.interpolate(&target.dragon_wing_in_l, dt);
self.dragon_wing_in_r
.interpolate(&target.dragon_wing_in_r, dt);
self.dragon_wing_out_l
.interpolate(&target.dragon_wing_out_l, dt);
self.dragon_wing_out_r
.interpolate(&target.dragon_wing_out_r, dt);
self.dragon_foot_fl.interpolate(&target.dragon_foot_fl, dt); self.dragon_foot_fl.interpolate(&target.dragon_foot_fl, dt);
self.dragon_foot_fr.interpolate(&target.dragon_foot_fr, dt); self.dragon_foot_fr.interpolate(&target.dragon_foot_fr, dt);
self.dragon_foot_bl.interpolate(&target.dragon_foot_bl, dt); self.dragon_foot_bl.interpolate(&target.dragon_foot_bl, dt);
self.dragon_foot_br.interpolate(&target.dragon_foot_br, dt); self.dragon_foot_br.interpolate(&target.dragon_foot_br, dt);
} }
} }

View File

@ -38,69 +38,55 @@ impl Animation for RunAnimation {
* 0.25, * 0.25,
); );
next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.dragon_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.dragon_head.ori = next.dragon_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.dragon_head.scale = Vec3::one() / 10.88; next.dragon_head.scale = Vec3::one() / 10.88;
next.dragon_chest_front.offset = next.dragon_chest_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_front.ori = Quaternion::rotation_x(0.0); next.dragon_chest_front.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_front.scale = Vec3::one() * 1.01; next.dragon_chest_front.scale = Vec3::one() * 1.01;
next.dragon_chest_rear.offset = next.dragon_chest_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0); next.dragon_chest_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_chest_rear.scale = Vec3::one() * 1.01; next.dragon_chest_rear.scale = Vec3::one() * 1.01;
next.dragon_tail_front.offset = next.dragon_tail_front.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_front.ori = Quaternion::rotation_x(0.0); next.dragon_tail_front.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_front.scale = Vec3::one() * 1.01; next.dragon_tail_front.scale = Vec3::one() * 1.01;
next.dragon_tail_rear.offset = next.dragon_tail_rear.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0); next.dragon_tail_rear.ori = Quaternion::rotation_x(0.0);
next.dragon_tail_rear.scale = Vec3::one() * 1.01; next.dragon_tail_rear.scale = Vec3::one() * 1.01;
next.dragon_wing_in_l.offset = next.dragon_wing_in_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_l.scale = Vec3::one() * 1.01; next.dragon_wing_in_l.scale = Vec3::one() * 1.01;
next.dragon_wing_in_r.offset = next.dragon_wing_in_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_in_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_in_r.scale = Vec3::one() * 1.01; next.dragon_wing_in_r.scale = Vec3::one() * 1.01;
next.dragon_wing_out_l.offset = next.dragon_wing_out_l.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_l.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_l.scale = Vec3::one() * 1.01; next.dragon_wing_out_l.scale = Vec3::one() * 1.01;
next.dragon_wing_out_r.offset = next.dragon_wing_out_r.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0); next.dragon_wing_out_r.ori = Quaternion::rotation_x(0.0);
next.dragon_wing_out_r.scale = Vec3::one() * 1.01; next.dragon_wing_out_r.scale = Vec3::one() * 1.01;
next.dragon_foot_fl.offset = next.dragon_foot_fl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fl.scale = Vec3::one() * 1.01; next.dragon_foot_fl.scale = Vec3::one() * 1.01;
next.dragon_foot_fr.offset = next.dragon_foot_fr.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0); next.dragon_foot_fr.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_fr.scale = Vec3::one() * 1.01; next.dragon_foot_fr.scale = Vec3::one() * 1.01;
next.dragon_foot_bl.offset = next.dragon_foot_bl.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0); next.dragon_foot_bl.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_bl.scale = Vec3::one() * 1.01; next.dragon_foot_bl.scale = Vec3::one() * 1.01;
next.dragon_foot_br.offset = next.dragon_foot_br.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.dragon_foot_br.ori = Quaternion::rotation_x(0.0); next.dragon_foot_br.ori = Quaternion::rotation_x(0.0);
next.dragon_foot_br.scale = Vec3::one() * 1.01; next.dragon_foot_br.scale = Vec3::one() * 1.01;
next next

View File

@ -38,14 +38,12 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.marlin_head.ori = next.marlin_head.ori =
Quaternion::rotation_z(duck_m_look.x) * Quaternion::rotation_x(duck_m_look.y); Quaternion::rotation_z(duck_m_look.x) * Quaternion::rotation_x(duck_m_look.y);
next.marlin_head.scale = Vec3::one() / 10.88; next.marlin_head.scale = Vec3::one() / 10.88;
next.marlin_torso.offset = next.marlin_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.marlin_torso.ori = Quaternion::rotation_x(0.0); next.marlin_torso.ori = Quaternion::rotation_x(0.0);
next.marlin_torso.scale = Vec3::one() * 1.01; next.marlin_torso.scale = Vec3::one() * 1.01;
@ -54,8 +52,7 @@ impl Animation for IdleAnimation {
next.marlin_rear.scale = Vec3::one() * 0.98; next.marlin_rear.scale = Vec3::one() * 0.98;
next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.marlin_tail.ori = Quaternion::rotation_z(0.0) next.marlin_tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.marlin_tail.scale = Vec3::one() / 11.0; next.marlin_tail.scale = Vec3::one() / 11.0;
next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -25,15 +25,11 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.marlin_head.ori = next.marlin_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.marlin_head.scale = Vec3::one() / 10.88; next.marlin_head.scale = Vec3::one() / 10.88;
next.marlin_torso.offset = next.marlin_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.marlin_torso.ori = Quaternion::rotation_x(0.0); next.marlin_torso.ori = Quaternion::rotation_x(0.0);
next.marlin_torso.scale = Vec3::one() * 1.01; next.marlin_torso.scale = Vec3::one() * 1.01;
@ -42,8 +38,7 @@ impl Animation for JumpAnimation {
next.marlin_rear.scale = Vec3::one() * 0.98; next.marlin_rear.scale = Vec3::one() * 0.98;
next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.marlin_tail.ori = Quaternion::rotation_z(0.0) next.marlin_tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.marlin_tail.scale = Vec3::one() / 11.0; next.marlin_tail.scale = Vec3::one() / 11.0;
next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -18,7 +18,6 @@ pub struct FishMediumSkeleton {
marlin_tail: Bone, marlin_tail: Bone,
marlin_fin_l: Bone, marlin_fin_l: Bone,
marlin_fin_r: Bone, marlin_fin_r: Bone,
} }
impl FishMediumSkeleton { impl FishMediumSkeleton {
@ -30,7 +29,6 @@ impl FishMediumSkeleton {
marlin_tail: Bone::default(), marlin_tail: Bone::default(),
marlin_fin_l: Bone::default(), marlin_fin_l: Bone::default(),
marlin_fin_r: Bone::default(), marlin_fin_r: Bone::default(),
} }
} }
} }
@ -40,12 +38,9 @@ impl Skeleton for FishMediumSkeleton {
let torso_mat = self.marlin_torso.compute_base_matrix(); let torso_mat = self.marlin_torso.compute_base_matrix();
let rear_mat = self.marlin_rear.compute_base_matrix(); let rear_mat = self.marlin_rear.compute_base_matrix();
[ [
FigureBoneData::new(self.marlin_head.compute_base_matrix() * torso_mat), FigureBoneData::new(self.marlin_head.compute_base_matrix() * torso_mat),
FigureBoneData::new( FigureBoneData::new(torso_mat),
torso_mat,
),
FigureBoneData::new(rear_mat * torso_mat), FigureBoneData::new(rear_mat * torso_mat),
FigureBoneData::new(self.marlin_tail.compute_base_matrix() * rear_mat), FigureBoneData::new(self.marlin_tail.compute_base_matrix() * rear_mat),
FigureBoneData::new(self.marlin_fin_l.compute_base_matrix() * rear_mat), FigureBoneData::new(self.marlin_fin_l.compute_base_matrix() * rear_mat),
@ -64,14 +59,11 @@ impl Skeleton for FishMediumSkeleton {
} }
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.marlin_head self.marlin_head.interpolate(&target.marlin_head, dt);
.interpolate(&target.marlin_head, dt);
self.marlin_torso.interpolate(&target.marlin_torso, dt); self.marlin_torso.interpolate(&target.marlin_torso, dt);
self.marlin_rear self.marlin_rear.interpolate(&target.marlin_rear, dt);
.interpolate(&target.marlin_rear, dt);
self.marlin_tail.interpolate(&target.marlin_tail, dt); self.marlin_tail.interpolate(&target.marlin_tail, dt);
self.marlin_fin_l self.marlin_fin_l.interpolate(&target.marlin_fin_l, dt);
.interpolate(&target.marlin_fin_l, dt);
self.marlin_fin_r.interpolate(&target.marlin_fin_r, dt); self.marlin_fin_r.interpolate(&target.marlin_fin_r, dt);
} }
} }

View File

@ -2,7 +2,7 @@ use super::{
super::{Animation, SkeletonAttr}, super::{Animation, SkeletonAttr},
FishMediumSkeleton, FishMediumSkeleton,
}; };
use std::{f32::consts::PI}; use std::f32::consts::PI;
use vek::*; use vek::*;
pub struct RunAnimation; pub struct RunAnimation;
@ -25,15 +25,11 @@ impl Animation for RunAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.marlin_head.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.marlin_head.ori = next.marlin_head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.marlin_head.scale = Vec3::one() / 10.88; next.marlin_head.scale = Vec3::one() / 10.88;
next.marlin_torso.offset = next.marlin_torso.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.marlin_torso.ori = Quaternion::rotation_x(0.0); next.marlin_torso.ori = Quaternion::rotation_x(0.0);
next.marlin_torso.scale = Vec3::one() * 1.01; next.marlin_torso.scale = Vec3::one() * 1.01;
@ -42,8 +38,7 @@ impl Animation for RunAnimation {
next.marlin_rear.scale = Vec3::one() * 0.98; next.marlin_rear.scale = Vec3::one() * 0.98;
next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0; next.marlin_tail.offset = Vec3::new(0.0, -13.0, 8.0) / 11.0;
next.marlin_tail.ori = Quaternion::rotation_z(0.0) next.marlin_tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
* Quaternion::rotation_x(0.0);
next.marlin_tail.scale = Vec3::one() / 11.0; next.marlin_tail.scale = Vec3::one() / 11.0;
next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0; next.marlin_fin_l.offset = Vec3::new(0.0, -11.7, 11.0) / 11.0;

View File

@ -38,14 +38,11 @@ impl Animation for IdleAnimation {
* 0.25, * 0.25,
); );
next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.cardinalfish_torso.ori = next.cardinalfish_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.cardinalfish_torso.scale = Vec3::one() / 10.88; next.cardinalfish_torso.scale = Vec3::one() / 10.88;
next.cardinalfish_tail.offset = next.cardinalfish_tail.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0); next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0);
next.cardinalfish_tail.scale = Vec3::one() * 1.01; next.cardinalfish_tail.scale = Vec3::one() * 1.01;

View File

@ -25,15 +25,11 @@ impl Animation for JumpAnimation {
let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow = (anim_time as f32 * 3.5 + PI).sin();
let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos();
next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.cardinalfish_torso.ori = next.cardinalfish_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.cardinalfish_torso.scale = Vec3::one() / 10.88; next.cardinalfish_torso.scale = Vec3::one() / 10.88;
next.cardinalfish_tail.offset = next.cardinalfish_tail.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0); next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0);
next.cardinalfish_tail.scale = Vec3::one() * 1.01; next.cardinalfish_tail.scale = Vec3::one() * 1.01;

View File

@ -14,7 +14,6 @@ use crate::render::FigureBoneData;
pub struct FishSmallSkeleton { pub struct FishSmallSkeleton {
cardinalfish_torso: Bone, cardinalfish_torso: Bone,
cardinalfish_tail: Bone, cardinalfish_tail: Bone,
} }
impl FishSmallSkeleton { impl FishSmallSkeleton {
@ -30,7 +29,6 @@ impl Skeleton for FishSmallSkeleton {
fn compute_matrices(&self) -> [FigureBoneData; 16] { fn compute_matrices(&self) -> [FigureBoneData; 16] {
let torso_mat = self.cardinalfish_torso.compute_base_matrix(); let torso_mat = self.cardinalfish_torso.compute_base_matrix();
[ [
FigureBoneData::new(torso_mat), FigureBoneData::new(torso_mat),
FigureBoneData::new(self.cardinalfish_tail.compute_base_matrix() * torso_mat), FigureBoneData::new(self.cardinalfish_tail.compute_base_matrix() * torso_mat),
@ -54,6 +52,7 @@ impl Skeleton for FishSmallSkeleton {
fn interpolate(&mut self, target: &Self, dt: f32) { fn interpolate(&mut self, target: &Self, dt: f32) {
self.cardinalfish_torso self.cardinalfish_torso
.interpolate(&target.cardinalfish_torso, dt); .interpolate(&target.cardinalfish_torso, dt);
self.cardinalfish_tail.interpolate(&target.cardinalfish_tail, dt); self.cardinalfish_tail
.interpolate(&target.cardinalfish_tail, dt);
} }
} }

View File

@ -38,14 +38,11 @@ impl Animation for RunAnimation {
* 0.25, * 0.25,
); );
next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0; next.cardinalfish_torso.offset = Vec3::new(0.0, 7.5, 15.0) / 11.0;
next.cardinalfish_torso.ori = next.cardinalfish_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.cardinalfish_torso.scale = Vec3::one() / 10.88; next.cardinalfish_torso.scale = Vec3::one() / 10.88;
next.cardinalfish_tail.offset = next.cardinalfish_tail.offset = Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
Vec3::new(0.0, 4.5 - wave_ultra_slow_cos * 0.12, 2.0);
next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0); next.cardinalfish_tail.ori = Quaternion::rotation_x(0.0);
next.cardinalfish_tail.scale = Vec3::one() * 1.01; next.cardinalfish_tail.scale = Vec3::one() * 1.01;

View File

@ -1,14 +1,14 @@
pub mod biped_large;
pub mod bird_medium;
pub mod bird_small;
pub mod character; pub mod character;
pub mod dragon;
pub mod fish_medium;
pub mod fish_small;
pub mod fixture; pub mod fixture;
pub mod object; pub mod object;
pub mod quadruped; pub mod quadruped_medium;
pub mod quadrupedmedium; pub mod quadruped_small;
pub mod birdmedium;
pub mod fishmedium;
pub mod dragon;
pub mod bird_small;
pub mod fish_small;
pub mod biped_large;
use crate::render::FigureBoneData; use crate::render::FigureBoneData;
use common::comp::{self, item::Tool}; use common::comp::{self, item::Tool};

View File

@ -1,6 +1,6 @@
use super::{ use super::{
super::{Animation, SkeletonAttr}, super::{Animation, SkeletonAttr},
QuadrupedSkeleton, QuadrupedSmallSkeleton,
}; };
use std::{f32::consts::PI, ops::Mul}; use std::{f32::consts::PI, ops::Mul};
use vek::*; use vek::*;
@ -8,7 +8,7 @@ use vek::*;
pub struct IdleAnimation; pub struct IdleAnimation;
impl Animation for IdleAnimation { impl Animation for IdleAnimation {
type Skeleton = QuadrupedSkeleton; type Skeleton = QuadrupedSmallSkeleton;
type Dependency = (f64); type Dependency = (f64);
fn update_skeleton( fn update_skeleton(

View File

@ -1,6 +1,6 @@
use super::{ use super::{
super::{Animation, SkeletonAttr}, super::{Animation, SkeletonAttr},
QuadrupedSkeleton, QuadrupedSmallSkeleton,
}; };
use std::f32::consts::PI; use std::f32::consts::PI;
use vek::*; use vek::*;
@ -8,7 +8,7 @@ use vek::*;
pub struct JumpAnimation; pub struct JumpAnimation;
impl Animation for JumpAnimation { impl Animation for JumpAnimation {
type Skeleton = QuadrupedSkeleton; type Skeleton = QuadrupedSmallSkeleton;
type Dependency = (f32, f64); type Dependency = (f32, f64);
fn update_skeleton( fn update_skeleton(

View File

@ -11,7 +11,7 @@ use super::{Bone, Skeleton};
use crate::render::FigureBoneData; use crate::render::FigureBoneData;
#[derive(Clone)] #[derive(Clone)]
pub struct QuadrupedSkeleton { pub struct QuadrupedSmallSkeleton {
pig_head: Bone, pig_head: Bone,
pig_chest: Bone, pig_chest: Bone,
pig_leg_lf: Bone, pig_leg_lf: Bone,
@ -20,7 +20,7 @@ pub struct QuadrupedSkeleton {
pig_leg_rb: Bone, pig_leg_rb: Bone,
} }
impl QuadrupedSkeleton { impl QuadrupedSmallSkeleton {
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
pig_head: Bone::default(), pig_head: Bone::default(),
@ -33,7 +33,7 @@ impl QuadrupedSkeleton {
} }
} }
impl Skeleton for QuadrupedSkeleton { impl Skeleton for QuadrupedSmallSkeleton {
fn compute_matrices(&self) -> [FigureBoneData; 16] { fn compute_matrices(&self) -> [FigureBoneData; 16] {
[ [
FigureBoneData::new(self.pig_head.compute_base_matrix()), FigureBoneData::new(self.pig_head.compute_base_matrix()),

View File

@ -1,13 +1,13 @@
use super::{ use super::{
super::{Animation, SkeletonAttr}, super::{Animation, SkeletonAttr},
QuadrupedSkeleton, QuadrupedSmallSkeleton,
}; };
use vek::*; use vek::*;
pub struct RunAnimation; pub struct RunAnimation;
impl Animation for RunAnimation { impl Animation for RunAnimation {
type Skeleton = QuadrupedSkeleton; type Skeleton = QuadrupedSmallSkeleton;
type Dependency = (f32, f64); type Dependency = (f32, f64);
fn update_skeleton( fn update_skeleton(

View File

@ -190,13 +190,13 @@ impl FigureModelCache {
None, None,
None, None,
], ],
Body::Quadruped(body) => [ Body::QuadrupedSmall(body) => [
Some(mesh_pig_head(body.head)), Some(mesh_quadruped_small_head(body.head)),
Some(mesh_pig_chest(body.chest)), Some(mesh_quadruped_small_chest(body.chest)),
Some(mesh_pig_leg_lf(body.leg_l)), Some(mesh_quadruped_small_leg_lf(body.leg_l)),
Some(mesh_pig_leg_rf(body.leg_r)), Some(mesh_quadruped_small_leg_rf(body.leg_r)),
Some(mesh_pig_leg_lb(body.leg_l)), Some(mesh_quadruped_small_leg_lb(body.leg_l)),
Some(mesh_pig_leg_rb(body.leg_r)), Some(mesh_quadruped_small_leg_rb(body.leg_r)),
None, None,
None, None,
None, None,
@ -209,17 +209,17 @@ impl FigureModelCache {
None, None,
], ],
Body::QuadrupedMedium(body) => [ Body::QuadrupedMedium(body) => [
Some(mesh_wolf_head_upper(body.head_upper)), Some(mesh_quadruped_medium_head_upper(body.head_upper)),
Some(mesh_wolf_jaw(body.jaw)), Some(mesh_quadruped_medium_jaw(body.jaw)),
Some(mesh_wolf_head_lower(body.head_lower)), Some(mesh_quadruped_medium_head_lower(body.head_lower)),
Some(mesh_wolf_tail(body.tail)), Some(mesh_quadruped_medium_tail(body.tail)),
Some(mesh_wolf_torso_back(body.torso_back)), Some(mesh_quadruped_medium_torso_back(body.torso_back)),
Some(mesh_wolf_torso_mid(body.torso_mid)), Some(mesh_quadruped_medium_torso_mid(body.torso_mid)),
Some(mesh_wolf_ears(body.ears)), Some(mesh_quadruped_medium_ears(body.ears)),
Some(mesh_wolf_foot_lf(body.foot_lf)), Some(mesh_quadruped_medium_foot_lf(body.foot_lf)),
Some(mesh_wolf_foot_rf(body.foot_rf)), Some(mesh_quadruped_medium_foot_rf(body.foot_rf)),
Some(mesh_wolf_foot_lb(body.foot_lb)), Some(mesh_quadruped_medium_foot_lb(body.foot_lb)),
Some(mesh_wolf_foot_rb(body.foot_rb)), Some(mesh_quadruped_medium_foot_rb(body.foot_rb)),
None, None,
None, None,
None, None,
@ -227,13 +227,13 @@ impl FigureModelCache {
None, None,
], ],
Body::BirdMedium(body) => [ Body::BirdMedium(body) => [
Some(mesh_duck_m_head(body.head)), Some(mesh_bird_medium_head(body.head)),
Some(mesh_duck_m_torso(body.torso)), Some(mesh_bird_medium_torso(body.torso)),
Some(mesh_duck_m_tail(body.tail)), Some(mesh_bird_medium_tail(body.tail)),
Some(mesh_duck_m_wing_l(body.wing_l)), Some(mesh_bird_medium_wing_l(body.wing_l)),
Some(mesh_duck_m_wing_r(body.wing_r)), Some(mesh_bird_medium_wing_r(body.wing_r)),
Some(mesh_duck_m_leg_l(body.leg_l)), Some(mesh_bird_medium_leg_l(body.leg_l)),
Some(mesh_duck_m_leg_r(body.leg_r)), Some(mesh_bird_medium_leg_r(body.leg_r)),
None, None,
None, None,
None, None,
@ -245,12 +245,12 @@ impl FigureModelCache {
None, None,
], ],
Body::FishMedium(body) => [ Body::FishMedium(body) => [
Some(mesh_marlin_head(body.head)), Some(mesh_fish_medium_head(body.head)),
Some(mesh_marlin_torso(body.torso)), Some(mesh_fish_medium_torso(body.torso)),
Some(mesh_marlin_rear(body.rear)), Some(mesh_fish_medium_rear(body.rear)),
Some(mesh_marlin_tail(body.tail)), Some(mesh_fish_medium_tail(body.tail)),
Some(mesh_marlin_fin_l(body.fin_l)), Some(mesh_fish_medium_fin_l(body.fin_l)),
Some(mesh_marlin_fin_r(body.fin_r)), Some(mesh_fish_medium_fin_r(body.fin_r)),
None, None,
None, None,
None, None,
@ -281,10 +281,10 @@ impl FigureModelCache {
None, None,
], ],
Body::BirdSmall(body) => [ Body::BirdSmall(body) => [
Some(mesh_crow_head(body.head)), Some(mesh_bird_small_head(body.head)),
Some(mesh_crow_torso(body.torso)), Some(mesh_bird_small_torso(body.torso)),
Some(mesh_crow_wing_l(body.wing_l)), Some(mesh_bird_small_wing_l(body.wing_l)),
Some(mesh_crow_wing_r(body.wing_r)), Some(mesh_bird_small_wing_r(body.wing_r)),
None, None,
None, None,
None, None,
@ -299,8 +299,8 @@ impl FigureModelCache {
None, None,
], ],
Body::FishSmall(body) => [ Body::FishSmall(body) => [
Some(mesh_cardinalfish_torso(body.torso)), Some(mesh_fish_small_torso(body.torso)),
Some(mesh_cardinalfish_tail(body.tail)), Some(mesh_fish_small_tail(body.tail)),
None, None,
None, None,
None, None,
@ -317,17 +317,17 @@ impl FigureModelCache {
None, None,
], ],
Body::BipedLarge(body) => [ Body::BipedLarge(body) => [
Some(mesh_knight_head(body.head)), Some(mesh_biped_large_head(body.head)),
Some(mesh_knight_upper_torso(body.upper_torso)), Some(mesh_biped_large_upper_torso(body.upper_torso)),
Some(mesh_knight_lower_torso(body.lower_torso)), Some(mesh_biped_large_lower_torso(body.lower_torso)),
Some(mesh_knight_shoulder_l(body.shoulder_l)), Some(mesh_biped_large_shoulder_l(body.shoulder_l)),
Some(mesh_knight_shoulder_r(body.shoulder_r)), Some(mesh_biped_large_shoulder_r(body.shoulder_r)),
Some(mesh_knight_hand_l(body.hand_l)), Some(mesh_biped_large_hand_l(body.hand_l)),
Some(mesh_knight_hand_r(body.hand_r)), Some(mesh_biped_large_hand_r(body.hand_r)),
Some(mesh_knight_leg_l(body.leg_l)), Some(mesh_biped_large_leg_l(body.leg_l)),
Some(mesh_knight_leg_r(body.leg_r)), Some(mesh_biped_large_leg_r(body.leg_r)),
Some(mesh_knight_foot_l(body.foot_l)), Some(mesh_biped_large_foot_l(body.foot_l)),
Some(mesh_knight_foot_r(body.foot_r)), Some(mesh_biped_large_foot_r(body.foot_r)),
None, None,
None, None,
None, None,

View File

@ -6,12 +6,14 @@ use common::comp::humanoid::Body;
use common::{ use common::{
assets::{self, watch::ReloadIndicator, Asset}, assets::{self, watch::ReloadIndicator, Asset},
comp::{ comp::{
biped_large, bird_medium, bird_small, dragon, fish_medium, fish_small,
humanoid::{ humanoid::{
Belt, BodyType, Chest, EyeColor, Eyebrows, Foot, Hand, Pants, Race, Shoulder, Skin, Belt, BodyType, Chest, EyeColor, Eyebrows, Foot, Hand, Pants, Race, Shoulder, Skin,
}, },
item::Tool, item::Tool,
object, quadruped, quadruped_medium, bird_medium, fish_medium, dragon, bird_small, fish_small, biped_large, Item, Itemkind object, quadruped_small, quadruped_medium, bird_medium, fish_medium, dragon, bird_small, fish_small, biped_large, Item, Itemkind
}, },
figure::{DynaUnionizer, MatSegment, Material, Segment}, figure::{DynaUnionizer, MatSegment, Material, Segment},
@ -547,271 +549,279 @@ pub fn mesh_draw() -> Mesh<FigurePipeline> {
//} //}
///////// /////////
pub fn mesh_pig_head(head: quadruped::Head) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_head(head: quadruped_small::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
quadruped::Head::Default => "npc.pig_purple.pig_head", quadruped_small::Head::Default => "npc.pig_purple.head",
}, },
Vec3::new(-6.0, 4.5, 3.0), Vec3::new(-6.0, 4.5, 3.0),
) )
} }
pub fn mesh_pig_chest(chest: quadruped::Chest) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_chest(chest: quadruped_small::Chest) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match chest { match chest {
quadruped::Chest::Default => "npc.pig_purple.pig_chest", quadruped_small::Chest::Default => "npc.pig_purple.chest",
}, },
Vec3::new(-5.0, 4.5, 0.0), Vec3::new(-5.0, 4.5, 0.0),
) )
} }
pub fn mesh_pig_leg_lf(leg_l: quadruped::LegL) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_leg_lf(leg_l: quadruped_small::LegL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_l { match leg_l {
quadruped::LegL::Default => "npc.pig_purple.pig_leg_l", quadruped_small::LegL::Default => "npc.pig_purple.leg_l",
}, },
Vec3::new(0.0, -1.0, -1.5), Vec3::new(0.0, -1.0, -1.5),
) )
} }
pub fn mesh_pig_leg_rf(leg_r: quadruped::LegR) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_leg_rf(leg_r: quadruped_small::LegR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_r { match leg_r {
quadruped::LegR::Default => "npc.pig_purple.pig_leg_r", quadruped_small::LegR::Default => "npc.pig_purple.leg_r",
}, },
Vec3::new(0.0, -1.0, -1.5), Vec3::new(0.0, -1.0, -1.5),
) )
} }
pub fn mesh_pig_leg_lb(leg_l: quadruped::LegL) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_leg_lb(leg_l: quadruped_small::LegL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_l { match leg_l {
quadruped::LegL::Default => "npc.pig_purple.pig_leg_l", quadruped_small::LegL::Default => "npc.pig_purple.leg_l",
}, },
Vec3::new(0.0, -1.0, -1.5), Vec3::new(0.0, -1.0, -1.5),
) )
} }
pub fn mesh_pig_leg_rb(leg_r: quadruped::LegR) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_small_leg_rb(leg_r: quadruped_small::LegR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_r { match leg_r {
quadruped::LegR::Default => "npc.pig_purple.pig_leg_r", quadruped_small::LegR::Default => "npc.pig_purple.leg_r",
}, },
Vec3::new(0.0, -1.0, -1.5), Vec3::new(0.0, -1.0, -1.5),
) )
} }
////// //////
pub fn mesh_wolf_head_upper(upper_head: quadruped_medium::HeadUpper) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_head_upper(
upper_head: quadruped_medium::HeadUpper,
) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match upper_head { match upper_head {
quadruped_medium::HeadUpper::Default => "npc.wolf.wolf_head_upper", quadruped_medium::HeadUpper::Default => "npc.wolf.head_upper",
}, },
Vec3::new(-7.0, -6.0, -5.5), Vec3::new(-7.0, -6.0, -5.5),
) )
} }
pub fn mesh_wolf_jaw(jaw: quadruped_medium::Jaw) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_jaw(jaw: quadruped_medium::Jaw) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match jaw { match jaw {
quadruped_medium::Jaw::Default => "npc.wolf.wolf_jaw", quadruped_medium::Jaw::Default => "npc.wolf.jaw",
}, },
Vec3::new(-3.0, -3.0, -2.5), Vec3::new(-3.0, -3.0, -2.5),
) )
} }
pub fn mesh_wolf_head_lower(head_lower: quadruped_medium::HeadLower) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_head_lower(
head_lower: quadruped_medium::HeadLower,
) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head_lower { match head_lower {
quadruped_medium::HeadLower::Default => "npc.wolf.wolf_head_lower", quadruped_medium::HeadLower::Default => "npc.wolf.head_lower",
}, },
Vec3::new(-7.0, -6.0, -5.5), Vec3::new(-7.0, -6.0, -5.5),
) )
} }
pub fn mesh_wolf_tail(tail: quadruped_medium::Tail) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_tail(tail: quadruped_medium::Tail) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail { match tail {
quadruped_medium::Tail::Default => "npc.wolf.wolf_tail", quadruped_medium::Tail::Default => "npc.wolf.tail",
}, },
Vec3::new(-2.0, -12.0, -5.0), Vec3::new(-2.0, -12.0, -5.0),
) )
} }
pub fn mesh_wolf_torso_back(torso_back: quadruped_medium::TorsoBack) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_torso_back(
torso_back: quadruped_medium::TorsoBack,
) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso_back { match torso_back {
quadruped_medium::TorsoBack::Default => "npc.wolf.wolf_torso_back", quadruped_medium::TorsoBack::Default => "npc.wolf.torso_back",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_wolf_torso_mid(torso_mid: quadruped_medium::TorsoMid) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_torso_mid(
torso_mid: quadruped_medium::TorsoMid,
) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso_mid { match torso_mid {
quadruped_medium::TorsoMid::Default => "npc.wolf.wolf_torso_mid", quadruped_medium::TorsoMid::Default => "npc.wolf.torso_mid",
}, },
Vec3::new(-8.0, -5.5, -6.0), Vec3::new(-8.0, -5.5, -6.0),
) )
} }
pub fn mesh_wolf_ears(ears: quadruped_medium::Ears) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_ears(ears: quadruped_medium::Ears) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match ears { match ears {
quadruped_medium::Ears::Default => "npc.wolf.wolf_ears", quadruped_medium::Ears::Default => "npc.wolf.ears",
}, },
Vec3::new(-4.0, -1.0, -1.0), Vec3::new(-4.0, -1.0, -1.0),
) )
} }
pub fn mesh_wolf_foot_lf(foot_lf: quadruped_medium::FootLF) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_foot_lf(foot_lf: quadruped_medium::FootLF) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_lf { match foot_lf {
quadruped_medium::FootLF::Default => "npc.wolf.wolf_foot_lf", quadruped_medium::FootLF::Default => "npc.wolf.foot_lf",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_wolf_foot_rf(foot_rf: quadruped_medium::FootRF) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_foot_rf(foot_rf: quadruped_medium::FootRF) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_rf { match foot_rf {
quadruped_medium::FootRF::Default => "npc.wolf.wolf_foot_rf", quadruped_medium::FootRF::Default => "npc.wolf.foot_rf",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_wolf_foot_lb(foot_lb: quadruped_medium::FootLB) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_foot_lb(foot_lb: quadruped_medium::FootLB) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_lb { match foot_lb {
quadruped_medium::FootLB::Default => "npc.wolf.wolf_foot_lb", quadruped_medium::FootLB::Default => "npc.wolf.foot_lb",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_wolf_foot_rb(foot_rb: quadruped_medium::FootRB) -> Mesh<FigurePipeline> { pub fn mesh_quadruped_medium_foot_rb(foot_rb: quadruped_medium::FootRB) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_rb { match foot_rb {
quadruped_medium::FootRB::Default => "npc.wolf.wolf_foot_rb", quadruped_medium::FootRB::Default => "npc.wolf.foot_rb",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
//// ////
pub fn mesh_duck_m_head(head: bird_medium::Head) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_head(head: bird_medium::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
bird_medium::Head::Default => "npc.duck_m.duck_m_head", bird_medium::Head::Default => "npc.duck_m.head",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_duck_m_torso(torso: bird_medium::Torso) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_torso(torso: bird_medium::Torso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso { match torso {
bird_medium::Torso::Default => "npc.duck_m.duck_m_body", bird_medium::Torso::Default => "npc.duck_m.body",
}, },
Vec3::new(-8.0, -5.5, -6.0), Vec3::new(-8.0, -5.5, -6.0),
) )
} }
pub fn mesh_duck_m_tail(tail: bird_medium::Tail) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_tail(tail: bird_medium::Tail) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail { match tail {
bird_medium::Tail::Default => "npc.duck_m.duck_m_tail", bird_medium::Tail::Default => "npc.duck_m.tail",
}, },
Vec3::new(-4.0, -1.0, -1.0), Vec3::new(-4.0, -1.0, -1.0),
) )
} }
pub fn mesh_duck_m_wing_l(wing_l: bird_medium::WingL) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_wing_l(wing_l: bird_medium::WingL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_l { match wing_l {
bird_medium::WingL::Default => "npc.duck_m.duck_m_wing", bird_medium::WingL::Default => "npc.duck_m.wing",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_duck_m_wing_r(wing_r: bird_medium::WingR) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_wing_r(wing_r: bird_medium::WingR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_r { match wing_r {
bird_medium::WingR::Default => "npc.duck_m.duck_m_wing", bird_medium::WingR::Default => "npc.duck_m.wing",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_duck_m_leg_l(leg_l: bird_medium::LegL) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_leg_l(leg_l: bird_medium::LegL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_l { match leg_l {
bird_medium::LegL::Default => "npc.duck_m.duck_m_leg_l", bird_medium::LegL::Default => "npc.duck_m.leg_l",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
pub fn mesh_duck_m_leg_r(leg_r: bird_medium::LegR) -> Mesh<FigurePipeline> { pub fn mesh_bird_medium_leg_r(leg_r: bird_medium::LegR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_r { match leg_r {
bird_medium::LegR::Default => "npc.duck_m.duck_m_leg_r", bird_medium::LegR::Default => "npc.duck_m.leg_r",
}, },
Vec3::new(-2.5, -4.0, -2.5), Vec3::new(-2.5, -4.0, -2.5),
) )
} }
//// ////
pub fn mesh_marlin_head(head: fish_medium::Head) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_head(head: fish_medium::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
fish_medium::Head::Default => "npc.marlin.marlin_head", fish_medium::Head::Default => "npc.marlin.head",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_marlin_torso(torso: fish_medium::Torso) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_torso(torso: fish_medium::Torso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso { match torso {
fish_medium::Torso::Default => "npc.marlin.marlin_torso", fish_medium::Torso::Default => "npc.marlin.torso",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_marlin_rear(rear: fish_medium::Rear) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_rear(rear: fish_medium::Rear) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match rear { match rear {
fish_medium::Rear::Default => "npc.marlin.marlin_rear", fish_medium::Rear::Default => "npc.marlin.rear",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_marlin_tail(tail: fish_medium::Tail) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_tail(tail: fish_medium::Tail) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail { match tail {
fish_medium::Tail::Default => "npc.marlin.marlin_tail", fish_medium::Tail::Default => "npc.marlin.tail",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_marlin_fin_l(fin_l: fish_medium::FinL) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_fin_l(fin_l: fish_medium::FinL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match fin_l { match fin_l {
fish_medium::FinL::Default => "npc.marlin.marlin_fin_l", fish_medium::FinL::Default => "npc.marlin.fin_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_marlin_fin_r(fin_r: fish_medium::FinR) -> Mesh<FigurePipeline> { pub fn mesh_fish_medium_fin_r(fin_r: fish_medium::FinR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match fin_r { match fin_r {
fish_medium::FinR::Default => "npc.marlin.marlin_fin_r", fish_medium::FinR::Default => "npc.marlin.fin_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -820,7 +830,7 @@ pub fn mesh_marlin_fin_r(fin_r: fish_medium::FinR) -> Mesh<FigurePipeline> {
pub fn mesh_dragon_head(head: dragon::Head) -> Mesh<FigurePipeline> { pub fn mesh_dragon_head(head: dragon::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
dragon::Head::Default => "npc.dragon.dragon_head", dragon::Head::Default => "npc.dragon.head",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -829,7 +839,7 @@ pub fn mesh_dragon_head(head: dragon::Head) -> Mesh<FigurePipeline> {
pub fn mesh_dragon_chest_front(chest_front: dragon::ChestFront) -> Mesh<FigurePipeline> { pub fn mesh_dragon_chest_front(chest_front: dragon::ChestFront) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match chest_front { match chest_front {
dragon::ChestFront::Default => "npc.dragon.dragon_chest_front", dragon::ChestFront::Default => "npc.dragon.chest_front",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -838,7 +848,7 @@ pub fn mesh_dragon_chest_front(chest_front: dragon::ChestFront) -> Mesh<FigurePi
pub fn mesh_dragon_chest_rear(chest_rear: dragon::ChestRear) -> Mesh<FigurePipeline> { pub fn mesh_dragon_chest_rear(chest_rear: dragon::ChestRear) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match chest_rear { match chest_rear {
dragon::ChestRear::Default => "npc.dragon.dragon_chest_rear", dragon::ChestRear::Default => "npc.dragon.chest_rear",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -847,7 +857,7 @@ pub fn mesh_dragon_chest_rear(chest_rear: dragon::ChestRear) -> Mesh<FigurePipel
pub fn mesh_dragon_tail_front(tail_front: dragon::TailFront) -> Mesh<FigurePipeline> { pub fn mesh_dragon_tail_front(tail_front: dragon::TailFront) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail_front { match tail_front {
dragon::TailFront::Default => "npc.dragon.dragon_tail_front", dragon::TailFront::Default => "npc.dragon.tail_front",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -856,7 +866,7 @@ pub fn mesh_dragon_tail_front(tail_front: dragon::TailFront) -> Mesh<FigurePipel
pub fn mesh_dragon_tail_rear(tail_rear: dragon::TailRear) -> Mesh<FigurePipeline> { pub fn mesh_dragon_tail_rear(tail_rear: dragon::TailRear) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail_rear { match tail_rear {
dragon::TailRear::Default => "npc.dragon.dragon_tail_rear", dragon::TailRear::Default => "npc.dragon.tail_rear",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -865,7 +875,7 @@ pub fn mesh_dragon_tail_rear(tail_rear: dragon::TailRear) -> Mesh<FigurePipeline
pub fn mesh_dragon_wing_in_l(wing_in_l: dragon::WingInL) -> Mesh<FigurePipeline> { pub fn mesh_dragon_wing_in_l(wing_in_l: dragon::WingInL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_in_l { match wing_in_l {
dragon::WingInL::Default => "npc.dragon.dragon_wing_in_l", dragon::WingInL::Default => "npc.dragon.wing_in_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -874,7 +884,7 @@ pub fn mesh_dragon_wing_in_l(wing_in_l: dragon::WingInL) -> Mesh<FigurePipeline>
pub fn mesh_dragon_wing_in_r(wing_in_r: dragon::WingInR) -> Mesh<FigurePipeline> { pub fn mesh_dragon_wing_in_r(wing_in_r: dragon::WingInR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_in_r { match wing_in_r {
dragon::WingInR::Default => "npc.dragon.dragon_wing_in_r", dragon::WingInR::Default => "npc.dragon.wing_in_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -883,7 +893,7 @@ pub fn mesh_dragon_wing_in_r(wing_in_r: dragon::WingInR) -> Mesh<FigurePipeline>
pub fn mesh_dragon_wing_out_l(wing_out_l: dragon::WingOutL) -> Mesh<FigurePipeline> { pub fn mesh_dragon_wing_out_l(wing_out_l: dragon::WingOutL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_out_l { match wing_out_l {
dragon::WingOutL::Default => "npc.dragon.dragon_wing_out_l", dragon::WingOutL::Default => "npc.dragon.wing_out_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -892,7 +902,7 @@ pub fn mesh_dragon_wing_out_l(wing_out_l: dragon::WingOutL) -> Mesh<FigurePipeli
pub fn mesh_dragon_wing_out_r(wing_out_r: dragon::WingOutR) -> Mesh<FigurePipeline> { pub fn mesh_dragon_wing_out_r(wing_out_r: dragon::WingOutR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_out_r { match wing_out_r {
dragon::WingOutR::Default => "npc.dragon.dragon_wing_out_r", dragon::WingOutR::Default => "npc.dragon.wing_out_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -901,7 +911,7 @@ pub fn mesh_dragon_wing_out_r(wing_out_r: dragon::WingOutR) -> Mesh<FigurePipeli
pub fn mesh_dragon_foot_fl(foot_fl: dragon::FootFL) -> Mesh<FigurePipeline> { pub fn mesh_dragon_foot_fl(foot_fl: dragon::FootFL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_fl { match foot_fl {
dragon::FootFL::Default => "npc.dragon.dragon_foot_fl", dragon::FootFL::Default => "npc.dragon.foot_fl",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -910,7 +920,7 @@ pub fn mesh_dragon_foot_fl(foot_fl: dragon::FootFL) -> Mesh<FigurePipeline> {
pub fn mesh_dragon_foot_fr(foot_fr: dragon::FootFR) -> Mesh<FigurePipeline> { pub fn mesh_dragon_foot_fr(foot_fr: dragon::FootFR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_fr { match foot_fr {
dragon::FootFR::Default => "npc.dragon.dragon_foot_fr", dragon::FootFR::Default => "npc.dragon.foot_fr",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -919,7 +929,7 @@ pub fn mesh_dragon_foot_fr(foot_fr: dragon::FootFR) -> Mesh<FigurePipeline> {
pub fn mesh_dragon_foot_bl(foot_bl: dragon::FootBL) -> Mesh<FigurePipeline> { pub fn mesh_dragon_foot_bl(foot_bl: dragon::FootBL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_bl { match foot_bl {
dragon::FootBL::Default => "npc.dragon.dragon_foot_bl", dragon::FootBL::Default => "npc.dragon.foot_bl",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
@ -928,167 +938,166 @@ pub fn mesh_dragon_foot_bl(foot_bl: dragon::FootBL) -> Mesh<FigurePipeline> {
pub fn mesh_dragon_foot_br(foot_br: dragon::FootBR) -> Mesh<FigurePipeline> { pub fn mesh_dragon_foot_br(foot_br: dragon::FootBR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_br { match foot_br {
dragon::FootBR::Default => "npc.dragon.dragon_foot_br", dragon::FootBR::Default => "npc.dragon.foot_br",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
//// ////
pub fn mesh_crow_head(head: bird_small::Head) -> Mesh<FigurePipeline> { pub fn mesh_bird_small_head(head: bird_small::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
bird_small::Head::Default => "npc.crow.crow_head", bird_small::Head::Default => "npc.crow.head",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_crow_torso(torso: bird_small::Torso) -> Mesh<FigurePipeline> { pub fn mesh_bird_small_torso(torso: bird_small::Torso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso { match torso {
bird_small::Torso::Default => "npc.crow.crow_torso", bird_small::Torso::Default => "npc.crow.torso",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_crow_wing_l(wing_l: bird_small::WingL) -> Mesh<FigurePipeline> { pub fn mesh_bird_small_wing_l(wing_l: bird_small::WingL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_l { match wing_l {
bird_small::WingL::Default => "npc.crow.crow_wing_l", bird_small::WingL::Default => "npc.crow.wing_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_crow_wing_r(wing_r: bird_small::WingR) -> Mesh<FigurePipeline> { pub fn mesh_bird_small_wing_r(wing_r: bird_small::WingR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match wing_r { match wing_r {
bird_small::WingR::Default => "npc.crow.crow_wing_r", bird_small::WingR::Default => "npc.crow.wing_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
//// ////
pub fn mesh_cardinalfish_torso(torso: fish_small::Torso) -> Mesh<FigurePipeline> { pub fn mesh_fish_small_torso(torso: fish_small::Torso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match torso { match torso {
fish_small::Torso::Default => "npc.cardinalfish.cardinalfish_torso", fish_small::Torso::Default => "npc.cardinalfish.torso",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_cardinalfish_tail(tail: fish_small::Tail) -> Mesh<FigurePipeline> { pub fn mesh_fish_small_tail(tail: fish_small::Tail) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match tail { match tail {
fish_small::Tail::Default => "npc.cardinalfish.cardinalfish_tail", fish_small::Tail::Default => "npc.cardinalfish.tail",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
//// ////
pub fn mesh_knight_head(head: biped_large::Head) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_head(head: biped_large::Head) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match head { match head {
biped_large::Head::Default => "npc.knight.knight_", biped_large::Head::Default => "npc.knight.head",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_upper_torso(upper_torso: biped_large::UpperTorso) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_upper_torso(upper_torso: biped_large::UpperTorso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match upper_torso { match upper_torso {
biped_large::UpperTorso::Default => "npc.knight.knight_upper_torso", biped_large::UpperTorso::Default => "npc.knight.upper_torso",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_lower_torso(lower_torso: biped_large::LowerTorso) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_lower_torso(lower_torso: biped_large::LowerTorso) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match lower_torso { match lower_torso {
biped_large::LowerTorso::Default => "npc.knight.knight_lower_torso", biped_large::LowerTorso::Default => "npc.knight.lower_torso",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_shoulder_l(shoulder_l: biped_large::ShoulderL) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_shoulder_l(shoulder_l: biped_large::ShoulderL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match shoulder_l { match shoulder_l {
biped_large::ShoulderL::Default => "npc.knight.knight_shoulder_l", biped_large::ShoulderL::Default => "npc.knight.shoulder_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_shoulder_r(shoulder_r: biped_large::ShoulderR) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_shoulder_r(shoulder_r: biped_large::ShoulderR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match shoulder_r { match shoulder_r {
biped_large::ShoulderR::Default => "npc.knight.knight_shoulder_r", biped_large::ShoulderR::Default => "npc.knight.shoulder_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_hand_l(hand_l: biped_large::HandL) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_hand_l(hand_l: biped_large::HandL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match hand_l { match hand_l {
biped_large::HandL::Default => "npc.knight.knight_hand_l", biped_large::HandL::Default => "npc.knight.hand_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_hand_r(hand_r: biped_large::HandR) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_hand_r(hand_r: biped_large::HandR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match hand_r { match hand_r {
biped_large::HandR::Default => "npc.knight.knight_hand_r", biped_large::HandR::Default => "npc.knight.hand_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_leg_l(leg_l: biped_large::LegL) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_leg_l(leg_l: biped_large::LegL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_l { match leg_l {
biped_large::LegL::Default => "npc.knight.knight_leg_l", biped_large::LegL::Default => "npc.knight.leg_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_leg_r(leg_r: biped_large::LegR) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_leg_r(leg_r: biped_large::LegR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match leg_r { match leg_r {
biped_large::LegR::Default => "npc.knight.knight_leg_r", biped_large::LegR::Default => "npc.knight.leg_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_foot_l(foot_l: biped_large::FootL) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_foot_l(foot_l: biped_large::FootL) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_l { match foot_l {
biped_large::FootL::Default => "npc.knight.knight_foot_l", biped_large::FootL::Default => "npc.knight.foot_l",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
pub fn mesh_knight_foot_r(foot_r: biped_large::FootR) -> Mesh<FigurePipeline> { pub fn mesh_biped_large_foot_r(foot_r: biped_large::FootR) -> Mesh<FigurePipeline> {
load_mesh( load_mesh(
match foot_r { match foot_r {
biped_large::FootR::Default => "npc.knight.knight_foot_r", biped_large::FootR::Default => "npc.knight.foot_r",
}, },
Vec3::new(-7.0, -6.0, -6.0), Vec3::new(-7.0, -6.0, -6.0),
) )
} }
//// ////
pub fn mesh_object(obj: object::Body) -> Mesh<FigurePipeline> { pub fn mesh_object(obj: object::Body) -> Mesh<FigurePipeline> {
use object::Body; use object::Body;

Some files were not shown because too many files have changed in this diff Show More