Yarn: 描述当前的 setBlockState 位标志

创建于 2019-05-18  ·  3评论  ·  资料来源: FabricMC/yarn

它将一直开放,直到评论功能最终出现,但我也希望在 Fabric API 中列出它们,所以这里是:

  • 1 对应于“在服务器上发送邻居更新”
  • 2 - 如果为 1,[在服务器上,将块标记为脏块以将其发送给客户端; 在客户端,安排渲染更新]
  • 4 - 如果为 1,则从上面跳过客户端渲染更新
  • 8 - 如果为 1,则强制渲染更新发生在主线程上
  • 16 - ???
  • 32 - 跳过丢弃物品堆栈(在 Block.replaceBlock 中使用)
  • 64 - 根据https://github.com/FabricMC/yarn/issues/634 ,是“移动”操作的块部分(例如通过活塞?)

现在,我需要更好的描述/名称!

我也很确定 updateNeighborStates 和 method_11637 是错误的,它都与上述标志 16 相关。

enhancement

最有用的评论

@asiekierka

0b0000000 // 0 - 默认/无
0b0000001 // 1 - PROPAGATE_CHANGE
0b0000010 // 2 - NOTIFY_LISTENERS
0b0000100 // 4 - NO_REDRAW
0b0001000 // 8 - REDRAW_ON_MAIN_THREAD
0b0010000 // 16 - FORCE_STATE*
0b0100000 // 32 - SKIP_DROPS
0b1000000 // 64 - IS_MECHANICAL_UPDATE

  • method_11637 似乎是一种允许块根据其周围环境应用状态的方法,在这种情况下,此标志将用于关闭该行为并导致无论如何都使用传递的状态。

请参阅:调试棒项目

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b0010010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

编辑:根据反馈重命名一些方法( @ChloeDawn

所有3条评论

此外,World.updateHorizo​​ntalAdjacent -> World.updateNeighborComparators, World.updateListeners -> 与特定于边的块更新有关,这是标志 2 调用的内容

@asiekierka

0b0000000 // 0 - 默认/无
0b0000001 // 1 - PROPAGATE_CHANGE
0b0000010 // 2 - NOTIFY_LISTENERS
0b0000100 // 4 - NO_REDRAW
0b0001000 // 8 - REDRAW_ON_MAIN_THREAD
0b0010000 // 16 - FORCE_STATE*
0b0100000 // 32 - SKIP_DROPS
0b1000000 // 64 - IS_MECHANICAL_UPDATE

  • method_11637 似乎是一种允许块根据其周围环境应用状态的方法,在这种情况下,此标志将用于关闭该行为并导致无论如何都使用传递的状态。

请参阅:调试棒项目

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b0010010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

编辑:根据反馈重命名一些方法( @ChloeDawn

已在 #1003 中修复。 感谢 Yanis48 指出!

此页面是否有帮助?
0 / 5 - 0 等级