Fix bulk compression not detecting configurable comb chains in Productive Bees - #219
Fix bulk compression not detecting configurable comb chains in Productive Bees#219Forever-178 wants to merge 4 commits into
Conversation
|
Sorry for the delay in getting back to this issue, I've been a bit too radio silent still for a good while. The logic looks fairly sound for this PR, but I am quite concerned about the multiple static fields you've introduced now to hold all the recipes in, and the resulting impact this might have on performance and memory footprint. I will have to give this another look to see if it can be condensed a bit. |
|
Sorry, I didn't fully consider the performance implications when writing this part of the code. I have re-evaluated this section of code. I believe the memory consumption caused by the static fields used to store recipes will not be very large, because the newly added static fields such as The part that is more likely to cause significant memory consumption should be the dynamically generated Additionally, as the number of dynamically generated chains increases, the initial query for a certain item may become slower. Moreover, I have not handled the destruction of dynamic chains here, which may cause the chains to expand further. The existing data structures of |
|
This ultimately sounds like a very, very diminishing return for what would essentially have to be a complete rework of a system which has already handled the vast majority of cases (and then some!) with a fairly simple, unchanging standard. Unfortunately, I don't believe dynamic recipes like these would be a very good fit for this system, at least not in their current state. I don't want to discount the possibility altogether of this being supported in the future, so I won't be closing this outright, but I think it's best to leave this on the back burner for now and potentially leave it up for discussion with the developers of Productive Bees as well to come to a better solution. Until then, #218 would have to be temporarily addressed with a compression blacklist entry for configurable combs. Sorry. |
Fix #218
Now when attempting to get a chain, it first tries an exact match. If the exact match fails but a fuzzy match succeeds, it will try to dynamically generate a chain by calling the overridden
recipe.assemble()to determine the upstream and downstream outputs.