Remove unneeded arc
This commit is contained in:
parent
4db8aefed1
commit
d047abbfb7
4 changed files with 13 additions and 21 deletions
|
@ -328,7 +328,7 @@ impl JewelRightSide {
|
|||
}
|
||||
|
||||
let item_settings = resources.get::<ItemSettings>();
|
||||
let item_system = resources.get::<Arc<ItemSystem>>();
|
||||
let item_system = resources.get::<ItemSystem>();
|
||||
|
||||
let inventory = entity.get_component_mut::<Inventory>()?;
|
||||
|
||||
|
|
|
@ -435,10 +435,10 @@ impl Hero {
|
|||
|
||||
match hero_create_type {
|
||||
HeroCreateType::SaveGame(save_game) => {
|
||||
AbilitySlots::load(game.item_system(), save_game)
|
||||
AbilitySlots::load(&game.item_system(), save_game)
|
||||
}
|
||||
HeroCreateType::New(_) => {
|
||||
let mut abilities = AbilitySlots::empty(game.item_system());
|
||||
let mut abilities = AbilitySlots::empty();
|
||||
|
||||
let book = game_handle.upgrade().item_system().ability_book(
|
||||
"Basic Attack",
|
||||
|
|
|
@ -6,7 +6,6 @@ use paste;
|
|||
use std::{
|
||||
slice::{Iter, IterMut},
|
||||
str::FromStr,
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
use crate::config::save_game::SaveGame;
|
||||
|
@ -14,12 +13,10 @@ use crate::items::{ability_addon::AbilityAddonTypes, ability_book::AbilityBook,
|
|||
use crate::{components::inventory::Storable, items::ItemSystem};
|
||||
|
||||
macro_rules! load {
|
||||
($me: ident, $save_game:ident, $($index:literal,)+) => {
|
||||
($me: ident, $item_system:ident, $save_game:ident, $($index:literal,)+) => {
|
||||
paste::expr! {
|
||||
$(
|
||||
if $save_game.[<ability_ $index>].used {
|
||||
let item_system = &$me.item_system;
|
||||
|
||||
let ability = &$save_game.[<ability_ $index>];
|
||||
|
||||
let mut addons = Vec::new();
|
||||
|
@ -30,10 +27,10 @@ macro_rules! load {
|
|||
let rarity = Rarities::from_str(&split.nth(0).unwrap())?;
|
||||
let addon_type = AbilityAddonTypes::from_str(&split.nth(0).unwrap())?;
|
||||
|
||||
addons.push(Some(item_system.addon(rarity, addon_type)));
|
||||
addons.push(Some($item_system.addon(rarity, addon_type)));
|
||||
}
|
||||
|
||||
let book = item_system.ability_book(
|
||||
let book = $item_system.ability_book(
|
||||
&ability.name,
|
||||
ability.rarity,
|
||||
addons,
|
||||
|
@ -71,8 +68,6 @@ macro_rules! store {
|
|||
}
|
||||
|
||||
pub struct AbilitySlots {
|
||||
item_system: Arc<ItemSystem>,
|
||||
|
||||
pub direction: Vector2<f32>,
|
||||
|
||||
abilities: [Option<AbilityBook>; AbilitySlots::MAX_ABILITIES],
|
||||
|
@ -82,20 +77,17 @@ impl AbilitySlots {
|
|||
// stupid workaround for serde Deserialize
|
||||
pub const MAX_ABILITIES: usize = 4;
|
||||
|
||||
pub fn empty(item_system: Arc<ItemSystem>) -> Self {
|
||||
pub fn empty() -> Self {
|
||||
Self {
|
||||
item_system,
|
||||
|
||||
direction: Vector2::zero(),
|
||||
|
||||
abilities: Default::default(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn load(item_system: Arc<ItemSystem>, save_game: &SaveGame) -> Result<Self> {
|
||||
let mut me = Self::empty(item_system);
|
||||
pub fn load(item_system: &ItemSystem, save_game: &SaveGame) -> Result<Self> {
|
||||
let mut me = Self::empty();
|
||||
|
||||
load!(me, save_game, 0, 1, 2, 3,);
|
||||
load!(me, item_system, save_game, 0, 1, 2, 3,);
|
||||
|
||||
Ok(me)
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::{
|
|||
items::{ItemAffix, ItemSystem, Rarities},
|
||||
};
|
||||
|
||||
use std::{env::var, sync::Arc};
|
||||
use std::env::var;
|
||||
|
||||
use super::{attributes::AttributeSettings, experience::ExperienceSettings, items::ItemSettings};
|
||||
|
||||
|
@ -365,7 +365,7 @@ impl SaveGame {
|
|||
let experience_settings = scene.resources.get::<ExperienceSettings>();
|
||||
let attribute_settings = scene.resources.get::<AttributeSettings>();
|
||||
let item_settings = scene.resources.get::<ItemSettings>();
|
||||
let item_system = scene.resources.get::<Arc<ItemSystem>>();
|
||||
let item_system = scene.resources.get::<ItemSystem>();
|
||||
|
||||
let mut entity_object = engine.assets().empty_entity();
|
||||
|
||||
|
@ -380,7 +380,7 @@ impl SaveGame {
|
|||
self.general.intelligence,
|
||||
);
|
||||
let inventory = Inventory::load(&self, &item_system)?;
|
||||
let abilities = AbilitySlots::load(item_system.clone(), &self)?;
|
||||
let abilities = AbilitySlots::load(item_system, &self)?;
|
||||
let crafting_materials = CraftingMaterials::load(&self);
|
||||
let items = ItemSlotContainer::load(&self, &item_system)?;
|
||||
let mut statistics = Statistics::default();
|
||||
|
|
Loading…
Reference in a new issue