mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Fix body parts not changing
This commit is contained in:
parent
11e4289f28
commit
b040e18246
@ -34,5 +34,9 @@
|
|||||||
PlateGreen0: (
|
PlateGreen0: (
|
||||||
vox_spec: ("armor.chest.plate_green-0", (-7.0, -3.5, 2.0)),
|
vox_spec: ("armor.chest.plate_green-0", (-7.0, -3.5, 2.0)),
|
||||||
color: None
|
color: None
|
||||||
|
),
|
||||||
|
None: (
|
||||||
|
vox_spec: ("armor.chest.none", (-7.0, -3.5, 2.0)),
|
||||||
|
color: None
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -483,6 +483,7 @@ pub enum Chest {
|
|||||||
Kimono = 6,
|
Kimono = 6,
|
||||||
Assassin = 7,
|
Assassin = 7,
|
||||||
PlateGreen0 = 8,
|
PlateGreen0 = 8,
|
||||||
|
None = 9,
|
||||||
}
|
}
|
||||||
pub const ALL_CHESTS: [Chest; 9] = [
|
pub const ALL_CHESTS: [Chest; 9] = [
|
||||||
Chest::Blue,
|
Chest::Blue,
|
||||||
|
@ -210,7 +210,7 @@ impl<'a> System<'a> for Sys {
|
|||||||
primary_ability: Some(CharacterAbility::BasicMelee {
|
primary_ability: Some(CharacterAbility::BasicMelee {
|
||||||
buildup_duration: Duration::from_millis(50),
|
buildup_duration: Duration::from_millis(50),
|
||||||
recover_duration: Duration::from_millis(50),
|
recover_duration: Duration::from_millis(50),
|
||||||
base_damage: 10,
|
base_damage: 1,
|
||||||
}),
|
}),
|
||||||
secondary_ability: None,
|
secondary_ability: None,
|
||||||
block_ability: None,
|
block_ability: None,
|
||||||
@ -251,7 +251,7 @@ impl<'a> System<'a> for Sys {
|
|||||||
primary_ability: Some(CharacterAbility::BasicMelee {
|
primary_ability: Some(CharacterAbility::BasicMelee {
|
||||||
buildup_duration: Duration::from_millis(800),
|
buildup_duration: Duration::from_millis(800),
|
||||||
recover_duration: Duration::from_millis(200),
|
recover_duration: Duration::from_millis(200),
|
||||||
base_damage: 130,
|
base_damage: 13,
|
||||||
}),
|
}),
|
||||||
secondary_ability: None,
|
secondary_ability: None,
|
||||||
block_ability: None,
|
block_ability: None,
|
||||||
|
@ -6,7 +6,7 @@ use crate::{
|
|||||||
};
|
};
|
||||||
use common::{
|
use common::{
|
||||||
assets::watch::ReloadIndicator,
|
assets::watch::ReloadIndicator,
|
||||||
comp::{Body, CharacterState, ItemKind, Loadout, ToolKind},
|
comp::{Body, CharacterState, Item, ItemKind, Loadout, ToolKind},
|
||||||
};
|
};
|
||||||
use hashbrown::{hash_map::Entry, HashMap};
|
use hashbrown::{hash_map::Entry, HashMap};
|
||||||
use std::{
|
use std::{
|
||||||
@ -17,19 +17,25 @@ use std::{
|
|||||||
#[derive(PartialEq, Eq, Hash, Clone)]
|
#[derive(PartialEq, Eq, Hash, Clone)]
|
||||||
enum FigureKey {
|
enum FigureKey {
|
||||||
Simple(Body),
|
Simple(Body),
|
||||||
Complex(Body, CameraMode, Option<CharacterCacheKey>),
|
Complex(Body, CameraMode, CharacterCacheKey),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq, Eq, Hash, Clone)]
|
#[derive(PartialEq, Eq, Hash, Clone)]
|
||||||
struct CharacterCacheKey {
|
struct CharacterCacheKey {
|
||||||
state: Discriminant<CharacterState>, // TODO: Can this be simplified?
|
state: Option<Discriminant<CharacterState>>, // TODO: Can this be simplified?
|
||||||
active_tool: Option<Discriminant<ToolKind>>, // TODO: Can this be simplified?
|
active_tool: Option<Discriminant<ToolKind>>,
|
||||||
|
shoulder: Option<Item>,
|
||||||
|
chest: Option<Item>,
|
||||||
|
belt: Option<Item>,
|
||||||
|
hand: Option<Item>,
|
||||||
|
pants: Option<Item>,
|
||||||
|
foot: Option<Item>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterCacheKey {
|
impl CharacterCacheKey {
|
||||||
fn from(cs: &CharacterState, loadout: &Loadout) -> Self {
|
fn from(cs: Option<&CharacterState>, loadout: &Loadout) -> Self {
|
||||||
Self {
|
Self {
|
||||||
state: discriminant(&cs),
|
state: cs.map(|cs| discriminant(cs)),
|
||||||
active_tool: if let Some(ItemKind::Tool(tool)) =
|
active_tool: if let Some(ItemKind::Tool(tool)) =
|
||||||
loadout.active_item.as_ref().map(|i| &i.item.kind)
|
loadout.active_item.as_ref().map(|i| &i.item.kind)
|
||||||
{
|
{
|
||||||
@ -37,6 +43,12 @@ impl CharacterCacheKey {
|
|||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
},
|
},
|
||||||
|
shoulder: loadout.shoulder.clone(),
|
||||||
|
chest: loadout.chest.clone(),
|
||||||
|
belt: loadout.belt.clone(),
|
||||||
|
hand: loadout.hand.clone(),
|
||||||
|
pants: loadout.pants.clone(),
|
||||||
|
foot: loadout.foot.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,7 +86,7 @@ impl<Skel: Skeleton> FigureModelCache<Skel> {
|
|||||||
FigureKey::Complex(
|
FigureKey::Complex(
|
||||||
body,
|
body,
|
||||||
camera_mode,
|
camera_mode,
|
||||||
character_state.map(|cs| CharacterCacheKey::from(cs, loadout)),
|
CharacterCacheKey::from(character_state, loadout),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
FigureKey::Simple(body)
|
FigureKey::Simple(body)
|
||||||
|
@ -366,7 +366,7 @@ impl HumArmorChestSpec {
|
|||||||
{
|
{
|
||||||
chest
|
chest
|
||||||
} else {
|
} else {
|
||||||
&Chest::Blue
|
&Chest::None
|
||||||
};
|
};
|
||||||
|
|
||||||
let spec = match self.0.get(&chest) {
|
let spec = match self.0.get(&chest) {
|
||||||
|
Loading…
Reference in New Issue
Block a user