diff --git a/common/src/comp/inventory/item.rs b/common/src/comp/inventory/item.rs index 9e984b28c9..f8a38794ef 100644 --- a/common/src/comp/inventory/item.rs +++ b/common/src/comp/inventory/item.rs @@ -2,7 +2,7 @@ use specs::{Component, FlaggedStorage}; use specs_idvs::IDVStorage; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum Weapon { +pub enum Tool { Daggers, SwordShield, Sword, @@ -11,14 +11,29 @@ pub enum Weapon { Bow, Staff, } -pub const ALL_WEAPONS: [Weapon; 7] = [ - Weapon::Daggers, - Weapon::SwordShield, - Weapon::Sword, - Weapon::Axe, - Weapon::Hammer, - Weapon::Bow, - Weapon::Staff, + +impl Tool { + pub fn name(&self) -> &'static str { + match self { + Tool::Daggers => "daggers", + Tool::SwordShield => "sword and shield", + Tool::Sword => "sword", + Tool::Axe => "axe", + Tool::Hammer => "hammer", + Tool::Bow => "bow", + Tool::Staff => "staff", + } + } +} + +pub const ALL_TOOLS: [Tool; 7] = [ + Tool::Daggers, + Tool::SwordShield, + Tool::Sword, + Tool::Axe, + Tool::Hammer, + Tool::Bow, + Tool::Staff, ]; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] @@ -37,10 +52,34 @@ pub enum Armor { Necklace, } +impl Armor { + pub fn name(&self) -> &'static str { + match self { + Armor::Helmet => "helmet", + Armor::Shoulders => "shoulder pads", + Armor::Chestplate => "chestplate", + Armor::Belt => "belt", + Armor::Gloves => "gloves", + Armor::Pants => "pants", + Armor::Boots => "boots", + Armor::Back => "back", + Armor::Tabard => "tabard", + Armor::Gem => "gem", + Armor::Necklace => "necklace", + } + } +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +pub enum ConsumptionEffect { + Health(i32), + Xp(i32), +} + #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum Item { - Weapon { - kind: Weapon, + Tool { + kind: Tool, damage: i32, strength: i32, }, @@ -49,12 +88,40 @@ pub enum Item { defense: i32, health_bonus: i32, }, + Consumable { + effect: ConsumptionEffect, + }, + Ingredient, +} + +impl Item { + pub fn name(&self) -> &'static str { + match self { + Item::Tool { kind, .. } => kind.name(), + Item::Armor { kind, .. } => kind.name(), + Item::Consumable { .. } => "", + Item::Ingredient => "", + } + } + + pub fn category(&self) -> &'static str { + match self { + Item::Tool { .. } => "tool", + Item::Armor { .. } => "armour", + Item::Consumable { .. } => "consumable", + Item::Ingredient => "ingredient", + } + } + + pub fn description(&self) -> String { + format!("{} ({})", self.name(), self.category()) + } } impl Default for Item { fn default() -> Self { - Item::Weapon { - kind: Weapon::Hammer, + Item::Tool { + kind: Tool::Hammer, damage: 0, strength: 0, } diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 38e34ef03c..93cf4069d7 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -547,7 +547,7 @@ fn handle_object(server: &mut Server, entity: EcsEntity, args: String, _action: } }; server - .create_object(pos, ori, obj_type) + .create_object(pos, obj_type) .with(comp::Ori( // converts player orientation into a 90° rotation for the object by using the axis with the highest value ori.0 diff --git a/server/src/lib.rs b/server/src/lib.rs index f0dd5e70ac..011740e210 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -155,14 +155,12 @@ impl Server { pub fn create_object( &mut self, pos: comp::Pos, - ori: comp::Ori, object: comp::object::Body, ) -> EcsEntityBuilder { self.state .ecs_mut() .create_entity_synced() .with(pos) - .with(ori) .with(comp::Vel(Vec3::zero())) .with(comp::Ori(Vec3::unit_y())) .with(comp::Body::Object(object)) diff --git a/voxygen/src/anim/character/cidle.rs b/voxygen/src/anim/character/cidle.rs index 1c7026dacb..c21ce75f9b 100644 --- a/voxygen/src/anim/character/cidle.rs +++ b/voxygen/src/anim/character/cidle.rs @@ -2,7 +2,7 @@ use super::{ super::{Animation, SkeletonAttr}, CharacterSkeleton, }; -use common::comp::item::Weapon; +use common::comp::item::Tool; use std::{f32::consts::PI, ops::Mul}; use vek::*; @@ -61,9 +61,9 @@ impl Animation for CidleAnimation { next.shorts.ori = Quaternion::rotation_x(0.0); next.shorts.scale = Vec3::one(); - match Weapon::Hammer { + match Tool::Hammer { //TODO: Inventory - Weapon::Sword => { + Tool::Sword => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, @@ -88,7 +88,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Axe => { + Tool::Axe => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, @@ -113,7 +113,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Hammer => { + Tool::Hammer => { next.l_hand.offset = Vec3::new(-7.0, 8.25, 2.0); next.l_hand.ori = Quaternion::rotation_x(-0.3) * Quaternion::rotation_y(-1.2) @@ -134,7 +134,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(wave_ultra_slow * 0.2); next.weapon.scale = Vec3::one(); } - Weapon::Staff => { + Tool::Staff => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, @@ -159,7 +159,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::SwordShield => { + Tool::SwordShield => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, @@ -184,7 +184,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Bow => { + Tool::Bow => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, @@ -209,7 +209,7 @@ impl Animation for CidleAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Daggers => { + Tool::Daggers => { next.l_hand.offset = Vec3::new( -6.0 + wave_ultra_slow_cos * 1.0, 3.5 + wave_ultra_slow_cos * 0.5, diff --git a/voxygen/src/anim/character/cjump.rs b/voxygen/src/anim/character/cjump.rs index d464f40498..33803d7e70 100644 --- a/voxygen/src/anim/character/cjump.rs +++ b/voxygen/src/anim/character/cjump.rs @@ -2,7 +2,7 @@ use super::{ super::{Animation, SkeletonAttr}, CharacterSkeleton, }; -use common::comp::item::Weapon; +use common::comp::item::Tool; use std::f32::consts::PI; use vek::*; @@ -43,9 +43,9 @@ impl Animation for CjumpAnimation { next.shorts.ori = Quaternion::rotation_z(0.0); next.shorts.scale = Vec3::one(); - match Weapon::Hammer { + match Tool::Hammer { //TODO: Inventory - Weapon::Sword => { + Tool::Sword => { next.l_hand.offset = Vec3::new(-7.0, 3.25, 0.25 + wave_stop * 2.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -62,7 +62,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Axe => { + Tool::Axe => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -79,7 +79,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Hammer => { + Tool::Hammer => { next.l_hand.offset = Vec3::new(-7.0, 8.25, 2.0 + wave_stop * 2.0); next.l_hand.ori = Quaternion::rotation_x(-0.3) * Quaternion::rotation_y(-1.2) @@ -100,7 +100,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Staff => { + Tool::Staff => { next.l_hand.offset = Vec3::new(-7.0, 7.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3) * Quaternion::rotation_y(-1.7) @@ -121,7 +121,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(1.0); next.weapon.scale = Vec3::one(); } - Weapon::SwordShield => { + Tool::SwordShield => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -138,7 +138,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Bow => { + Tool::Bow => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -155,7 +155,7 @@ impl Animation for CjumpAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Daggers => { + Tool::Daggers => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; diff --git a/voxygen/src/anim/character/crun.rs b/voxygen/src/anim/character/crun.rs index fcb2d617b4..a4c28bf17a 100644 --- a/voxygen/src/anim/character/crun.rs +++ b/voxygen/src/anim/character/crun.rs @@ -2,7 +2,7 @@ use super::{ super::{Animation, SkeletonAttr}, CharacterSkeleton, }; -use common::comp::item::Weapon; +use common::comp::item::Tool; use std::f32::consts::PI; use std::ops::Mul; use vek::*; @@ -61,9 +61,9 @@ impl Animation for CrunAnimation { next.shorts.ori = Quaternion::rotation_z(wave * 0.6); next.shorts.scale = Vec3::one(); - match Weapon::Hammer { + match Tool::Hammer { //TODO: Inventory - Weapon::Sword => { + Tool::Sword => { next.l_hand.offset = Vec3::new(-6.0, 3.75, 0.25); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -80,7 +80,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Axe => { + Tool::Axe => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -97,7 +97,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Hammer => { + Tool::Hammer => { next.l_hand.offset = Vec3::new(-7.0, 8.25, 3.0); next.l_hand.ori = Quaternion::rotation_x(-0.3) * Quaternion::rotation_y(-1.2) @@ -118,7 +118,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(wave * -0.25); next.weapon.scale = Vec3::one(); } - Weapon::Staff => { + Tool::Staff => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -135,7 +135,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::SwordShield => { + Tool::SwordShield => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -152,7 +152,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Bow => { + Tool::Bow => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; @@ -169,7 +169,7 @@ impl Animation for CrunAnimation { * Quaternion::rotation_z(0.0); next.weapon.scale = Vec3::one(); } - Weapon::Daggers => { + Tool::Daggers => { next.l_hand.offset = Vec3::new(-6.0, 3.5, 0.0); next.l_hand.ori = Quaternion::rotation_x(-0.3); next.l_hand.scale = Vec3::one() * 1.01; diff --git a/voxygen/src/anim/mod.rs b/voxygen/src/anim/mod.rs index 96df4e6cb7..94eb60c25b 100644 --- a/voxygen/src/anim/mod.rs +++ b/voxygen/src/anim/mod.rs @@ -5,7 +5,7 @@ pub mod quadruped; pub mod quadrupedmedium; use crate::render::FigureBoneData; -use common::comp::{self, item::Weapon}; +use common::comp::{self, item::Tool}; use vek::*; #[derive(Copy, Clone)] @@ -145,25 +145,25 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr { (Danari, Male) => 0.0, (Danari, Female) => 0.0, }, - weapon_x: match Weapon::Hammer { + weapon_x: match Tool::Hammer { // TODO: Inventory - Weapon::Sword => 0.0, - Weapon::Axe => 3.0, - Weapon::Hammer => 0.0, - Weapon::SwordShield => 3.0, - Weapon::Staff => 3.0, - Weapon::Bow => 0.0, - Weapon::Daggers => 0.0, + Tool::Sword => 0.0, + Tool::Axe => 3.0, + Tool::Hammer => 0.0, + Tool::SwordShield => 3.0, + Tool::Staff => 3.0, + Tool::Bow => 0.0, + Tool::Daggers => 0.0, }, - weapon_y: match Weapon::Hammer { + weapon_y: match Tool::Hammer { // TODO: Inventory - Weapon::Sword => -1.25, - Weapon::Axe => 0.0, - Weapon::Hammer => -2.0, - Weapon::SwordShield => 0.0, - Weapon::Staff => 0.0, - Weapon::Bow => -2.0, - Weapon::Daggers => -2.0, + Tool::Sword => -1.25, + Tool::Axe => 0.0, + Tool::Hammer => -2.0, + Tool::SwordShield => 0.0, + Tool::Staff => 0.0, + Tool::Bow => -2.0, + Tool::Daggers => -2.0, }, } } diff --git a/voxygen/src/menu/char_selection/ui.rs b/voxygen/src/menu/char_selection/ui.rs index 225e96e504..700532ece5 100644 --- a/voxygen/src/menu/char_selection/ui.rs +++ b/voxygen/src/menu/char_selection/ui.rs @@ -8,7 +8,7 @@ use crate::{ GlobalState, }; use client::Client; -use common::comp::{humanoid, item::Weapon}; +use common::comp::{humanoid, item::Tool}; use conrod_core::{ color, color::TRANSPARENT, @@ -109,7 +109,7 @@ widget_ids! { body_type_1, body_type_2, - // Weapons + // Tools sword, sword_button, daggers, @@ -152,7 +152,7 @@ image_ids! { slider_range: "voxygen/element/slider/track.png", slider_indicator: "voxygen/element/slider/indicator.png", - // Weapon Icons + // Tool Icons daggers: "voxygen/element/icons/daggers.png", sword: "voxygen/element/icons/sword.png", axe: "voxygen/element/icons/axe.png", @@ -209,7 +209,7 @@ pub struct CharSelectionUi { character_creation: bool, pub character_name: String, pub character_body: humanoid::Body, - pub character_weapon: Weapon, // TODO: Move into ecs inventory struct? + pub character_weapon: Tool, // TODO: Move into ecs inventory struct? } impl CharSelectionUi { @@ -235,7 +235,7 @@ impl CharSelectionUi { character_creation: false, character_name: "Character Name".to_string(), character_body: humanoid::Body::random(), - character_weapon: Weapon::Sword, + character_weapon: Tool::Sword, } } @@ -344,7 +344,7 @@ impl CharSelectionUi { .was_clicked() { self.character_creation = true; - self.character_weapon = Weapon::Sword; + self.character_weapon = Tool::Sword; } // Alpha Version @@ -553,7 +553,7 @@ impl CharSelectionUi { self.character_body.body_type = humanoid::BodyType::Female; } - // Alignment for Races and Weapons + // Alignment for Races and Tools Rectangle::fill_with([214.0, 304.0], color::TRANSPARENT) .mid_bottom_with_margin_on(self.ids.creation_buttons_alignment_1, -324.0) .set(self.ids.creation_buttons_alignment_2, ui_widgets); @@ -710,7 +710,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .bottom_left_with_margins_on(self.ids.creation_buttons_alignment_2, 0.0, 0.0) .set(self.ids.hammer, ui_widgets); - if Button::image(if let Weapon::Hammer = self.character_weapon { + if Button::image(if let Tool::Hammer = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -721,7 +721,7 @@ impl CharSelectionUi { .set(self.ids.hammer_button, ui_widgets) .was_clicked() { - self.character_weapon = Weapon::Hammer; + self.character_weapon = Tool::Hammer; } // REMOVE THIS AFTER IMPLEMENTATION /*Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8)) @@ -734,7 +734,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .right_from(self.ids.hammer, 2.0) .set(self.ids.bow, ui_widgets); - if Button::image(if let Weapon::Bow = self.character_weapon { + if Button::image(if let Tool::Bow = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -745,7 +745,7 @@ impl CharSelectionUi { .set(self.ids.bow_button, ui_widgets) .was_clicked() { - //self.character_weapon = Weapon::Bow; + //self.character_weapon = Tool::Bow; } // REMOVE THIS AFTER IMPLEMENTATION Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8)) @@ -756,7 +756,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .right_from(self.ids.bow, 2.0) .set(self.ids.staff, ui_widgets); - if Button::image(if let Weapon::Staff = self.character_weapon { + if Button::image(if let Tool::Staff = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -767,7 +767,7 @@ impl CharSelectionUi { .set(self.ids.staff_button, ui_widgets) .was_clicked() { - //self.character_weapon = Weapon::Staff; + //self.character_weapon = Tool::Staff; } // REMOVE THIS AFTER IMPLEMENTATION Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8)) @@ -778,7 +778,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .up_from(self.ids.hammer, 2.0) .set(self.ids.sword, ui_widgets); - if Button::image(if let Weapon::Sword = self.character_weapon { + if Button::image(if let Tool::Sword = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -789,7 +789,7 @@ impl CharSelectionUi { .set(self.ids.sword_button, ui_widgets) .was_clicked() { - self.character_weapon = Weapon::Sword; + self.character_weapon = Tool::Sword; } // Daggers @@ -797,7 +797,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .right_from(self.ids.sword, 2.0) .set(self.ids.daggers, ui_widgets); - if Button::image(if let Weapon::Daggers = self.character_weapon { + if Button::image(if let Tool::Daggers = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -808,7 +808,7 @@ impl CharSelectionUi { .set(self.ids.daggers_button, ui_widgets) .was_clicked() { - // self.character_weapon = Weapon::Daggers; + // self.character_weapon = Tool::Daggers; } // REMOVE THIS AFTER IMPLEMENTATION Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8)) .middle_of(self.ids.daggers) @@ -819,7 +819,7 @@ impl CharSelectionUi { .w_h(70.0, 70.0) .right_from(self.ids.daggers, 2.0) .set(self.ids.axe, ui_widgets); - if Button::image(if let Weapon::Axe = self.character_weapon { + if Button::image(if let Tool::Axe = self.character_weapon { self.imgs.icon_border_pressed } else { self.imgs.icon_border @@ -830,7 +830,7 @@ impl CharSelectionUi { .set(self.ids.axe_button, ui_widgets) .was_clicked() { - self.character_weapon = Weapon::Axe; + self.character_weapon = Tool::Axe; } // REMOVE THIS AFTER IMPLEMENTATION /*Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8)) diff --git a/voxygen/src/scene/figure.rs b/voxygen/src/scene/figure.rs index 47ecbb8219..490ed27f08 100644 --- a/voxygen/src/scene/figure.rs +++ b/voxygen/src/scene/figure.rs @@ -12,7 +12,7 @@ use crate::{ use client::Client; use common::{ assets, - comp::{self, humanoid, item::Weapon, object, quadruped, quadruped_medium, Body}, + comp::{self, humanoid, item::Tool, object, quadruped, quadruped_medium, Body}, figure::Segment, terrain::TerrainChunkSize, vol::VolSize, @@ -61,7 +61,7 @@ impl FigureModelCache { Some(Self::load_right_hand(body.hand)), Some(Self::load_left_foot(body.foot)), Some(Self::load_right_foot(body.foot)), - Some(Self::load_weapon(Weapon::Hammer)), // TODO: Inventory + Some(Self::load_weapon(Tool::Hammer)), // TODO: Inventory Some(Self::load_left_shoulder(body.shoulder)), Some(Self::load_right_shoulder(body.shoulder)), Some(Self::load_draw()), @@ -312,15 +312,15 @@ impl FigureModelCache { ) } - fn load_weapon(weapon: Weapon) -> Mesh { + fn load_weapon(weapon: Tool) -> Mesh { let (name, offset) = match weapon { - Weapon::Sword => ("weapon/sword/rusty_2h.vox", Vec3::new(-1.5, -6.5, -4.0)), - Weapon::Axe => ("weapon/axe/rusty_2h.vox", Vec3::new(-1.5, -6.5, -4.0)), - Weapon::Hammer => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), - Weapon::Daggers => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), - Weapon::SwordShield => ("weapon/axe/rusty_2h.vox", Vec3::new(-2.5, -6.5, -2.0)), - Weapon::Bow => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), - Weapon::Staff => ("weapon/axe/rusty_2h.vox", Vec3::new(-2.5, -6.5, -2.0)), + Tool::Sword => ("weapon/sword/rusty_2h.vox", Vec3::new(-1.5, -6.5, -4.0)), + Tool::Axe => ("weapon/axe/rusty_2h.vox", Vec3::new(-1.5, -6.5, -4.0)), + Tool::Hammer => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), + Tool::Daggers => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), + Tool::SwordShield => ("weapon/axe/rusty_2h.vox", Vec3::new(-2.5, -6.5, -2.0)), + Tool::Bow => ("weapon/hammer/rusty_2h.vox", Vec3::new(-2.5, -5.5, -4.0)), + Tool::Staff => ("weapon/axe/rusty_2h.vox", Vec3::new(-2.5, -6.5, -2.0)), }; Self::load_mesh(name, offset) }