Integrated Tunnels

Integrated Tunnels

79M Downloads

World Block Importer does not break blocks when item drops do not match block

LuminaSapphira opened this issue ยท 4 comments

commented

Issue type:

  • ๐Ÿ› Bug

Short description:

When using the World Block Importer, even when using the block typed aspects (incl predicate), the block is only broken/imported when the expected item matches the block.

This is noticeable in cases such as Grass Block, which will break when the block aspect is set to constant Dirt.

Image

Steps to reproduce the problem:

  1. Set up a World Block Importer facing Grass, and an Item Interface facing a container on the same logic network.
  2. Use the Logic Programmer to create a variable card containing constant Block of value Grass Block
  3. Insert the variable card into the World Block Importer on the Pick Up Block aspect.
  4. Observe that grass blocks are not broken.
  5. Turn on Silk touch in the aspect config
  6. The Grass Block should now be broken.
  7. Change the variable card value to Dirt, and turn off Silk touch in the aspect config
  8. Replace the grass block
  9. Observe that the grass block is still broken.

Using more complex logic, such as keeping a string block ID constant and some operator application with it in the predicate aspect will also fail.

Expected behaviour:

The Block-typed aspects on the World Block Importer would reference the placed block in the world with no regard to any related items when determining if the block should be imported.


Versions:

  • This mod: 1.8.44
  • Minecraft: 1.21.1
  • Mod loader version: NeoForge 21.1.206
commented

Thanks for reporting!

commented

This is actually working as intended.
You're asking for a different behaviour, so I'll convert this to a feature request.

commented

Clarifying; the block importing is essentially locked to the item drop provided by the block, and not the block itself that does the dropping.
So if the block drops a dirt block when not using silk touch, only a variable for that block can import it, even if it in fact, is not a dirt block.

commented

Is it really working as intended? Consider the following example:

A block reader is attached to the same block as a world block importer. A variable card is inserted into the block aspect of the reader to get a block variable which is then inserted into the block aspect of the importer. In that scenario, I'd expect the block to always be immediately broken, since the block reader tells the importer to import blocks matching the block that is currently placed.

Under the current functionality I don't see how the block aspects are different from the item aspects.