Improve ability trait

This commit is contained in:
hodasemi 2025-03-06 08:02:05 +01:00
parent 47e732377b
commit 1087e66617
2 changed files with 5 additions and 3 deletions

View file

@ -21,7 +21,7 @@ use super::{
}; };
pub trait Ability: Send + Sync + Clone + Default { pub trait Ability: Send + Sync + Clone + Default {
fn create(context: &Context, asset_path: impl Into<AssetPath>) -> Result<Self>; fn create(world: &mut World, asset_path: impl Into<AssetPath>) -> Result<Self>;
fn name(&self) -> &str; fn name(&self) -> &str;
fn icon_path(&self) -> &AssetPath; fn icon_path(&self) -> &AssetPath;

View file

@ -53,7 +53,7 @@ pub struct ItemSystem<A: Ability> {
impl<A: Ability> ItemSystem<A> { impl<A: Ability> ItemSystem<A> {
pub fn new( pub fn new(
context: &Context, world: &mut World,
item_settings: &ItemSettings, item_settings: &ItemSettings,
ability_settings: &AbilitySettings, ability_settings: &AbilitySettings,
attribute_settings: &AttributeSettings, attribute_settings: &AttributeSettings,
@ -64,9 +64,11 @@ impl<A: Ability> ItemSystem<A> {
let abilities = search_dir_recursively(&ability_directory.full_path(), ".abil")? let abilities = search_dir_recursively(&ability_directory.full_path(), ".abil")?
.into_iter() .into_iter()
.map(|path| A::create(context, path)) .map(|path| A::create(world, path))
.collect::<Result<Vec<A>>>()?; .collect::<Result<Vec<A>>>()?;
let context = world.resources.get::<Context>();
let ( let (
item_icon_combinations, item_icon_combinations,
ability_icon_combinations, ability_icon_combinations,