TISUnion / Carpet-TIS-Addition

A Carpet mod (fabric-carpet) extension, a collection of carpet mod style useful tools and interesting features
https://carpet.tis.world
GNU Lesser General Public License v3.0
268 stars 37 forks source link

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

Open Crystal0404 opened 2 months ago

Crystal0404 commented 2 months ago

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

Fallen-Breath commented 2 months ago

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