Yarn: Beschreiben Sie die aktuellen setBlockState-Bitflags

Erstellt am 18. Mai 2019  ·  3Kommentare  ·  Quelle: FabricMC/yarn

Es wird geöffnet sein, bis die Kommentarfunktion endlich verfügbar ist, aber ich hoffe auch, sie in der Fabric-API aufzulisten, also hier:

  • 1 entspricht "Nachbar-Updates auf dem Server senden"
  • 2 - wenn 1, [auf dem Server, Block als schmutzig markieren, um ihn an den Client zu senden; Planen Sie auf dem Client ein Render-Update]
  • 4 - Wenn 1, überspringe das clientseitige Rendering-Update von oben
  • 8 - Wenn 1, erzwinge das Render-Update im Haupt-Thread
  • 16 - ???
  • 32 - Überspringe das Ablegen von Gegenstandsstapeln (wird in Block.replaceBlock verwendet)
  • 64 - ist der Block Teil einer "Move"-Operation (zB durch einen Kolben?), gemäß https://github.com/FabricMC/yarn/issues/634

Jetzt brauche ich bessere Beschreibungen/Namen!

Ich bin mir auch ziemlich sicher, dass updateNeighborStates falsch ist und method_11637 und beide hängen mit dem Flag 16 zusammen.

enhancement

Hilfreichster Kommentar

@asiekierka

0b0000000 // 0 - STANDARD/KEINE
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 scheint eine Methode zu sein, die es Blöcken ermöglicht, Zustände basierend auf ihrer Umgebung anzuwenden. In diesem Fall würde dieses Flag verwendet, um dieses Verhalten auszuschalten und zu bewirken, dass der übergebene Zustand verwendet wird, egal was passiert.

Siehe: DebugStickItem

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b001010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

Bearbeiten: Einige Methoden wurden basierend auf Feedback umbenannt ( @ChloeDawn )

Alle 3 Kommentare

Außerdem, World.updateHorizontalAdjacent -> World.updateNeighborComparators, World.updateListeners -> hat etwas mit seitenspezifischen Blockupdates zu tun

@asiekierka

0b0000000 // 0 - STANDARD/KEINE
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 scheint eine Methode zu sein, die es Blöcken ermöglicht, Zustände basierend auf ihrer Umgebung anzuwenden. In diesem Fall würde dieses Flag verwendet, um dieses Verhalten auszuschalten und zu bewirken, dass der übergebene Zustand verwendet wird, egal was passiert.

Siehe: DebugStickItem

iWorld_1.setBlockState(blockPos_1, blockState_2, 18);

0b001010 // 18 - FORCE_STATE | PROPAGATE_CHANGE

Bearbeiten: Einige Methoden wurden basierend auf Feedback umbenannt ( @ChloeDawn )

In #1003 bereits behoben. Danke Yanis48 für den Hinweis!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen