Yarn: Описать текущие битовые флаги setBlockState

Созданный на 18 мая 2019  ·  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, по-видимому, является методом, позволяющим блокам применять состояния в зависимости от их окружения, и в этом случае этот флаг будет использоваться, чтобы отключить это поведение и заставить переданное состояние использоваться независимо от того, что.

См .: DebugStickItem

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b0010010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

Изменить: переименованы некоторые методы на основе отзывов ( @ChloeDawn )

Все 3 Комментарий

Кроме того, World.updateHorizontalAdjacent -> World.updateNeighborComparators, World.updateListeners -> что-то, что связано с обновлениями блоков для конкретных сторон, idk, это то, что вызывает флаг 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, по-видимому, является методом, позволяющим блокам применять состояния в зависимости от их окружения, и в этом случае этот флаг будет использоваться, чтобы отключить это поведение и заставить переданное состояние использоваться независимо от того, что.

См .: DebugStickItem

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b0010010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

Изменить: переименованы некоторые методы на основе отзывов ( @ChloeDawn )

Исправлено уже в # 1003. Спасибо Yanis48 за указание!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

sfPlayer1 picture sfPlayer1  ·  11Комментарии

Earthcomputer picture Earthcomputer  ·  24Комментарии

Juuxel picture Juuxel  ·  15Комментарии

asiekierka picture asiekierka  ·  23Комментарии

copygirl picture copygirl  ·  14Комментарии