diff --git a/assets/shovel.aseprite b/assets/shovel.aseprite new file mode 100644 index 0000000..9c21f81 Binary files /dev/null and b/assets/shovel.aseprite differ diff --git a/src/features/inventory/components.rs b/src/features/inventory/components.rs index 6185bac..b2ac89f 100644 --- a/src/features/inventory/components.rs +++ b/src/features/inventory/components.rs @@ -80,8 +80,8 @@ impl ItemType { aseprite: asset_server.load("berry.aseprite"), }, ItemType::Shovel => AseSlice { - name: "Berry".into(), - aseprite: asset_server.load("berry.aseprite"), + name: "Shovel".into(), + aseprite: asset_server.load("shovel.aseprite"), }, ItemType::BerrySeed { name } => { let seed_config = game_config.berry_seeds.iter().find(|s| s.name == *name); @@ -114,12 +114,14 @@ pub struct Inventory { } impl Inventory { - pub fn has_item(&self, items_query: Query<&ItemStack>) -> bool { - self.items - .iter() - .map(|entity| items_query.get(*entity).ok()) - .find(|option| option.is_some()) - .is_some() + pub fn has_item_type(&self, items_query: &Query<&ItemStack>, item_type: ItemType) -> bool { + self.items.iter().any(|&entity| { + if let Ok(stack) = items_query.get(entity) { + stack.item_type == item_type + } else { + false + } + }) } pub fn update_item_stack(