TISUnion/Carpet-TIS-Addition

启用instantBlockUpdaterReintroduced后, 无法破坏全部地狱门传送方块

Opened this issue · 1 comments

Bug description

右边是启用instantBlockUpdaterReintroduced后打碎的地狱门, 左边是禁用instantBlockUpdaterReintroduced打碎的地狱门
2024-07-06_18 36 46

Steps to reproduce

  1. 造一扇最大的地狱门(可以直接拿72k刷冰机的存档)
  2. 使用/carpet instantBlockUpdaterReintroduced true
  3. 破坏地狱门的下边框

Expected behavior

地狱门传送方块全部破碎

Actual behavior

地狱门有一部分传送方块没有破碎

Relevant logs

https://mclo.gs/MY3eeCk

Minecraft version

1.21

Carpet TIS Addition version

1.60.1

Fabric Carpet version

1.4.147+v240613

Other information

No response

Check list

  • I have verified that the issue persists in the latest version of the mod.
  • I have searched the existing issues and confirmed that this is not a duplicate.

这事实上是原版的机制变化。1.19 后调用 net.minecraft.world.block.NeighborUpdater#replaceWithStateForNeighborUpdate 时会把 maxUpdateDepth 再次减 1,导致每次 PP 更新会消耗 2 的 maxUpdateDepth,进而导致 512 的 PP 递归更新数值上界变成了只有等效 256 个方块,而 256 < 最大地狱门方块数 21*21=441,因此会导致破坏最大地狱门时,地狱门方块破坏不完全