generated from 2ndbeam/bevy-template
feat: Implemented Inventory::can_move
- Changed Inventory::can_fit signature - Added can_move_item test
This commit is contained in:
parent
dab3134f15
commit
fee774dddd
2 changed files with 45 additions and 1 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue