LootTable improvements (cloning, memory, allItems accuracy) #310
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.
Description:
Fixes issues where LootTable.clone() doesn't actually deep-clone, so if you want to make adjustments to LootTables, it's a much trickier prospect.
Also, if a sub-table changes after it's
add()
'd then the LootTable.allItems will be incorrectThis fixes those issues, and also removes the need to cache allItems which is a small memory improvement.
Changes:
allItems
is now a getter, so that it is always accurate.LootTable.clone() now properly clones the LootTable
Added unit tests
I have tested all my changes thoroughly.