Enigmatica 6 - E6 - 1.16.5

Enigmatica 6 - E6 - 1.16.5

1M Downloads

Block breakers always break blocks that drop nothing by default despite filters

Zakru opened this issue · 11 comments

commented

Modpack Version

0.5.20

Describe your issue.

At least the following block breakers:

  • World Block Importer (IntegratedDynamics)
  • Modular Router with Breaker module (Modular Routers)

with a filter (both whitelist and blacklist for MR) also unconditionally break blocks that have no guaranteed default drop, such as

  • Ice
  • Grass (not grass block)
  • Glass
  • Tall Mystical Flowers (Botania)
  • Emerald Ice (BetterEnd Forge)
  • Bedrock (ID World Block Importer only, doesn't need filter)

Something noteworthy is that the filters work based on block drops instead of the blocks themselves. This is probably intended but not expected.

Crash Report

No response

Latest Log

No response

Have you modified the modpack?

No

User Modifications

No response

Did the issue happen in singleplayer or on a server?

Both

commented

Thank you for the report, I will investigate the issue.

commented

Just a note that for the World Block Importer, you can adjust the way it breaks blocks in the properties of each aspect. For example, whether to use Silk Touch or not when breaking the blocks. This should allow you to get some of the blocks like glass and ice from the World Block Importer.

commented

Interestingly, by putting silk touch on the mRouter break module, it also acted as expected.

commented

Refined Storage Destructors also break the initial ice... and isn't even picking up ice with a silk touch upgrade? Fault in my testing setup. RS works fine with silk touch too and appears to work as expected without silk touch. Blacklisting emerald ice with no silk touch results in it ignoring it and only picking it up once it has moved to the next stage.

commented

@MuteTiefling Just to make it clear, regardless of any filter configured, blocks without drops will always be broken. Not just Dense Emerald Ice.

commented

At least Modular Routers' filter explicitly always passes if the drops are empty, which seems intentional but is very weird:

https://github.com/desht/ModularRouters/blob/85ac955d69145fc0bb1b7f2846c09cca1caa5a86/src/main/java/me/desht/modularrouters/util/BlockUtil.java#L168

commented

Yeah, there's an unclear difference though.

Blue Ice and Ice both require silk touch to harvest. Therefore the 'default' loot table is empty and setting one or the other as the filter item is equivalent.

That's not true of Emerald/Dense emerald, however. Dense has a legitimate loot table drop without silk touch. So mRouters should be filtering on dense emerald, yet still breaks regular emerald despite the filter not matching (dense vs air instead of air vs air)

Anyway, I'm in contact with Desht (modular routers dev) so we'll see what can be done there.

commented

Alright, checked in with Desht and he explained the logic here:

technically not a bug, but I can see how it would be confusing. the important thing is to remember that the filter works on what would be dropped, not the block
and both ice and blue ice drop nothing when mined without silk touch, so effectively ice and blue ice are the same in the filter
the correct approach is to use silk touch (which is necessary anyway when mining ice, so...)

Which makes perfect sense for vanilla ice. But still leaves an open question here of what's going on with Emerald Ice since Dense doesn't require silk touch to collect... Guessing something weird is going on with the loot table for it.

commented

RS uses PickBlock instead. Which is why it works there.

commented

This was improved in the latest version of modular routers.