diff --git a/assets/common/items/armor/misc/head/headband.ron b/assets/common/items/armor/misc/head/headband.ron new file mode 100644 index 0000000000..6024571501 --- /dev/null +++ b/assets/common/items/armor/misc/head/headband.ron @@ -0,0 +1,17 @@ +ItemDef( + name: "Headband", + description: "yep.", + kind: Armor(( + kind: Head("Headband"), + stats: ( + protection: Normal(0.0), + poise_resilience: Normal(0.0), + energy_max: 0, + energy_reward: 0.0, + crit_power: 0.0, + stealth: 0.0, + ), + )), + quality: Common, + tags: [], +) diff --git a/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox new file mode 100644 index 0000000000..9586c7f63c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox new file mode 100644 index 0000000000..28c453aabc Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox new file mode 100644 index 0000000000..a4ab558dba Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox new file mode 100644 index 0000000000..3aeea80102 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox new file mode 100644 index 0000000000..4792f1545d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox new file mode 100644 index 0000000000..8542ccf879 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox new file mode 100644 index 0000000000..415be8dd0f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox new file mode 100644 index 0000000000..a82a84ca1f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox new file mode 100644 index 0000000000..620fe21975 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox new file mode 100644 index 0000000000..1b7730ec70 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox new file mode 100644 index 0000000000..5c1971a47c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox new file mode 100644 index 0000000000..8f91d7c5ac Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox differ diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron index 1c7d876a40..d92dd8f091 100644 --- a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -4,37 +4,85 @@ color: None ), map: { - (Danari, "Exclamation"): ( + (Danari, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-10.0, -10.0, 20.0)), color: None - ), - (Dwarf, "Exclamation"): ( + ),//fix + (Dwarf, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-13.0, -10.0, 18.0)), color: None - ), - (Human, "Exclamation"): ( + ),//fix + (Human, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-12.0, -11.0, 18.0)), color: None - ), - (Orc, "Exclamation"): ( + ),//fix + (Orc, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-11.0, -12.0, 18.0)), color: None - ), - (Undead, "Exclamation"): ( + ),//fix + (Undead, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-14.0, -11.0, 18.0)), color: None - ), - (Elf, "Exclamation"): ( + ),//fix + (Elf, Male, "Exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-11.0, -11.0, 18.0)), color: None - ), - (Human, "Witch"): ( + ),//fix + (Human, Female, "Witch"): ( vox_spec: ("armor.witch.hat", (-4.0, -4.0, 5.0)), color: None ), - (Human, "Pirate"): ( + (Human, Female, "Pirate"): ( vox_spec: ("armor.pirate.hat", (-2.0, -2.0, 5.0)), color: None ), + (Danari, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.danari_m", (4.0, 2.0, 7.0)), + color: None + ), + (Danari, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.danari_f", (4.0, 2.0, 7.0)), + color: None + ), + (Dwarf, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.dwarf_m", (2.0, 3.0, 6.0)), + color: None + ), + (Dwarf, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.dwarf_f", (2.0, 3.0, 5.0)), + color: None + ), + (Human, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.human_m", (2.0, 2.0, 5.0)), + color: None + ), + (Human, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.human_f", (4.0, 2.0, 7.0)), + color: None + ), + (Orc, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.orc_m", (4.0, 3.0, 7.0)), + color: None + ), + (Orc, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.orc_f", (3.0, 1.0, 5.0)), + color: None + ), + (Undead, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.undead_m", (0.0, 2.0, 7.0)), + color: Some((44, 74, 109)) + ), + (Undead, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.undead_f", (0.0, 2.0, 6.0)), + color: None + ), + (Elf, Male, "Headband"): ( + vox_spec: ("armor.misc.head.headband.elf_m", (3.0, 2.0, 5.0)), + color: None + ), + (Elf, Female, "Headband"): ( + vox_spec: ("armor.misc.head.headband.elf_f", (3.0, 2.0, 5.0)), + color: None + ), } )) diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index dda604e939..eefe2780b7 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -359,7 +359,7 @@ struct HumArmorLanternSpec(ArmorVoxSpecMap); #[derive(Deserialize)] struct HumArmorGliderSpec(ArmorVoxSpecMap); #[derive(Deserialize)] -struct HumArmorHeadSpec(ArmorVoxSpecMap<(Species, String), ArmorVoxSpec>); +struct HumArmorHeadSpec(ArmorVoxSpecMap<(Species, BodyType, String), ArmorVoxSpec>); #[derive(Deserialize)] struct HumArmorTabardSpec(ArmorVoxSpecMap); @@ -969,7 +969,11 @@ impl HumArmorLanternSpec { } impl HumArmorHeadSpec { fn load_head(&self, body: &Body, head: Option<&str>) -> Option<(Segment, Vec3)> { - match self.0.map.get(&(body.species, head?.to_string())) { + match self + .0 + .map + .get(&(body.species, body.body_type, head?.to_string())) + { Some(spec) => Some(( graceful_load_segment(&spec.vox_spec.0), Vec3::::from(spec.vox_spec.1).as_(), @@ -981,6 +985,7 @@ impl HumArmorHeadSpec { } } } + impl HumArmorTabardSpec { /// FIXME: Either use this, or remove it. #[allow(dead_code)]