feat: Implemented Inventory::can_move

- Changed Inventory::can_fit signature
- Added can_move_item test
This commit is contained in:
Alexey 2026-03-06 17:38:57 +03:00
commit fee774dddd
2 changed files with 45 additions and 1 deletions

View file

@ -15,7 +15,7 @@ impl Inventory {
pub fn can_fit(
&self,
item_query: Query<&item::Item>,
contained_items: &Children,
contained_items: &[Entity],
queried_size: UVec2,
queried_position: UVec2,
) -> bool {
@ -36,4 +36,21 @@ impl Inventory {
}
true
}
pub fn can_move(
&self,
item_query: Query<&item::Item>,
contained_items: &[Entity],
queried_item: Entity,
queried_position: UVec2,
) -> bool {
let Ok(item::Item {size, ..}) = item_query.get(queried_item) else {
error!("Could not query inventory child ({queried_item}), probably not item?");
return false;
};
let children = contained_items.iter()
.filter_map(|e| if e.ne(&&queried_item) { Some(*e) } else { None })
.collect::<Vec<Entity>>();
self.can_fit(item_query, children.as_slice(), *size, queried_position)
}
}