Storage Drawers

Storage Drawers

151M Downloads

Oredict conversion inconsistencies

esotericist opened this issue ยท 6 comments

commented

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.

commented

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.

commented

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.

commented

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");

commented

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?

commented

Oh, that's awesome. I can definitely use that.

Thanks for the workaround.

commented

These entries are included in the whitelist by default in the latest version.