From a96ad857a62ad03958476d86df60b96a348dd86d Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 9 Dec 2025 17:21:54 +0100 Subject: [PATCH] feat: Add shovel asset and inventory helper (#15) --- assets/shovel.aseprite | Bin 0 -> 639 bytes src/features/inventory/components.rs | 18 ++++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 assets/shovel.aseprite diff --git a/assets/shovel.aseprite b/assets/shovel.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..9c21f81ef8a970265e9986eaf81a952d26685549 GIT binary patch literal 639 zcmbg_17*c>30dyG{L4phdKu8PlA87iok8EID*?<;^0WrG**h(bp zCIZYwh_ zm2c4GZgVKt=`*m3-6;iM~WSsP6v7O1$k$%7oEz>MU? z|3Ef7gHK{*YLSAW9@v@4zF=br&d4uI%|X(^paA56Fdv9k07e85{Qv(JNU|z`{L9Ah zA0h}85oZu(sF;(Suz+VrYVM!@K1~y$yk{?O*Z+HO@%QEbUC#OkC61_FuZc-hN-jFn zKC|=e+9@-7PygR>$A8Vu7tfk9X6!WZ(Jh{MHfGaPuCAL$+SoVke35qOj4S8!$NrvX z;iFr0js{TbDdt%nC?m7Px(wgq{=jnO$ zgcM&q+cJ~Uc)m>W>^r&t-fMmNe_uY0*GxXv{!C8MnZ1{0^O{Rfuk$+VyV+#P4w+?J ccN!S4%+%v(IJ2mA=ZR;R55+K48rm`g03L(GMgRZ+ literal 0 HcmV?d00001 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(