Creating an in progress craft finds items in nested containers #42778
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
SUMMARY: Bugfixes "Consume components in nested containers when crafting"
Purpose of change
Fixes #42777
Describe the solution
Created a recursive version of item_contents::all_items_top() and used it when consuming items from a container.
Describe alternatives you've considered
Testing
See issue.
Additional context
item_contents::all_items_top() and item_contents::all_standard_items_top do the same thing, but the former achieves it by iterating over a static vector while the latter does it by checking item_pocket::is_standard_type, which returns true on exactly the elements that are in the static vector. If that's just a coincidence and might change, the names of the methods I created should be changed to something different. all_standard_items_top currently isn't used anywhere, though.