diff --git a/assets/common/items/crafting_ing/leather/rigid_leather.ron b/assets/common/items/crafting_ing/leather/rigid_leather.ron index 4e0ec77113..ef9e4b44e3 100644 --- a/assets/common/items/crafting_ing/leather/rigid_leather.ron +++ b/assets/common/items/crafting_ing/leather/rigid_leather.ron @@ -7,5 +7,5 @@ ItemDef( descriptor: "", ), quality: Epic, - tags: [BaseMaterial, Leather], + tags: [BaseMaterial], ) diff --git a/assets/common/items/crafting_ing/leather/simple_leather.ron b/assets/common/items/crafting_ing/leather/simple_leather.ron index fa7ea45c6f..1150ba824a 100644 --- a/assets/common/items/crafting_ing/leather/simple_leather.ron +++ b/assets/common/items/crafting_ing/leather/simple_leather.ron @@ -6,5 +6,5 @@ ItemDef( descriptor: "Raw Hide", ), quality: Low, - tags: [BaseMaterial, Leather, MaterialKind(Hide), Material(Rawhide)], + tags: [BaseMaterial, MaterialKind(Hide), Material(Rawhide)], ) diff --git a/assets/common/items/crafting_ing/leather/thick_leather.ron b/assets/common/items/crafting_ing/leather/thick_leather.ron index ffdc086c48..c64f7191d6 100644 --- a/assets/common/items/crafting_ing/leather/thick_leather.ron +++ b/assets/common/items/crafting_ing/leather/thick_leather.ron @@ -6,5 +6,5 @@ ItemDef( descriptor: "Leather", ), quality: Common, - tags: [BaseMaterial, Leather, MaterialKind(Hide), Material(Leather)], + tags: [BaseMaterial, MaterialKind(Hide), Material(Leather)], ) diff --git a/assets/server/manifests/kits.ron b/assets/server/manifests/kits.ron index 9cfdeeccb7..169b9cc94f 100644 --- a/assets/server/manifests/kits.ron +++ b/assets/server/manifests/kits.ron @@ -368,13 +368,13 @@ (Item("common.items.lantern.pumpkin"),1), ], "merchant": [ - ("common.items.armor.merchant.back",1), - ("common.items.armor.merchant.belt",1), - ("common.items.armor.merchant.chest",1), - ("common.items.armor.merchant.hand",1), - ("common.items.armor.merchant.foot",1), - ("common.items.armor.merchant.turban",1), - ("common.items.armor.merchant.pants",1), - ("common.items.armor.merchant.shoulder",1), + (Item("common.items.armor.merchant.back"),1), + (Item("common.items.armor.merchant.belt"),1), + (Item("common.items.armor.merchant.chest"),1), + (Item("common.items.armor.merchant.hand"),1), + (Item("common.items.armor.merchant.foot"),1), + (Item("common.items.armor.merchant.turban"),1), + (Item("common.items.armor.merchant.pants"),1), + (Item("common.items.armor.merchant.shoulder"),1), ], }) diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 099a3ffe74..32a0ba8bd2 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -712,13 +712,13 @@ impl Item { ItemBase::Raw(Arc::::load_cloned(asset)?) }; // TODO: Get msm and ability_map less hackily - let msm = MaterialStatManifest::load().read(); - let ability_map = AbilityMap::load().read(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); Ok(Item::new_from_item_base( inner_item, Vec::new(), - &ability_map, - &msm, + ability_map, + msm, )) } @@ -994,11 +994,13 @@ impl Item { #[cfg(test)] pub fn create_test_item_from_kind(kind: ItemKind) -> Self { + let ability_map = &AbilityMap::load().read(); + let msm = &MaterialStatManifest::load().read(); Self::new_from_item_base( ItemBase::Raw(Arc::new(ItemDef::create_test_itemdef_from_kind(kind))), Vec::new(), - &Default::default(), - &Default::default(), + ability_map, + msm, ) } } diff --git a/common/src/comp/inventory/item/modular.rs b/common/src/comp/inventory/item/modular.rs index 283eb367e2..9793af1d57 100644 --- a/common/src/comp/inventory/item/modular.rs +++ b/common/src/comp/inventory/item/modular.rs @@ -287,8 +287,8 @@ pub fn random_weapon( ) -> Result { if let Some(material_id) = material.asset_identifier() { // Loads default ability map and material stat manifest for later use - let ability_map = AbilityMap::load().read(); - let msm = MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); + let msm = &MaterialStatManifest::load().read(); let mut rng = thread_rng(); @@ -310,8 +310,8 @@ pub fn random_weapon( let comp = Item::new_from_item_base( ItemBase::Raw(Arc::clone(def)), vec![material], - &ability_map, - &msm, + ability_map, + msm, ); (comp, hand_restriction.or(*hand)) }; @@ -331,20 +331,15 @@ pub fn random_weapon( .choose(&mut rng) .ok_or(ModularWeaponCreationError::SecondaryComponentNotFound)? .0; - Item::new_from_item_base( - ItemBase::Raw(Arc::clone(def)), - Vec::new(), - &ability_map, - &msm, - ) + Item::new_from_item_base(ItemBase::Raw(Arc::clone(def)), Vec::new(), ability_map, msm) }; // Create modular weapon Ok(Item::new_from_item_base( ItemBase::Modular(ModularBase::Tool), vec![primary_component, secondary_component], - &ability_map, - &msm, + ability_map, + msm, )) } else { Err(ModularWeaponCreationError::MaterialNotFound) diff --git a/common/src/comp/inventory/test.rs b/common/src/comp/inventory/test.rs index adab2eefcb..5558a33728 100644 --- a/common/src/comp/inventory/test.rs +++ b/common/src/comp/inventory/test.rs @@ -13,8 +13,8 @@ lazy_static! { /// Attempting to push into a full inventory should return the same item. #[test] fn push_full() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory { next_sort_order: InventorySortOrder::Name, slots: TEST_ITEMS @@ -33,8 +33,8 @@ fn push_full() { /// Attempting to push a series into a full inventory should return them all. #[test] fn push_all_full() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory { next_sort_order: InventorySortOrder::Name, slots: TEST_ITEMS @@ -63,8 +63,8 @@ fn push_all_full() { /// should work fine. #[test] fn push_unique_all_full() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory { next_sort_order: InventorySortOrder::Name, slots: TEST_ITEMS @@ -85,8 +85,8 @@ fn push_unique_all_full() { /// should work fine. #[test] fn push_all_empty() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory { next_sort_order: InventorySortOrder::Name, slots: vec![None, None], @@ -104,8 +104,8 @@ fn push_all_empty() { /// should work fine. #[test] fn push_all_unique_empty() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory { next_sort_order: InventorySortOrder::Name, slots: vec![None, None], @@ -121,8 +121,8 @@ fn push_all_unique_empty() { #[test] fn free_slots_minus_equipped_item_items_only_present_in_equipped_bag_slots() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory::new_empty(); let bag = get_test_bag(18); @@ -141,8 +141,8 @@ fn free_slots_minus_equipped_item_items_only_present_in_equipped_bag_slots() { #[test] fn free_slots_minus_equipped_item() { - let ability_map = &AbilityMap::default(); - let msm = &MaterialStatManifest::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory::new_empty(); let bag = get_test_bag(18); @@ -221,8 +221,8 @@ fn can_swap_equipped_bag_into_only_empty_slot_provided_by_itself_should_return_t #[test] fn unequip_items_both_hands() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory::new_empty(); let sword = Item::new_from_asset_expect("common.items.weapons.sword.starter"); @@ -258,8 +258,8 @@ fn unequip_items_both_hands() { #[test] fn equip_replace_already_equipped_item() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let boots = Item::new_from_asset_expect("common.items.testing.test_boots"); let starting_sandles = Some(Item::new_from_asset_expect( @@ -347,8 +347,8 @@ fn unequip_unequipping_bag_into_its_own_slot_with_no_other_free_slots_returns_on #[test] fn equip_one_bag_equipped_equip_second_bag() { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let mut inv = Inventory::new_empty(); let bag = get_test_bag(9); @@ -491,8 +491,8 @@ fn backpack_crash() { } fn fill_inv_slots(inv: &mut Inventory, items: u16) { - let msm = &MaterialStatManifest::default(); - let ability_map = &AbilityMap::default(); + let msm = &MaterialStatManifest::load().read(); + let ability_map = &AbilityMap::load().read(); let boots = Item::new_from_asset_expect("common.items.testing.test_boots"); for _ in 0..items { inv.push(boots.duplicate(ability_map, msm)).unwrap(); diff --git a/common/src/comp/inventory/test_helpers.rs b/common/src/comp/inventory/test_helpers.rs index 686a275c84..6a023818c7 100644 --- a/common/src/comp/inventory/test_helpers.rs +++ b/common/src/comp/inventory/test_helpers.rs @@ -7,7 +7,7 @@ use crate::comp::{ }, Item, }; -use std::{default::Default, sync::Arc}; +use std::sync::Arc; pub(super) fn get_test_bag(slots: u16) -> Item { let item_def = ItemDef::new_test( @@ -25,7 +25,7 @@ pub(super) fn get_test_bag(slots: u16) -> Item { Item::new_from_item_base( ItemBase::Raw(Arc::new(item_def)), Vec::new(), - &AbilityMap::default(), - &MaterialStatManifest::default(), + &AbilityMap::load().read(), + &MaterialStatManifest::load().read(), ) } diff --git a/server/src/events/trade.rs b/server/src/events/trade.rs index 9c6590fb8f..45fc004a64 100644 --- a/server/src/events/trade.rs +++ b/server/src/events/trade.rs @@ -422,8 +422,8 @@ mod tests { ) -> (World, EcsEntity, EcsEntity) { let mut mockworld = World::new(); mockworld.insert(UidAllocator::new()); - mockworld.insert(MaterialStatManifest::default()); - mockworld.insert(AbilityMap::default()); + mockworld.insert(MaterialStatManifest::load().cloned()); + mockworld.insert(AbilityMap::load().cloned()); mockworld.register::(); mockworld.register::(); diff --git a/voxygen/src/hud/diary.rs b/voxygen/src/hud/diary.rs index 1d68ce2d7e..692cedb027 100644 --- a/voxygen/src/hud/diary.rs +++ b/voxygen/src/hud/diary.rs @@ -841,7 +841,7 @@ impl<'a> Widget for Diary<'a> { let (ability_title, ability_desc) = if let Some(ability_id) = ability_id { util::ability_description(ability_id) } else { - ("Drag an ability here to use it.", "") + (Cow::Borrowed("Drag an ability here to use it."), "") }; let image_size = 80.0; @@ -863,7 +863,7 @@ impl<'a> Widget for Diary<'a> { ability_slot .with_tooltip( self.tooltip_manager, - ability_title, + &ability_title, ability_desc, &diary_tooltip, TEXT_COLOR, @@ -1083,7 +1083,7 @@ impl<'a> Widget for Diary<'a> { // otherwise 20.0 * 2.0 + 100.0 }; - Text::new(ability_title) + Text::new(&ability_title) .top_left_with_margins_on(state.ids.abilities[id_index], 5.0, 110.0) .font_id(self.fonts.cyri.conrod_id) .font_size(self.fonts.cyri.scale(28)) diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs index c521bbbbef..731a5fd829 100644 --- a/voxygen/src/hud/skillbar.rs +++ b/voxygen/src/hud/skillbar.rs @@ -30,7 +30,6 @@ use conrod_core::{ widget::{self, Button, Image, Rectangle, Text}, widget_ids, Color, Colorable, Positionable, Sizeable, UiCell, Widget, WidgetCommon, }; -use std::borrow::Cow; use vek::*; widget_ids! { @@ -613,10 +612,7 @@ impl<'a> Skillbar<'a> { .get(i) .and_then(|a| Ability::from(*a).ability_id(Some(inventory))) }) - .map(|a| { - let (title, desc) = util::ability_description(a); - (Cow::Borrowed(title), desc) - }), + .map(util::ability_description), }) }; diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs index 11fcb7b6f9..4edbac00c1 100644 --- a/voxygen/src/hud/util.rs +++ b/voxygen/src/hud/util.rs @@ -382,8 +382,8 @@ pub fn ability_image(imgs: &img_ids::Imgs, ability_id: &str) -> image::Id { } #[rustfmt::skip] -pub fn ability_description(ability_id: &str) -> (&str, &str) { - match ability_id { +pub fn ability_description(ability_id: &str) -> (Cow, &str) { + let (name, desc) = match ability_id { // Debug stick "common.abilities.debug.possess" => ( "Possessing Arrow", @@ -423,5 +423,6 @@ pub fn ability_description(ability_id: &str) -> (&str, &str) { "Ability has no title", "Ability has no description." ), - } + }; + (Cow::Borrowed(name), desc) }