mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
asset
missing fix
This commit is contained in:
parent
69710cde5c
commit
688f917308
@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Show where screenshots are saved to in the chat
|
- Show where screenshots are saved to in the chat
|
||||||
- Added basic auto walk
|
- Added basic auto walk
|
||||||
- Added weapon/attack sound effects
|
- Added weapon/attack sound effects
|
||||||
|
- M2 attack for bow
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- slim the game size through lossless asset optimization
|
- slim the game size through lossless asset optimization
|
||||||
- Lanterns now stop glowing if you throw a lit one out of your inventory
|
- Lanterns now stop glowing if you throw a lit one out of your inventory
|
||||||
- Fixed a crash caused by certain audio devices on OSX
|
- Fixed a crash caused by certain audio devices on OSX
|
||||||
|
- Bow animations now show held arrows
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
BIN
assets/voxygen/element/icons/bow_m2.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/icons/bow_m2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -221,30 +221,56 @@ impl Tool {
|
|||||||
range: 3.0,
|
range: 3.0,
|
||||||
max_angle: 60.0,
|
max_angle: 60.0,
|
||||||
}],
|
}],
|
||||||
Bow(_) => vec![BasicRanged {
|
Bow(_) => vec![
|
||||||
energy_cost: 0,
|
BasicRanged {
|
||||||
holdable: true,
|
energy_cost: 0,
|
||||||
prepare_duration: Duration::from_millis(100),
|
holdable: true,
|
||||||
recover_duration: Duration::from_millis(500),
|
prepare_duration: Duration::from_millis(100),
|
||||||
projectile: Projectile {
|
recover_duration: Duration::from_millis(500),
|
||||||
hit_solid: vec![projectile::Effect::Stick],
|
projectile: Projectile {
|
||||||
hit_entity: vec![
|
hit_solid: vec![projectile::Effect::Stick],
|
||||||
projectile::Effect::Damage(HealthChange {
|
hit_entity: vec![
|
||||||
// TODO: This should not be fixed (?)
|
projectile::Effect::Damage(HealthChange {
|
||||||
amount: -5,
|
// TODO: This should not be fixed (?)
|
||||||
cause: HealthSource::Projectile { owner: None },
|
amount: -3,
|
||||||
}),
|
cause: HealthSource::Projectile { owner: None },
|
||||||
projectile::Effect::Knockback(10.0),
|
}),
|
||||||
projectile::Effect::RewardEnergy(100),
|
projectile::Effect::Knockback(10.0),
|
||||||
projectile::Effect::Vanish,
|
projectile::Effect::RewardEnergy(100),
|
||||||
],
|
projectile::Effect::Vanish,
|
||||||
time_left: Duration::from_secs(15),
|
],
|
||||||
owner: None,
|
time_left: Duration::from_secs(15),
|
||||||
|
owner: None,
|
||||||
|
},
|
||||||
|
projectile_body: Body::Object(object::Body::Arrow),
|
||||||
|
projectile_light: None,
|
||||||
|
projectile_gravity: Some(Gravity(0.2)),
|
||||||
},
|
},
|
||||||
projectile_body: Body::Object(object::Body::Arrow),
|
BasicRanged {
|
||||||
projectile_light: None,
|
energy_cost: 350,
|
||||||
projectile_gravity: Some(Gravity(0.1)),
|
holdable: true,
|
||||||
}],
|
prepare_duration: Duration::from_millis(250),
|
||||||
|
recover_duration: Duration::from_millis(700),
|
||||||
|
projectile: Projectile {
|
||||||
|
hit_solid: vec![projectile::Effect::Stick],
|
||||||
|
hit_entity: vec![
|
||||||
|
projectile::Effect::Damage(HealthChange {
|
||||||
|
// TODO: This should not be fixed (?)
|
||||||
|
amount: -9,
|
||||||
|
cause: HealthSource::Projectile { owner: None },
|
||||||
|
}),
|
||||||
|
projectile::Effect::Knockback(15.0),
|
||||||
|
projectile::Effect::RewardEnergy(50),
|
||||||
|
projectile::Effect::Vanish,
|
||||||
|
],
|
||||||
|
time_left: Duration::from_secs(15),
|
||||||
|
owner: None,
|
||||||
|
},
|
||||||
|
projectile_body: Body::Object(object::Body::Arrow),
|
||||||
|
projectile_light: None,
|
||||||
|
projectile_gravity: Some(Gravity(0.05)),
|
||||||
|
},
|
||||||
|
],
|
||||||
Dagger(_) => vec![BasicMelee {
|
Dagger(_) => vec![BasicMelee {
|
||||||
energy_cost: 0,
|
energy_cost: 0,
|
||||||
buildup_duration: Duration::from_millis(100),
|
buildup_duration: Duration::from_millis(100),
|
||||||
@ -264,7 +290,7 @@ impl Tool {
|
|||||||
},
|
},
|
||||||
BasicRanged {
|
BasicRanged {
|
||||||
energy_cost: 0,
|
energy_cost: 0,
|
||||||
holdable: false,
|
holdable: true,
|
||||||
prepare_duration: Duration::from_millis(250),
|
prepare_duration: Duration::from_millis(250),
|
||||||
recover_duration: Duration::from_millis(200),
|
recover_duration: Duration::from_millis(200),
|
||||||
projectile: Projectile {
|
projectile: Projectile {
|
||||||
@ -291,7 +317,7 @@ impl Tool {
|
|||||||
},
|
},
|
||||||
BasicRanged {
|
BasicRanged {
|
||||||
energy_cost: 400,
|
energy_cost: 400,
|
||||||
holdable: false,
|
holdable: true,
|
||||||
prepare_duration: Duration::from_millis(800),
|
prepare_duration: Duration::from_millis(800),
|
||||||
recover_duration: Duration::from_millis(50),
|
recover_duration: Duration::from_millis(50),
|
||||||
projectile: Projectile {
|
projectile: Projectile {
|
||||||
|
@ -64,8 +64,8 @@ impl Animation for ChargeAnimation {
|
|||||||
} * 1.3;
|
} * 1.3;
|
||||||
|
|
||||||
next.head.offset = Vec3::new(
|
next.head.offset = Vec3::new(
|
||||||
0.0 + stop * -2.0,
|
stop * -2.0,
|
||||||
-2.0 + stop * 2.5 + skeleton_attr.head.0,
|
-3.5 + stop * 2.5 + skeleton_attr.head.0,
|
||||||
skeleton_attr.head.1,
|
skeleton_attr.head.1,
|
||||||
);
|
);
|
||||||
next.head.ori =
|
next.head.ori =
|
||||||
@ -107,25 +107,31 @@ impl Animation for ChargeAnimation {
|
|||||||
next.control.scale = Vec3::one();
|
next.control.scale = Vec3::one();
|
||||||
},
|
},
|
||||||
Some(ToolKind::Bow(_)) => {
|
Some(ToolKind::Bow(_)) => {
|
||||||
next.l_hand.offset = Vec3::new(1.0, -4.0 + stop * -1.0, 0.0);
|
next.l_hand.offset = Vec3::new(1.0, -2.0 + stop * -1.0, 0.0);
|
||||||
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
next.l_hand.scale = Vec3::one() * 1.05;
|
next.l_hand.scale = Vec3::one() * 1.05;
|
||||||
next.r_hand.offset = Vec3::new(3.0, -1.0, -5.0);
|
next.r_hand.offset = Vec3::new(4.9, 1.0, -5.0);
|
||||||
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
next.r_hand.scale = Vec3::one() * 1.05;
|
next.r_hand.scale = Vec3::one() * 1.05;
|
||||||
next.main.offset = Vec3::new(3.0, 2.0, -13.0);
|
next.main.offset = Vec3::new(3.0, -1.0, -14.0);
|
||||||
next.main.ori = Quaternion::rotation_x(-0.3)
|
next.main.ori = Quaternion::rotation_x(-0.3)
|
||||||
* Quaternion::rotation_y(0.3)
|
* Quaternion::rotation_y(0.3)
|
||||||
* Quaternion::rotation_z(-0.6);
|
* Quaternion::rotation_z(-0.6);
|
||||||
|
|
||||||
next.control.offset = Vec3::new(-9.0 + stop * 13.0, 6.0 + stop * 4.0, 8.0);
|
next.hold.offset = Vec3::new(0.4, -0.3, -5.8);
|
||||||
|
next.hold.ori = Quaternion::rotation_x(-1.6)
|
||||||
|
* Quaternion::rotation_y(-0.1)
|
||||||
|
* Quaternion::rotation_z(0.0);
|
||||||
|
next.hold.scale = Vec3::one() * 1.0;
|
||||||
|
|
||||||
|
next.control.offset = Vec3::new(-10.0 + stop * 13.0, 6.0 + stop * 4.0, 8.0);
|
||||||
next.control.ori = Quaternion::rotation_x(0.0)
|
next.control.ori = Quaternion::rotation_x(0.0)
|
||||||
* Quaternion::rotation_y(stop * -0.5)
|
* Quaternion::rotation_y(stop * -0.4)
|
||||||
* Quaternion::rotation_z(stop * -0.9);
|
* Quaternion::rotation_z(stop * -0.6);
|
||||||
next.control.scale = Vec3::one();
|
next.control.scale = Vec3::one();
|
||||||
},
|
},
|
||||||
_ => {},
|
_ => {},
|
||||||
|
@ -20,7 +20,6 @@ impl Animation for EquipAnimation {
|
|||||||
) -> Self::Skeleton {
|
) -> Self::Skeleton {
|
||||||
*rate = 1.0;
|
*rate = 1.0;
|
||||||
let mut next = (*skeleton).clone();
|
let mut next = (*skeleton).clone();
|
||||||
|
|
||||||
let lab = 1.0;
|
let lab = 1.0;
|
||||||
|
|
||||||
let short = (((5.0)
|
let short = (((5.0)
|
||||||
@ -125,12 +124,12 @@ impl Animation for EquipAnimation {
|
|||||||
next.main.scale = Vec3::one();
|
next.main.scale = Vec3::one();
|
||||||
},
|
},
|
||||||
Some(ToolKind::Bow(_)) => {
|
Some(ToolKind::Bow(_)) => {
|
||||||
next.l_hand.offset = Vec3::new(1.0, -4.0, -1.0);
|
next.l_hand.offset = Vec3::new(2.0, 1.5, 0.0);
|
||||||
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
next.l_hand.scale = Vec3::one() * 1.05;
|
next.l_hand.scale = Vec3::one() * 1.05;
|
||||||
next.r_hand.offset = Vec3::new(3.0, -1.0, -5.0);
|
next.r_hand.offset = Vec3::new(5.9, 4.5, -5.0);
|
||||||
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
@ -196,7 +195,7 @@ impl Animation for EquipAnimation {
|
|||||||
next.head.offset = Vec3::new(
|
next.head.offset = Vec3::new(
|
||||||
0.0,
|
0.0,
|
||||||
-3.0 + skeleton_attr.head.0,
|
-3.0 + skeleton_attr.head.0,
|
||||||
-1.0 + skeleton_attr.head.1 + short * 0.2,
|
skeleton_attr.head.1 + short * 0.2,
|
||||||
);
|
);
|
||||||
next.head.ori =
|
next.head.ori =
|
||||||
Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y);
|
Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y);
|
||||||
@ -221,7 +220,7 @@ impl Animation for EquipAnimation {
|
|||||||
|
|
||||||
next.shorts.offset = Vec3::new(0.0, skeleton_attr.shorts.0, skeleton_attr.shorts.1);
|
next.shorts.offset = Vec3::new(0.0, skeleton_attr.shorts.0, skeleton_attr.shorts.1);
|
||||||
|
|
||||||
next.torso.offset = Vec3::new(0.0, 0.0, 0.1) * skeleton_attr.scaler;
|
next.torso.offset = Vec3::new(0.0, 0.0, 0.0) * skeleton_attr.scaler;
|
||||||
}
|
}
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ impl CharacterSkeleton {
|
|||||||
impl Skeleton for CharacterSkeleton {
|
impl Skeleton for CharacterSkeleton {
|
||||||
type Attr = SkeletonAttr;
|
type Attr = SkeletonAttr;
|
||||||
|
|
||||||
fn bone_count(&self) -> usize { 15 }
|
fn bone_count(&self) -> usize { 16 }
|
||||||
|
|
||||||
fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3<f32>) {
|
fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3<f32>) {
|
||||||
let chest_mat = self.chest.compute_base_matrix();
|
let chest_mat = self.chest.compute_base_matrix();
|
||||||
@ -107,7 +107,11 @@ impl Skeleton for CharacterSkeleton {
|
|||||||
),
|
),
|
||||||
FigureBoneData::new(lantern_final_mat),
|
FigureBoneData::new(lantern_final_mat),
|
||||||
FigureBoneData::new(
|
FigureBoneData::new(
|
||||||
torso_mat * chest_mat * l_hand_mat * self.hold.compute_base_matrix(),
|
torso_mat
|
||||||
|
* chest_mat
|
||||||
|
* control_mat
|
||||||
|
* l_hand_mat
|
||||||
|
* self.hold.compute_base_matrix(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
(lantern_final_mat * Vec4::new(0.0, 0.0, 0.0, 1.0)).xyz(),
|
(lantern_final_mat * Vec4::new(0.0, 0.0, 0.0, 1.0)).xyz(),
|
||||||
@ -236,7 +240,7 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
|
|||||||
(Danari, Female) => (0.5, 13.5),
|
(Danari, Female) => (0.5, 13.5),
|
||||||
},
|
},
|
||||||
chest: match (body.species, body.body_type) {
|
chest: match (body.species, body.body_type) {
|
||||||
(_, _) => (0.0, 7.0),
|
(_, _) => (0.0, 8.0),
|
||||||
},
|
},
|
||||||
belt: match (body.species, body.body_type) {
|
belt: match (body.species, body.body_type) {
|
||||||
(_, _) => (0.0, -2.0),
|
(_, _) => (0.0, -2.0),
|
||||||
@ -251,7 +255,7 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
|
|||||||
(_, _) => (7.0, -0.25, 0.5),
|
(_, _) => (7.0, -0.25, 0.5),
|
||||||
},
|
},
|
||||||
foot: match (body.species, body.body_type) {
|
foot: match (body.species, body.body_type) {
|
||||||
(_, _) => (3.4, 0.5, 1.0),
|
(_, _) => (3.4, 0.5, 2.0),
|
||||||
},
|
},
|
||||||
shoulder: match (body.species, body.body_type) {
|
shoulder: match (body.species, body.body_type) {
|
||||||
(_, _) => (5.0, 0.0, 5.0),
|
(_, _) => (5.0, 0.0, 5.0),
|
||||||
|
@ -21,7 +21,6 @@ impl Animation for ShootAnimation {
|
|||||||
let mut next = (*skeleton).clone();
|
let mut next = (*skeleton).clone();
|
||||||
|
|
||||||
let lab = 1.0;
|
let lab = 1.0;
|
||||||
|
|
||||||
let foot = (((5.0)
|
let foot = (((5.0)
|
||||||
/ (0.2 + 4.8 * ((anim_time as f32 * lab as f32 * 8.0).sin()).powf(2.0 as f32)))
|
/ (0.2 + 4.8 * ((anim_time as f32 * lab as f32 * 8.0).sin()).powf(2.0 as f32)))
|
||||||
.sqrt())
|
.sqrt())
|
||||||
@ -81,12 +80,12 @@ impl Animation for ShootAnimation {
|
|||||||
next.control.scale = Vec3::one();
|
next.control.scale = Vec3::one();
|
||||||
},
|
},
|
||||||
Some(ToolKind::Bow(_)) => {
|
Some(ToolKind::Bow(_)) => {
|
||||||
next.l_hand.offset = Vec3::new(1.0 - exp * 2.0, -4.0 - exp * 7.0, -1.0 + exp * 6.0);
|
next.l_hand.offset = Vec3::new(1.0 - exp * 2.0, -4.0 - exp * 4.0, -1.0 + exp * 6.0);
|
||||||
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
next.l_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6 + exp * 0.8)
|
* Quaternion::rotation_y(-0.6 + exp * 0.8)
|
||||||
* Quaternion::rotation_z(-0.3 + exp * 0.9);
|
* Quaternion::rotation_z(-0.3 + exp * 0.9);
|
||||||
next.l_hand.scale = Vec3::one() * 1.05;
|
next.l_hand.scale = Vec3::one() * 1.05;
|
||||||
next.r_hand.offset = Vec3::new(3.0, -1.0, -5.0);
|
next.r_hand.offset = Vec3::new(4.9, 3.0, -4.0);
|
||||||
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
@ -168,6 +167,12 @@ impl Animation for ShootAnimation {
|
|||||||
Quaternion::rotation_x(exp * -0.7 + 0.4) * Quaternion::rotation_y(exp * 0.4);
|
Quaternion::rotation_x(exp * -0.7 + 0.4) * Quaternion::rotation_y(exp * 0.4);
|
||||||
next.lantern.scale = Vec3::one() * 0.65;
|
next.lantern.scale = Vec3::one() * 0.65;
|
||||||
|
|
||||||
|
next.hold.offset = Vec3::new(17.4, -24.8, -10.5);
|
||||||
|
next.hold.ori = Quaternion::rotation_x(-1.6)
|
||||||
|
* Quaternion::rotation_y(-0.1)
|
||||||
|
* Quaternion::rotation_z(0.0);
|
||||||
|
next.hold.scale = Vec3::one() * 0.0;
|
||||||
|
|
||||||
next.l_control.offset = Vec3::new(0.0, 0.0, 0.0);
|
next.l_control.offset = Vec3::new(0.0, 0.0, 0.0);
|
||||||
next.l_control.ori = Quaternion::rotation_x(0.0);
|
next.l_control.ori = Quaternion::rotation_x(0.0);
|
||||||
next.l_control.scale = Vec3::one();
|
next.l_control.scale = Vec3::one();
|
||||||
|
@ -124,7 +124,7 @@ impl Animation for StandAnimation {
|
|||||||
next.lantern.ori = Quaternion::rotation_x(0.1) * Quaternion::rotation_y(0.1);
|
next.lantern.ori = Quaternion::rotation_x(0.1) * Quaternion::rotation_y(0.1);
|
||||||
next.lantern.scale = Vec3::one() * 0.65;
|
next.lantern.scale = Vec3::one() * 0.65;
|
||||||
|
|
||||||
next.torso.offset = Vec3::new(0.0, -0.1, 0.1) * skeleton_attr.scaler;
|
next.torso.offset = Vec3::new(0.0, 0.0, 0.) * skeleton_attr.scaler;
|
||||||
next.torso.ori = Quaternion::rotation_x(0.0);
|
next.torso.ori = Quaternion::rotation_x(0.0);
|
||||||
next.torso.scale = Vec3::one() / 11.0 * skeleton_attr.scaler;
|
next.torso.scale = Vec3::one() / 11.0 * skeleton_attr.scaler;
|
||||||
|
|
||||||
|
@ -76,14 +76,14 @@ impl Animation for WieldAnimation {
|
|||||||
|
|
||||||
next.l_foot.offset = Vec3::new(
|
next.l_foot.offset = Vec3::new(
|
||||||
-skeleton_attr.foot.0,
|
-skeleton_attr.foot.0,
|
||||||
skeleton_attr.foot.1,
|
-2.0 + skeleton_attr.foot.1,
|
||||||
skeleton_attr.foot.2,
|
skeleton_attr.foot.2,
|
||||||
);
|
);
|
||||||
next.l_foot.ori = Quaternion::rotation_x(u_slowalt * 0.035 - 0.2);
|
next.l_foot.ori = Quaternion::rotation_x(u_slowalt * 0.035 - 0.2);
|
||||||
|
|
||||||
next.r_foot.offset = Vec3::new(
|
next.r_foot.offset = Vec3::new(
|
||||||
skeleton_attr.foot.0,
|
skeleton_attr.foot.0,
|
||||||
skeleton_attr.foot.1,
|
2.0 + skeleton_attr.foot.1,
|
||||||
skeleton_attr.foot.2,
|
skeleton_attr.foot.2,
|
||||||
);
|
);
|
||||||
next.r_foot.ori = Quaternion::rotation_x(u_slow * 0.035);
|
next.r_foot.ori = Quaternion::rotation_x(u_slow * 0.035);
|
||||||
@ -200,7 +200,7 @@ impl Animation for WieldAnimation {
|
|||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
next.l_hand.scale = Vec3::one() * 1.05;
|
next.l_hand.scale = Vec3::one() * 1.05;
|
||||||
next.r_hand.offset = Vec3::new(4.0, 4.5, -5.0);
|
next.r_hand.offset = Vec3::new(5.9, 4.5, -5.0);
|
||||||
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
next.r_hand.ori = Quaternion::rotation_x(1.20)
|
||||||
* Quaternion::rotation_y(-0.6)
|
* Quaternion::rotation_y(-0.6)
|
||||||
* Quaternion::rotation_z(-0.3);
|
* Quaternion::rotation_z(-0.3);
|
||||||
@ -210,6 +210,12 @@ impl Animation for WieldAnimation {
|
|||||||
* Quaternion::rotation_y(0.3)
|
* Quaternion::rotation_y(0.3)
|
||||||
* Quaternion::rotation_z(-0.6);
|
* Quaternion::rotation_z(-0.6);
|
||||||
|
|
||||||
|
next.hold.offset = Vec3::new(1.2, -1.0, -5.2);
|
||||||
|
next.hold.ori = Quaternion::rotation_x(-1.7)
|
||||||
|
* Quaternion::rotation_y(0.0)
|
||||||
|
* Quaternion::rotation_z(-0.1);
|
||||||
|
next.hold.scale = Vec3::one() * 1.0;
|
||||||
|
|
||||||
next.control.offset = Vec3::new(-7.0, 6.0, 6.0);
|
next.control.offset = Vec3::new(-7.0, 6.0, 6.0);
|
||||||
next.control.ori =
|
next.control.ori =
|
||||||
Quaternion::rotation_x(u_slow * 0.2) * Quaternion::rotation_z(u_slowalt * 0.1);
|
Quaternion::rotation_x(u_slow * 0.2) * Quaternion::rotation_z(u_slowalt * 0.1);
|
||||||
|
@ -59,7 +59,6 @@ image_ids! {
|
|||||||
<VoxelPixArtGraphic>
|
<VoxelPixArtGraphic>
|
||||||
|
|
||||||
// Skill Icons
|
// Skill Icons
|
||||||
bow_m2: "voxygen.element.icons.bow_m2",
|
|
||||||
|
|
||||||
// Icons
|
// Icons
|
||||||
flower: "voxygen.element.icons.item_flower",
|
flower: "voxygen.element.icons.item_flower",
|
||||||
@ -142,7 +141,7 @@ image_ids! {
|
|||||||
twohaxe_m1: "voxygen.element.icons.2haxe_m1",
|
twohaxe_m1: "voxygen.element.icons.2haxe_m1",
|
||||||
twohaxe_m2: "voxygen.element.icons.2haxe_m2",
|
twohaxe_m2: "voxygen.element.icons.2haxe_m2",
|
||||||
bow_m1: "voxygen.element.icons.bow_m1",
|
bow_m1: "voxygen.element.icons.bow_m1",
|
||||||
//bow_m2: "voxygen.element.icons.bow_m2",
|
bow_m2: "voxygen.element.icons.bow_m2",
|
||||||
staff_m1: "voxygen.element.icons.staff_m1",
|
staff_m1: "voxygen.element.icons.staff_m1",
|
||||||
staff_m2: "voxygen.element.icons.staff_m2",
|
staff_m2: "voxygen.element.icons.staff_m2",
|
||||||
flyingrod_m1: "voxygen.element.icons.debug_wand_m1",
|
flyingrod_m1: "voxygen.element.icons.debug_wand_m1",
|
||||||
|
@ -693,7 +693,7 @@ impl<'a> Widget for Skillbar<'a> {
|
|||||||
ToolKind::Sword(_) => self.imgs.charge,
|
ToolKind::Sword(_) => self.imgs.charge,
|
||||||
ToolKind::Hammer(_) => self.imgs.nothing,
|
ToolKind::Hammer(_) => self.imgs.nothing,
|
||||||
ToolKind::Axe(_) => self.imgs.nothing,
|
ToolKind::Axe(_) => self.imgs.nothing,
|
||||||
ToolKind::Bow(_) => self.imgs.nothing,
|
ToolKind::Bow(_) => self.imgs.bow_m2,
|
||||||
ToolKind::Staff(StaffKind::Sceptre) => self.imgs.heal_0,
|
ToolKind::Staff(StaffKind::Sceptre) => self.imgs.heal_0,
|
||||||
ToolKind::Staff(_) => self.imgs.staff_m2,
|
ToolKind::Staff(_) => self.imgs.staff_m2,
|
||||||
ToolKind::Debug(DebugKind::Boost) => self.imgs.flyingrod_m2,
|
ToolKind::Debug(DebugKind::Boost) => self.imgs.flyingrod_m2,
|
||||||
@ -706,6 +706,7 @@ impl<'a> Widget for Skillbar<'a> {
|
|||||||
match self.loadout.active_item.as_ref().map(|i| &i.item.kind) {
|
match self.loadout.active_item.as_ref().map(|i| &i.item.kind) {
|
||||||
Some(ItemKind::Tool(Tool { kind, .. })) => match kind {
|
Some(ItemKind::Tool(Tool { kind, .. })) => match kind {
|
||||||
ToolKind::Staff(_) => 30.0 * scale,
|
ToolKind::Staff(_) => 30.0 * scale,
|
||||||
|
ToolKind::Bow(_) => 30.0 * scale,
|
||||||
_ => 38.0 * scale,
|
_ => 38.0 * scale,
|
||||||
},
|
},
|
||||||
_ => 38.0 * scale,
|
_ => 38.0 * scale,
|
||||||
@ -715,6 +716,7 @@ impl<'a> Widget for Skillbar<'a> {
|
|||||||
match self.loadout.active_item.as_ref().map(|i| &i.item.kind) {
|
match self.loadout.active_item.as_ref().map(|i| &i.item.kind) {
|
||||||
Some(ItemKind::Tool(Tool { kind, .. })) => match kind {
|
Some(ItemKind::Tool(Tool { kind, .. })) => match kind {
|
||||||
ToolKind::Staff(_) => 30.0 * scale,
|
ToolKind::Staff(_) => 30.0 * scale,
|
||||||
|
ToolKind::Bow(_) => 30.0 * scale,
|
||||||
_ => 38.0 * scale,
|
_ => 38.0 * scale,
|
||||||
},
|
},
|
||||||
_ => 38.0 * scale,
|
_ => 38.0 * scale,
|
||||||
|
@ -184,7 +184,7 @@ impl<Skel: Skeleton> FigureModelCache<Skel> {
|
|||||||
},
|
},
|
||||||
None,
|
None,
|
||||||
Some(humanoid_armor_lantern_spec.mesh_lantern(&body, loadout, generate_mesh)),
|
Some(humanoid_armor_lantern_spec.mesh_lantern(&body, loadout, generate_mesh)),
|
||||||
None,
|
Some(mesh_hold(generate_mesh)),
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
Body::QuadrupedSmall(body) => {
|
Body::QuadrupedSmall(body) => {
|
||||||
|
@ -964,6 +964,16 @@ pub fn mesh_glider(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn mesh_hold(
|
||||||
|
generate_mesh: impl FnOnce(&Segment, Vec3<f32>) -> Mesh<FigurePipeline>,
|
||||||
|
) -> Mesh<FigurePipeline> {
|
||||||
|
load_mesh(
|
||||||
|
"weapon.projectile.simple-arrow",
|
||||||
|
Vec3::new(-0.5, -6.0, -1.5),
|
||||||
|
generate_mesh,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/////////
|
/////////
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
pub struct QuadrupedSmallCentralSpec(HashMap<(QSSpecies, QSBodyType), SidedQSCentralVoxSpec>);
|
pub struct QuadrupedSmallCentralSpec(HashMap<(QSSpecies, QSBodyType), SidedQSCentralVoxSpec>);
|
||||||
|
Loading…
Reference in New Issue
Block a user