Oredict conversion inconsistencies
esotericist opened this issue ยท 6 comments
I have a TiCo oreberry farm, which I store into drawers to oredict convert into appropriate nuggets -- saving me a useless craft up then craft down pair of steps.
After moving from Storage Drawers 1.5.7 to 1.5.9, this still works for gold and iron, but not aluminum or tin.
It seems likely this is due to the changes in oredict strictness in 1.5.8.
Update: Realized the cause.
TiCo adds aluminum and tin nuggets, as well as matching berries, so it's providing two things with the nuggetWhatever oredict, while TiCo does not add gold or iron nuggets (as they're in vanilla).
I think your change in strictness is breaking an otherwise reasonable mod, in this case.
The rule that is blacklisting the keys is the one where a mod registers two or more items, with the understanding that a mod is unlikely to add multiple items that are pure equivalents. I should have realized TiCo would be a glaring exception here.
And therein lies the problem with managing the ore dictionary. Over time, it has been appropriated by mod authors to serve two incompatible functions. The constant tightening of the matching rules has been necessary to prevent illegal, exploitative conversions in a bunch of other mods.
A few examples from my current ore dictionary log, which were unable to be filtered with the complex categorization heuristics already in place:
- Quartz and charged quartz in AE2
- All essence materials in Magical Crops
- TiCo slimeballs
- Erebus spawners
It gets worse when pack authors start throwing their own key registrations around, because it inadvertently creates conversion paths that might be safe but are indistinguishable from a path like "iron is metal is gold", and so they get shut down as well.
I've been trying very hard to avoid maintaining an active whitelist, but it seems I won't be able to avoid it.
In the interim, if you have MineTweaker installed, there are MT APIs exposed to manage the internal blacklist and whitelist. You can restore those keys by adding this to a script:
mods.storagedrawers.OreDictionaryWhitelist.add("nuggetAluminum");
mods.storagedrawers.OreDictionaryWhitelist.add("nuggetAluminium");
mods.storagedrawers.OreDictionaryWhitelist.add("nuggetTin");
mods.storagedrawers.OreDictionaryWhitelist.add("nuggetCopper");
I agree with you about the messiness of the oredict situation.
Addressing this in a correct, comprehension fashion feels to me almost certainly out of scope for storage drawers itself.
Is this maybe a space for a library? Could other mod authors be sold on using such a thing, so that it can be standardized?